Chmod เพื่ออนุญาตให้อ่านและเขียนสิทธิ์สำหรับไดเรกทอรี


62

ฉันสร้างไดเรกทอรีในรูทแล้ว ฉันกำลังมองหาchmodคำสั่งเพื่ออนุญาตให้ผู้ใช้ทุกคนอ่านและเขียนสิทธิ์ไปยังไดเรกทอรีเฉพาะ ฉันทำchmod 775ไฟล์ไปแล้ว แต่ฉันต้องการสิ่งนี้สำหรับไดเรกทอรี ซึ่งรวมถึงการอนุญาตในทุกไฟล์และไดเรกทอรีย่อย

คำตอบ:


34

0775ไม่ค่อยถูกต้องสำหรับไฟล์ ต่อไปนี้จะเพิ่มสิทธิ์ที่ต้องการตามประเภทที่เหมาะสมโดยไม่รบกวนสิทธิ์อื่น ๆ ที่มีอยู่:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

ดูหน้าคนค้นหาเพื่อช่วยในการถอดรหัส


47

เพื่อให้ผู้ใช้ทุกคนมีสิทธิ์เข้าถึงแบบอ่านและเขียน0777ซึ่งจะเป็นอันตรายเล็กน้อยโดยเฉพาะถ้าคุณใช้งานเว็บเซิร์ฟเวอร์ Like @unwind พูดว่า:

chmod -R 0777 /mydirectory จะอนุญาตให้ผู้ใช้ทุกคนอ่านและเขียนการเข้าถึงไฟล์และโฟลเดอร์ทั้งหมดในไดเรกทอรีนั้น

ขึ้นอยู่กับวัตถุประสงค์ของคุณคุณอาจต้องการอ่านเกี่ยวกับ sticky bits ซึ่งอนุญาตให้ผู้ใช้ทุกคนสร้างไฟล์ใหม่ แต่ไม่ต้องลบหรือแก้ไขไฟล์อื่นในไดเรกทอรี:

chmod +t /mydirectory

นอกจากนี้ในกรณีที่คุณไม่ทราบว่าman chmodจะเปิดหน้าคู่มือสำหรับchmodคำสั่งซึ่งคุณสามารถค้นหาข้อความ "ซ้ำ" โดยการพิมพ์/recursive


15

นั่นไม่ใช่วิธีการทำงานของระบบป้องกัน Unix คุณไม่สามารถตั้งค่าการอนุญาตซ้ำได้ คุณต้องตั้งค่าไว้ในแต่ละไดเรกทอรีตลอดจน "down"

แน่นอนคุณสามารถตั้งค่าแบบเรียกซ้ำได้ แต่นั่นหมายถึง "ผ่านและตั้งค่าการอนุญาตเหล่านี้ในทุกไฟล์และโฟลเดอร์ด้านล่าง" ซึ่งไม่ใช่วิธีที่ฉันเข้าใจคำถามของคุณ

ในการทำเช่นนั้นใช้ตัวเลือก -Rเพื่อ chmod:

$ chmod -R 0755 /my-cool-directory

@unwind - ฉันหมายถึงทุกไฟล์และไดเรกทอรีย่อยของไดเรกทอรีฉัน chmod ได้อ่านและเขียนสิทธิ์สำหรับทุกคน นั่นคือสิ่งที่คำสั่งนี้จะทำอย่างไร ขอบคุณ

1
เมื่อฉันใส่ -r ก่อน 0755 ฉันจะได้รับ 0755 - ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว .. ใส่ -r หลังจากแก้ปัญหาของฉัน
ทิม Mottram

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