การเปลี่ยนการอนุญาตสำหรับ / var / www / html


12

ฉันได้ศึกษาหัวข้อนี้https://help.ubuntu.com/community/FilePermissionsมาระยะหนึ่งแล้วและไม่สามารถใช้งานได้ด้วยเหตุผลบางประการ

โดยเฉพาะอย่างยิ่งบรรทัดเหล่านี้สนใจฉันมากที่สุด:

หากต้องการเปลี่ยนการอนุญาตทั้งหมดของแต่ละไฟล์และโฟลเดอร์ภายใต้ไดเรกทอรีที่ระบุพร้อมกันให้ใช้ sudo chmod ด้วย -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

นี่คือสิ่งที่ฉันพิมพ์:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

จากนั้นฉันตรวจสอบการเปลี่ยนแปลงใน sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

จากผลลัพธ์เป็นที่ชัดเจนว่าไดเรกทอรี html ยังคงสามารถแก้ไขได้โดย root เท่านั้น

ฉันจะเปลี่ยนสิ่งนี้ในแบบที่ฉัน (ไม่ใช่รูท) สามารถอัปโหลดไฟล์ไปยังไดเรกทอรี html ได้อย่างไร

ฉันยังทดสอบ:

เจ้าของไฟล์สามารถเปลี่ยนแปลงได้โดยใช้คำสั่ง chown ตัวอย่างเช่นหากต้องการเปลี่ยนเจ้าของไฟล์ foobar เป็น tux:

$ sudo chown tux foobar

ฉันพิมพ์จากเซิร์ฟเวอร์:

sudo chown mark owner

ไม่มีผลอะไร.


คุณไม่มีตัวเลือก -r สำหรับการเรียกซ้ำ และ 777 คือ - ไม่ - การเปลี่ยนแปลงที่ถูกต้องที่จะทำการ (เว้นแต่คุณจะตั้งค่าตัวเลือก t (บิตเหนียว) คำถาม: ทำไม dir ว่างเปล่าที่คำสั่งที่ 2 และเต็มไปด้วย index.html ที่คำสั่งที่ 3 คำสั่งเหล่านั้นไม่ใช่ ออกในสถานการณ์เดียวกันคุณsudo chown mark ownerควรทำอย่างไรกับไฟล์หรือ dir ที่เรียกว่า "เจ้าของ" ที่นั่น
Rinzwind

ในการเป็นเจ้าของไฟล์หรือไดเรกทอรีคุณต้องระบุว่าใครเป็นเจ้าของใหม่กลุ่ม (ไม่บังคับ) และไฟล์หรือไดเรกทอรี ตัวอย่างเช่นsudo chown user:user mydocsที่เจ้าของใหม่และกลุ่มอยู่userและไดเรกทอรีที่คุณเป็นเจ้าของคือmydocs
Gansheim

1
ในกรณีนี้ฉันจะออกจากความเป็นเจ้าของไดเรกทอรีเพียงอย่างเดียวเพื่อปรับเปลี่ยนการอนุญาตสำหรับไดเรกทอรีเฉพาะนั้นเพื่อให้คุณสามารถเขียนไปยังมันตั้งค่าสิทธิ์ในการอ่าน / เขียนคำสั่งถูกsudo chmod 766 -r /var/www/html
Gansheim

@Rinzwind ดูเหมือนว่าเขาจะออกls -lคำสั่งจากไดเรกทอรีบ้านของพวกเขา @ Mark เว้นแต่คุณจะอยู่ในไดเรกทอรีที่คุณพยายามดู / จัดการคุณจำเป็นต้องระบุพา ธ ในกรณีนี้คุณควรใช้คำสั่งเป็นls -l /var/www/html
Gansheim

1
เช่นเดียวกับพวกที่ได้ชี้ให้เห็นchmodการเปลี่ยนแปลงการอนุญาตchownเจ้าของการเปลี่ยนแปลง 755 หลักแรก (7) หมายถึง 'เจ้าของ' มีสิทธิ์ทั้งหมดในขณะที่ตัวเลขที่สองและหลักสุดท้าย (5) หมายถึง 'กลุ่ม' และ 'อื่น ๆ ' ทั้งสองมีสิทธิ์อ่านและดำเนินการ คุณสามารถเพิ่มผู้ใช้ของคุณในกลุ่มและให้สิทธิ์อย่างเต็มที่ในกลุ่มด้วยเพื่อที่คุณจะได้ไม่ต้องทำการเปลี่ยนแปลงมากมาย
ซามูเอล

คำตอบ:


11

ในกรณีนี้ฉันจะออกจากความเป็นเจ้าของไดเรกทอรีเพียงอย่างเดียว การปรับเปลี่ยนสิทธิ์สำหรับไดเรกทอรีที่ระบุว่าเพื่อให้คุณสามารถเขียนไปชุดการอ่าน / sudo chmod 766 -R /var/www/htmlเขียนสิทธิ์ที่เป็นคำสั่ง การดำเนินการนี้จะกำหนดสิทธิ์แบบเต็ม7สำหรับเจ้าของอ่าน / เขียน6สำหรับกลุ่มและอ่าน / เขียนสำหรับทุกคน6แบบเรียกซ้ำ


9

คุณสามารถทำให้ตัวเองเป็นเจ้าของไดเรกทอรีนั้นได้

sudo chown pi /var/www/html

แต่คุณต้องการกำหนดสิทธิ์อย่างแน่นอน

chmod 755 -R /var/www/html

การใช้ตัวเลือก -R (เรียกซ้ำ) จะทำให้แน่ใจว่าไฟล์สคริปต์และไฟล์. htaccess ของคุณตั้งค่าไว้เหมือนกัน


เมื่อใดก็ตามที่คุณเพิ่มสคริปต์ใหม่อย่าลืมตั้งค่าด้วยวิธีนี้เช่นกัน

chmod 755 /var/www/html/cgi-bin/newscript.cgi

โปรดทราบว่าบางโปรแกรมของ CGI มีข้อกำหนดของตัวเองเช่น

ตัวบันทึกข้อมูลผู้เยี่ยมชมเว็บไซต์ Bestdam + Hit Counter

ข้อความที่ตัดตอนมา:

เปิดไฟล์ bdlogger.pl ในเท็กซ์เอดิเตอร์และหากจำเป็นให้แก้ไขบรรทัด shebang

บนเซิร์ฟเวอร์สร้างไดเรกทอรีย่อย bdlogger ภายใต้ไดเรกทอรี cgi-bin ของคุณและ FTP สคริปต์และไฟล์ข้อมูลลงในมันโดยใช้โหมด ASCII

หากคุณใช้เซิร์ฟเวอร์ UNIX / Linux ให้ chmod ไฟล์:

bdlogger.pl to 755
all other files to 666

เพิ่มแท็กคำสั่ง SSI ต่อไปนี้ในหน้าเว็บของคุณ:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->

5

คุณต้องตั้งค่าเจ้าของโฟลเดอร์ www จาก 'root' เป็น 'Me'

จากเทอร์มินัลของคุณให้เรียกใช้คำสั่ง:

sudo chown -R your_system_username /var/www

หวังว่ามันจะใช้งานได้ !!


2

ในขณะที่คำตอบข้างต้นจะทำเคล็ดลับค่อนข้างมากนี่เป็นแนวทางที่ดีกว่า โอกาสที่คุณต้องการที่จะแก้ไขไฟล์ภายใน / var / www / html เพราะคุณต้องการที่จะเพิ่ม app Apache2เว็บให้บริการใน เพื่อให้บรรลุสิ่งนี้คุณต้องมีขั้นตอนต่อไปนี้

  1. เพิ่มผู้ใช้ไปยังกลุ่มผู้ใช้www-dataซึ่งเป็นเจ้าของเริ่มต้นของโฟลเดอร์ ทำไม? สาเหตุหากคุณตั้งใจจะทำการเปลี่ยนแปลงใด ๆ ในแอปพลิเคชันเว็บแบบไดนามิกแม้ว่าwordpressคุณจะต้องการคุณจะต้องให้ผู้ใช้ในกลุ่มนี้มีสิทธิ์ในการเขียน การทำเช่นนี้เพียงแค่เขียน: ในกรณีของเรามันจะเป็นsudo adduser username grouptoaddsudo adduser username www-data
  2. ถัดไปคุณต้องเปลี่ยนการread/write permissionsใช้chmodคำสั่ง chownจำได้ว่าตอนนี้คุณเป็นส่วนหนึ่งของกลุ่มผู้ใช้และไม่จำเป็นต้องเปลี่ยนความเป็นเจ้าของโดยใช้ หากต้องการทำสิ่งนี้ให้เรียกใช้: sudo chmod -R 766 directoryในกรณีนี้จะเป็นsudo chmod -R 766 htmlเช่นนั้น หากคุณรู้สึกสปอร์ตคุณสามารถรับสิทธิ์ในการเขียนอย่างเต็มที่(777)โดยขึ้นอยู่กับความปลอดภัยของแอพของคุณ

-Rมีความหมายเป็นฟังก์ชันเวียนช่วยให้คำสั่งที่จะนำไปใช้กับไดเรกทอรีย่อยทั้งหมด ฉันหวังว่านี่จะช่วยคนที่ต้องการความช่วยเหลือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.