ด้วยลินุกซ์ chmod คำสั่งเราสามารถเปลี่ยนการอนุญาตไฟล์ซ้ำ ๆ กับไฟล์และไดเรกทอรีทั้งหมด คู่มือนี้จะอธิบายวิธีการ
เป็นไปได้มากว่าคุณเคยพบข้อผิดพลาดต่อไปนี้:
111 [Permission Denied] "Linux-Screw" [Permission Denied] "Linux-Screw" [readonly]
สำหรับไฟล์ระบบใดๆ การใช้ sudo เป็นวิธีการแก้ไขไฟล์ที่ต้องการ สิ่งนี้ทำให้คุณสามารถเก็บบริบทของระบบทั้งหมดได้ สำหรับการใช้งานทุกวันกับไฟล์ของผู้ใช้ ทางที่ดีควรเปลี่ยนการอนุญาต chmod สามารถทำสิ่งนั้นให้เราได้ ช่วยให้เราไม่ต้องส่งต่อการอนุญาตและให้สิทธิ์เราเข้าถึงเมื่อต้องการ
chmod คืออะไร chmod หรือโหมดเปลี่ยน เปลี่ยนบิตโหมดไฟล์ของไฟล์ที่กำหนด คุณสามารถเปลี่ยนเป็นสัญลักษณ์หรือแทนเลขฐานแปดได้
ไวยากรณ์ chmod
chmod [OPTION] MODE FILE Or chmod [OPTION] OCTAL-MODE FILE Options: [-c], --changes Verbose-mode, but only for changes [-f], --silent, --quiet Suppress most error messages [-v], --verbose Output a diagnostic for every file processed [-R], --recursive Change files and directories recursively
นี่คือตัวเลือกที่มีอยู่ โหมดหมายถึงการอ้างอิงเชิงสัญลักษณ์ หากฉันต้องการเพิ่มการอนุญาตที่ปฏิบัติการได้ให้กับไฟล์ ฉันป้อนใน:
chmod +x [FILE]
และนั่นจะเพิ่มการอนุญาตที่ปฏิบัติการได้ เราได้ทบทวนพื้นฐานแล้ว เราจะแก้ไขโครงสร้างโฟลเดอร์และทำให้ใช้งานได้
การเรียกซ้ำ chmod
บ่อยครั้งเมื่อคุณทำงานในไดเร็กทอรีโฟลเดอร์ คุณไม่จำเป็นต้องเปลี่ยนการอนุญาตของไฟล์เดียว คุณจะต้องเปลี่ยนการอนุญาตของไฟล์นั้น ไฟล์ทั้งหมดในโฟลเดอร์ปัจจุบัน และไดเรกทอรีย่อยทั้งหมด
โชคดีที่ chmod -R ทำให้เราสามารถเปลี่ยนแปลงไฟล์ทั้งหมดซ้ำๆ ได้
chmod -R 755 * ls -altrR
แสดงให้เราเห็นต่อไปนี้หลังจากที่เราเปลี่ยนการอนุญาต
chmod -R
ถ้าอยากรู้ว่าทำไม -altrh เป็นค่าเริ่มต้นและชุดตัวเลือกที่ต้องการ โปรดดูบทความล่าสุดของฉันใน ls .
เอาล่ะเราไปกันเถอะ ด้านบนเราเห็นไดเร็กทอรีและไฟล์ของเรามีการเปลี่ยนแปลงเพื่อให้ตรงกับ 755 , หรือ rwx r-x r-x . ไดเรกทอรีนั้นพร้อมใช้งานสำหรับเราแล้ว เนื่องจากเราอยู่ในกลุ่มนั้น (กลุ่มผู้ใช้) เรายังใช้ได้เนื่องจากเราเป็นผู้ใช้ หากคุณกำลังล้างโฟลเดอร์จากผู้ใช้คนก่อน คุณสามารถเปลี่ยนความเป็นเจ้าของไฟล์ด้วย chown
สิ่งนี้ทำให้พร้อมใช้งานสำหรับคุณในฐานะผู้ใช้ อย่างไรก็ตาม มีปัญหากับ chmod ด้านบน . เมื่อคุณตั้งค่า umask . ของคุณ อย่างเช่น 0022 ค่าปริยาย ไดเร็กทอรี และไฟล์จะแตกต่างกัน ไดเร็กทอรีถูกสร้างขึ้นที่ 755 อนุญาตให้ cd , เปลี่ยนไดเร็กทอรี, คำสั่งทำงานอย่างถูกต้อง ไฟล์ถูกสร้างขึ้นเป็น 644 ซึ่งน้อยกว่าไดเร็กทอรีหนึ่งไฟล์ เนื่องจากไฟล์ปกติไม่ต้องการสิทธิ์ในการดำเนินการ ไดเร็กทอรีทำสำหรับ cd . มาแก้ไขด้วย ค้นหา และ -exec .
chmod วนซ้ำด้วยการค้นหา
find <dir> -type d -exec chmod 755{} \; find <dir> -type f -exec chmod 644 {} \;
chmod วนซ้ำกับ Find
เราไปกันเลย ทุกอย่างถูกบันทึกและเก็บให้สอดคล้องกับ umask เริ่มต้น ไม่มีไฟล์ปฏิบัติการและไดเร็กทอรีปฏิบัติการ
บทสรุป
การอนุญาตไฟล์อาจเหนียวแน่น แต่ chmod ช่วยเราแก้ไขปัญหานั้น เมื่อคุณทราบวิธีเปลี่ยนการอนุญาตแล้ว คุณสามารถเป็นเจ้าของไดเร็กทอรีและไฟล์ของคุณได้อย่างแท้จริง ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการนำทางโครงสร้างพื้นฐาน Linux ด้วยคำสั่งเชลล์หรือไม่ อ่านบทแนะนำเพิ่มเติมที่นี่