ฉันต้องการตั้งค่าโฟลเดอร์เพื่อให้ทุกสิ่งที่สร้างขึ้นภายใน (ไดเรกทอรีไฟล์) สืบทอดการอนุญาตเริ่มต้นและกลุ่ม
ให้เรียกกลุ่ม "สื่อ" และโฟลเดอร์ / ไฟล์ที่สร้างขึ้นภายในไดเรกทอรีควรมี g + rw โดยอัตโนมัติ
setfacl
และ ACLs ดีฟอลต์ไม่มีอยู่บน AIX
ฉันต้องการตั้งค่าโฟลเดอร์เพื่อให้ทุกสิ่งที่สร้างขึ้นภายใน (ไดเรกทอรีไฟล์) สืบทอดการอนุญาตเริ่มต้นและกลุ่ม
ให้เรียกกลุ่ม "สื่อ" และโฟลเดอร์ / ไฟล์ที่สร้างขึ้นภายในไดเรกทอรีควรมี g + rw โดยอัตโนมัติ
setfacl
และ ACLs ดีฟอลต์ไม่มีอยู่บน AIX
คำตอบ:
ฉันพบมัน: การใช้สิทธิ์เริ่มต้น
จากบทความ:
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
ต่อไปเราสามารถตรวจสอบ:
getfacl /<directory>
เอาท์พุท:
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
setfacl -d -m g::rwX /<directory>
นี่คือคำตอบเพิ่มเติมของ Chris มันขึ้นอยู่กับประสบการณ์ของฉันบนอุปกรณ์ Linux Linux ของฉัน
การใช้สวิตช์เริ่มต้น (-d) และสวิตช์ปรับเปลี่ยน (-m) จะปรับเปลี่ยนเฉพาะการอนุญาตเริ่มต้น แต่ปล่อยให้มีอยู่เดิม:
setfacl -d -m g::rwx /<directory>
หากคุณต้องการเปลี่ยนโครงสร้างการอนุญาตทั้งหมดของโฟลเดอร์รวมถึงโครงสร้างที่มีอยู่เดิม (คุณจะต้องทำบรรทัดเพิ่มเติมและทำให้มันซ้ำ -R:
setfacl -R -m g::rwx /<directory>
เช่น.
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
( เครดิตเพื่อ markdwite ในความคิดเห็นสำหรับ synthax ของการเพิกถอนสิทธิพิเศษทั้งหมด)
setfacl -R -m g::rwx /<directory>
สองครั้งในคำตอบของคุณ?
เพิ่มตัวคุณเอง / ผู้ใช้ที่เข้าสู่กลุ่ม www-data ดังนั้นเราจึงสามารถทำงานกับไฟล์ที่สร้างขึ้นโดยเซิร์ฟเวอร์ www-data
sudo usermod -a -G www-data $USER
จำเป็นต้องรีสตาร์ท / relogin เพื่อให้กลุ่มที่เพิ่มใหม่มีผลบังคับใช้
cd /var/www
เพิ่ม www-data เป็นสมาชิกกลุ่มของโฟลเดอร์ html และผู้ใช้ของคุณในฐานะเจ้าของดังนั้นเราจึงเป็นเจ้าของและสมาชิกกลุ่ม
sudo chown -R $USER:www-data html
ใส่ชื่อผู้ใช้ของคุณแทน USER
ตั้งค่าอ่าน, เขียน, ดำเนินการอนุญาตตามที่ต้องการ, (ugo) u = user, g = group, o = others
sudo chmod 750 html
ตั้งค่า GID ของ html ตอนนี้ไฟล์ที่สร้างขึ้นใหม่ใน html จะได้รับสิทธิ์การเป็นเจ้าของ:
sudo chmod g+s html
สิ่งนี้จะสร้างกฎเริ่มต้นสำหรับไฟล์ / dirs ที่สร้างขึ้นใหม่ภายในไดเรกทอรี html และไดเรกทอรีย่อย
sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html
ทำให้ SELinux ติดตั้งไว้โดยไม่สนใจข้อกำหนดบริบท www-data เพื่อให้อนุญาตการเขียน
sudo setsebool -P httpd_unified 1
รายการไดเรกทอรีเพื่อดูสิทธิ์ใหม่ที่นำไปใช้
ls -ld html
คืนค่านี้
drwxrwsr-x+ 3 html www-data
ส่วนท้าย + หมายถึง ACL ซึ่งเป็นรายการควบคุมการเข้าถึงตั้งอยู่ในไดเรกทอรี
การอ้างอิง :ลิงก์ไปยังฟอรัม
การใช้คำสั่งต่อไปนี้คุณสามารถตั้งค่าการอนุญาตเริ่มต้นเป็นไฟล์:
chacl -R filename