หากฉันสร้างไฟล์ในฐานะผู้ใช้ที่ไม่มีสิทธิ์และเปลี่ยนโหมดการอนุญาต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
)