Android

คำสั่ง Umask ใน linux

Umask Linux Pro

Umask Linux Pro

สารบัญ:

Anonim

บนระบบปฏิบัติการ 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 ในเทอร์มินัลของคุณ

สถานี umask