setguid
ที่ทำงานมี 2 กองกำลังที่นี่ สิ่งแรกคือบิต setgid ที่เปิดใช้งานในโฟลเดอร์, folder
.
drwxr-s---. user group folder
นั่นคือจำนวนs
แพ็คของตัวละครที่จุดเริ่มต้นของบรรทัดนี้ พวกเขากำลังจัดกลุ่มดังนั้น:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
r-s
หมายความว่าไฟล์หรือไดเรกทอรีใด ๆ group
ที่สร้างในโฟลเดอร์นี้จะมีกลุ่มที่ตั้งค่าโดยอัตโนมัติไปยังกลุ่ม
นั่นคือสิ่งที่ทำให้ไฟล์foo.txt
และbar.txt
ถูกสร้างเช่น:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
สิทธิ์ & umask
สิทธิ์ที่คุณเห็นเป็นเรื่องอื่น umask
เหล่านี้จะถูกควบคุมโดยการตั้งค่าสำหรับคุณ คุณสามารถดูสิ่งที่umask
ตั้งค่าของคุณด้วยคำสั่งumask
:
$ umask
0002
หมายเหตุ:บิตเหล่านี้เรียกอีกอย่างว่า "โหมด" บิต
มันเป็นมาสก์ดังนั้นจึงจะปิดใช้งานบิตใด ๆ ที่เกี่ยวข้องกับสิทธิ์ที่เปิดใช้งาน ในตัวอย่างนี้บิตเดียวที่ฉันต้องการปิดคือสิทธิ์การเขียนสำหรับอื่น ๆ
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
การเป็นตัวแทนของ "บิต" ในคำสั่งนี้อยู่ในรูปแบบทศนิยม 2 เท่ากับ 010 ในรูปแบบไบนารีซึ่งก็คือบิตการเขียน 4 (100) หมายถึงคุณต้องการปิดการอ่าน 7 (111) หมายถึงคุณต้องการอ่าน / เขียน / ดำเนินการปิดการใช้งานทั้งหมด สร้างขึ้นจากที่นี่:
$ umask 007
จะปิดการใช้งานบิตอ่าน / เขียน / ดำเนินการสำหรับผู้ใช้รายอื่น
งั้นไฟล์ของคุณล่ะ
ดีumask
ควบคุมสิทธิ์ที่จะได้รับชุดเมื่อไฟล์ใหม่จะถูกสร้างขึ้น ดังนั้นถ้าเรามีumask
ชุดต่อไปนี้:
$ umask 007
และเริ่มแตะไฟล์ใหม่เราจะเห็นไฟล์ที่สร้างขึ้นดังนี้:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
หากเราเปลี่ยนเป็นอย่างอื่นให้พูดสิ่งนี้:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
มันจะไม่ส่งผลกระทบใด ๆ ต่อไฟล์ที่เราสร้างขึ้นมา ดูที่นี่:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
แล้วเบราว์เซอร์ไฟล์เกิดอะไรขึ้น
นี่umask
คือสิ่งที่ฉันเรียกว่าการตั้งค่า "อ่อน" มันไม่ได้หมายความว่าสัมบูรณ์และสามารถผ่านได้โดยง่ายใน Unix ในหลายวิธี เครื่องมือจำนวนมากใช้สวิตช์ซึ่งอนุญาตให้คุณระบุสิทธิ์เป็นส่วนหนึ่งของการทำงาน
ใช้mkdir
ตัวอย่างเช่น:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
ด้วยสวิทช์ที่เราสามารถแทนที่-m
คำสั่งไม่ได้มีสถานที่นี้เพื่อให้คุณได้รับความคิดสร้างสรรค์ ดูคำถาม & คำตอบ U & L นี้: สามารถสร้างไฟล์โดยกำหนดสิทธิ์ในบรรทัดคำสั่งได้หรือไม่? สำหรับวิธีการเช่นนั้นumask
touch
ทางอื่น? umask
เพียงแทนที่ เบราว์เซอร์ไฟล์มีแนวโน้มที่จะทำสิ่งนี้หรือเพียงแค่เพิกเฉยumask
และวางไฟล์โดยใช้สิทธิ์ที่กำหนดค่าให้ทำ