หากฉันสร้างไฟล์ในฐานะผู้ใช้ที่ไม่มีสิทธิ์และเปลี่ยนโหมดการอนุญาต400เป็นผู้ใช้นั้นจะเห็นว่าเป็นแบบอ่านอย่างเดียวอย่างถูกต้อง:
$ touch somefile
$ chmod 400 somefile
$ [ -w somefile ] && echo rw || echo ro
ro
ทั้งหมดเป็นอย่างดี.
แต่แล้วรากก็มาพร้อม:
# [ -w somefile ] && echo rw || echo ro
rw
ห่า? แน่นอนว่ารูทสามารถเขียนไปยังไฟล์แบบอ่านอย่างเดียวได้ แต่ไม่ควรทำให้เป็นนิสัย: แนวปฏิบัติที่ดีที่สุดมีแนวโน้มที่จะกำหนดว่าฉันควรจะสามารถทดสอบบิตการอนุญาตการเขียนได้และถ้าไม่ใช่ก็เป็นไปได้ ทางนั้นด้วยเหตุผล
ผมคิดว่าผมต้องการที่จะเข้าใจทั้งสองเหตุผลนี้เกิดขึ้นและวิธีการที่ฉันจะได้รับเท็จรหัสการส่งคืนเมื่อการทดสอบไฟล์ที่ไม่ได้มีการเขียนชุดบิตหรือไม่?
/etc/dhcp/dhcpd.confซึ่งเป็นของรูต dhcpdฉันใช้ผู้ขายที่จัดมาให้ ภัยพิบัติทั้งหมดใช่มั้ย ไฟล์จะถูกตรวจสอบใน RCS ฉันอัตโนมัติใช้rcsdiff, ciและcoเพราะเรามีผู้ประกอบการที่จะต้องดำเนินการ ... การตรวจสอบสิทธิ์บิต ( -wตามรายละเอียดโดยtest(1)) จะเป็นความล้มเหลวในบรรทัดแรกโดยทำงานบนพื้นฐานที่ci -uปล่อยให้ไฟล์อ่านได้อย่างเดียว ฉันอร่อยที่และตรงไปและการตรวจสอบrcsdiff -q ไม่$?ร้ายกาจdhcpd? dhcpdมันจะเป็นเจ้าของโดย
bashและtestทำให้ฉันเชื่อว่านั่นคือสิ่งที่[ -wมีไว้สำหรับ
4.1.2(1)-release) และ RHEL7 (4.2.46(2)-release)