บน Linux มีวิธีที่จะทำให้ไฟล์ใหม่ทั้งหมดที่สร้างขึ้นในไดเรกทอรีเป็นของกลุ่มไดเรกทอรีแทนที่จะเป็นกลุ่มผู้ใช้ที่สร้างขึ้นหรือไม่?
บน Linux มีวิธีที่จะทำให้ไฟล์ใหม่ทั้งหมดที่สร้างขึ้นในไดเรกทอรีเป็นของกลุ่มไดเรกทอรีแทนที่จะเป็นกลุ่มผู้ใช้ที่สร้างขึ้นหรือไม่?
คำตอบ:
หากคุณchmod g+s directory
ไฟล์ทั้งหมดที่สร้างในไดเรกทอรีนั้นจะเป็นของกลุ่มนั้น
newgroup
เป็นสิ่งที่หลงเหลืออยู่จากวันที่คุณจะอยู่ในกลุ่มเดียวและไม่จำเป็นจริงๆในปัจจุบัน
ไฟล์ที่สร้างโดยผู้ใช้จะถูกสร้างด้วย ID กลุ่มปัจจุบันของเขา หากต้องการตรวจสอบรหัสผู้ใช้ที่คุณสามารถดำเนินการid
; เพื่อเปลี่ยน GID ของคุณเป็นบางอย่างจากรายการกลุ่มของคุณใช้newgrp <group>
หรือsg <group> <command>
: คำสั่งแรกจะเรียกใช้เชลล์และคำสั่งหลังจะเรียกใช้คำสั่งด้วย GID ที่ตั้งค่าเป็น<group>
id
ตรวจสอบเปลือก 'ล็อก' นี้:
whitequark@forth:~/test$ id
uid=1000(whitequark) gid=1000(whitequark) groups=4(adm),20(dialout),24(cdrom),
46(plugdev),104(lpadmin),114(admin),118(sambashare),1000(whitequark)
whitequark@forth:~/test$ touch file1
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
whitequark@forth:~/test$ newgrp admin
<<< at this point a new shell is started >>>
whitequark@forth:~/test$ touch file2
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
-rw-r--r-- 1 whitequark admin 0 2010-01-29 19:49 file2