Umask Linux Pro
สารบัญ:
บนระบบปฏิบัติการ Linux และ Unix ไฟล์ใหม่ทั้งหมดจะถูกสร้างขึ้นด้วยชุดสิทธิ์เริ่มต้น ยูทิลิตี้
umask
ช่วยให้คุณสามารถดูหรือตั้งค่ามาสก์การสร้างโหมดไฟล์ซึ่งกำหนดบิตการอนุญาตสำหรับไฟล์หรือไดเรกทอรีที่สร้างขึ้นใหม่
มันถูกใช้โดย mkdir, touch, tee และคำสั่งอื่น ๆ ที่สร้างไฟล์และไดเรกทอรีใหม่
สิทธิ์ Linux
ก่อนที่จะดำเนินการต่อไปเราจะอธิบายเกี่ยวกับรูปแบบการอนุญาต Linux ก่อน
ใน Linux ไฟล์แต่ละไฟล์จะเชื่อมโยงกับเจ้าของและกลุ่มและได้รับมอบหมายสิทธิ์การเข้าถึงสำหรับผู้ใช้สามประเภทที่แตกต่างกัน:
- เจ้าของไฟล์สมาชิกกลุ่มทุกคนอื่น
มีสามประเภทสิทธิ์ที่ใช้กับแต่ละคลาส:
- สิทธิ์ในการอ่านอนุญาตให้เขียนอนุญาตดำเนินการ
แนวคิดนี้อนุญาตให้คุณระบุผู้ใช้ที่ได้รับอนุญาตให้อ่านไฟล์เขียนไปยังไฟล์หรือเรียกใช้ไฟล์
ในการดูการอนุญาตของไฟล์ให้ใช้
ls
สั่ง
ls
:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
อักขระตัวแรกแสดงถึงชนิดไฟล์ที่สามารถเป็นไฟล์ปกติ (
-
), ไดเร็กทอรี (
d
), ลิงก์สัญลักษณ์ (
l
) หรือไฟล์ชนิดพิเศษอื่น ๆ
อักขระเก้าตัวถัดไปแสดงสิทธิ์แต่ละชุดสามชุดแต่ละอักขระ ชุดแรกแสดงสิทธิ์ของเจ้าของสิทธิ์กลุ่มหนึ่งและกลุ่มสุดท้ายแสดงสิทธิ์ของผู้อื่น
อักขระ
r
มีค่าฐานแปดเท่ากับ
4
สำหรับการอ่านโดยมีค่าฐานแปดเป็น
2
สำหรับการเขียน
x
มีค่าฐานแปดเป็น
1
สำหรับการดำเนินการอนุญาตและ (
-
) ที่มีค่าฐานแปดเป็น
0
ไม่มีสิทธิ์
นอกจากนี้ยังมีประเภทการอนุญาตไฟล์พิเศษอื่นอีกสามประเภท ได้แก่
setuid
,
setgid
และ
Sticky Bit
ในตัวอย่างด้านบน (
rwxr-xr-x
) หมายความว่าเจ้าของมีสิทธิ์อ่านเขียนและดำเนินการ (
rwx
) กลุ่มและอื่น ๆ มีสิทธิ์อ่านและดำเนินการ
หากเราเป็นตัวแทนของการอนุญาตไฟล์โดยใช้เครื่องหมายตัวเลขเราจะแสดงหมายเลข
755
:
- เจ้าของ:
rwx
=4+2+1 = 7
กลุ่ม:rx
=4+0+1 = 5
อื่น ๆ:rx
=4+0+1 = 5
เมื่อแสดงในรูปแบบตัวเลขสิทธิ์สามารถมีตัวเลขฐานแปดสามหรือสี่ (0-7) ตัวเลขแรกแสดงถึงการอนุญาตพิเศษหากไม่ได้ระบุหมายความว่าไม่มีการตั้งค่าการอนุญาตพิเศษในไฟล์ ในกรณีของเรา
755
เหมือนกับ
0755
ตัวเลขตัวแรกสามารถรวมกันเป็น
4
สำหรับ
setuid
,
2
สำหรับ
setgid
และ
1
สำหรับ
Sticky Bit
สิทธิ์ไฟล์สามารถเปลี่ยนแปลงได้โดยใช้คำสั่ง
chmod
และความเป็นเจ้าของโดยใช้คำสั่ง
chown
เข้าใจ umask
ตามค่าเริ่มต้นบนระบบ Linux สิทธิ์การสร้างเริ่มต้นคือ
666
สำหรับไฟล์ซึ่งให้สิทธิ์การอ่านและเขียนแก่ผู้ใช้กลุ่มและอื่น ๆ และสำหรับ
777
สำหรับไดเรกทอรีซึ่งหมายถึงการอ่านเขียนและเรียกใช้สิทธิ์สำหรับผู้ใช้กลุ่มและ คนอื่น ๆ Linux ไม่อนุญาตให้สร้างไฟล์ที่มีสิทธิ์ดำเนินการ
สิทธิ์การสร้างเริ่มต้นสามารถแก้ไขได้โดยใช้ยูทิลิตี้
umask
umask
ส่งผลกระทบต่อสภาพแวดล้อมเชลล์ปัจจุบันเท่านั้น บน Linux ลีนุกซ์ส่วนใหญ่ค่า umask ทั่วทั้งระบบเริ่มต้นจะถูกตั้งค่าในไฟล์
pam_umask.so
หรือ
/etc/profile
หากต้องการดูค่ามาสก์ปัจจุบันให้พิมพ์
umask
โดยไม่มีอาร์กิวเมนต์:
umask
ผลลัพธ์จะรวมถึง
022
ค่า
umask
มีบิตสิทธิ์ที่จะ ไม่ ถูกตั้งค่าในไฟล์และไดเรกทอรีที่สร้างขึ้นใหม่
ตามที่เราได้กล่าวไปแล้วสิทธิ์ในการสร้างเริ่มต้นสำหรับไฟล์คือ
666
และสำหรับไดเรกทอรี
777
ในการคำนวณบิตสิทธิ์ของไฟล์ใหม่ลบค่า umask จากค่าเริ่มต้น
ตัวอย่างเช่นในการคำนวณว่า
uname 022
จะมีผลกับไฟล์และไดเรกทอรีที่สร้างใหม่อย่างไรให้ใช้:
- ไฟล์:
666 - 022 = 644
เจ้าของสามารถอ่านและแก้ไขไฟล์ กลุ่มและคนอื่น ๆ สามารถอ่านไฟล์ได้ไดเรกทอรี:777 - 022 = 755
เจ้าของสามารถทำซีดีลงในไดเรกทอรีและอ่านรายการแก้ไขสร้างหรือลบไฟล์ในไดเรกทอรี กลุ่มและอื่น ๆ สามารถcd
ลงในไดเรกทอรีและรายการและอ่านไฟล์
นอกจากนี้คุณยังสามารถแสดงค่าหน้ากากในสัญกรณ์สัญลักษณ์โดยใช้ตัวเลือก
-S
:
umask -S
u=rwx, g=rx, o=rx
ไม่เหมือนกับสัญลักษณ์ตัวเลขค่าสัญกรณ์สัญลักษณ์ประกอบด้วยบิตสิทธิ์ที่จะถูกตั้งค่าในไฟล์และไดเรกทอรีที่สร้างขึ้นใหม่
การตั้งค่ามาสก์
มาสก์การสร้างไฟล์สามารถตั้งค่าได้โดยใช้เครื่องหมายฐานแปดหรือสัญลักษณ์ หากต้องการทำการเปลี่ยนแปลงอย่างถาวรให้ตั้งค่า
umask
ใหม่ในไฟล์กำหนดค่าส่วนกลางเช่นไฟล์
/etc/profile
ซึ่งจะส่งผลต่อผู้ใช้ทั้งหมดหรือในไฟล์การกำหนดค่าเชลล์ของผู้ใช้เช่น
~/.profile
,
~/.bashrc
หรือ
~/.zshrc
จะมีผลกับผู้ใช้เท่านั้น ไฟล์ผู้ใช้มีความสำคัญมากกว่าไฟล์ทั่วโลก
ก่อนที่จะทำการเปลี่ยนแปลงค่า
umask
ตรวจสอบให้แน่ใจว่าค่าใหม่ไม่ได้มีความเสี่ยงด้านความปลอดภัย ค่าที่ จำกัด น้อยกว่า
022
ควรใช้ด้วยความระมัดระวังอย่างยิ่ง ตัวอย่างเช่น
umask 000
หมายความว่าทุกคนจะได้อ่านเขียนและดำเนินการอนุญาตสำหรับไฟล์ที่สร้างขึ้นใหม่ทั้งหมด
สมมติว่าเราต้องการตั้งค่าการอนุญาตที่ จำกัด มากขึ้นสำหรับไฟล์และไดเรกทอรีที่สร้างขึ้นใหม่เพื่อให้ผู้อื่นไม่สามารถ
cd
ไปยังไดเรกทอรีและอ่านไฟล์ได้ สิทธิ์ที่เราต้องการคือ
750
สำหรับไดเรกทอรีและ
640
สำหรับไฟล์
ในการคำนวณค่า
umask
เพียงแค่ลบการอนุญาตที่ต้องการจากค่าเริ่มต้น:
ค่า
777-750 = 027
:
777-750 = 027
ค่า
umask
ที่ต้องการแสดงด้วยเครื่องหมายตัวเลขคือ
027
หากต้องการตั้งค่าใหม่ทั้งระบบอย่างถาวรให้เปิดไฟล์
/etc/profile
ด้วยโปรแกรมแก้ไขข้อความของคุณ:
sudo nano /etc/profile
และเปลี่ยนหรือเพิ่มบรรทัดต่อไปนี้ที่จุดเริ่มต้นของไฟล์:
/ etc / รายละเอียด
umask 027
เพื่อให้การเปลี่ยนแปลงมีผลใช้งานคำสั่ง
source
ต่อไปนี้หรือออกจากระบบและเข้าสู่ระบบ:
source /etc/profile
หากต้องการตรวจสอบการตั้งค่าใหม่เราจะสร้างไฟล์และไดเรกทอรีใหม่หนึ่งไฟล์โดยใช้
mkdir
และ
touch
:
mkdir newdir
touch newfile
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
อีกวิธีในการตั้งค่ามาสก์การสร้างไฟล์คือการใช้สัญลักษณ์สัญลักษณ์ ตัวอย่างเช่น
umask u=rwx, g=rx, o=
เหมือนกับ
umask 027
ข้อสรุป
ในคู่มือนี้เราได้อธิบายสิทธิ์ Linux และวิธีใช้คำสั่ง
umask
เพื่อตั้งค่าบิตสิทธิ์สำหรับไฟล์หรือไดเรกทอรีที่สร้างขึ้นใหม่
สำหรับข้อมูลเพิ่มเติมพิมพ์
man umask
ในเทอร์มินัลของคุณ
คำสั่ง linux พื้นฐาน

การรู้วิธีใช้บรรทัดคำสั่งจะมีประโยชน์มาก ในบทความนี้เราจะดำเนินการตามคำสั่ง Linux ที่ใช้บ่อยที่สุดที่ผู้ดูแลระบบ Linux ใช้เป็นประจำทุกวัน
คำสั่ง Chmod ใน linux (การอนุญาตไฟล์)

ใน Linux การเข้าถึงไฟล์นั้นได้รับการจัดการผ่านการอนุญาตไฟล์คุณสมบัติและความเป็นเจ้าของ บทช่วยสอนนี้ครอบคลุมถึงวิธีการใช้คำสั่ง chmod เพื่อเปลี่ยนสิทธิ์การเข้าถึงของไฟล์และไดเรกทอรี
คำสั่ง Chgrp ใน linux (เปลี่ยนกลุ่ม)

ใน Linux แต่ละไฟล์จะเชื่อมโยงกับเจ้าของและกลุ่มและมีสิทธิ์ที่กำหนดว่าผู้ใช้คนใดสามารถอ่านเขียนหรือดำเนินการไฟล์ คำสั่ง chgrpc เปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์ที่กำหนด