ฉันมีปัญหาที่แปลกจริงๆ ฉันมีไฟล์บางไฟล์ในไดเรกทอรีขนาดใหญ่ที่ฉันต้องการให้ทุกคนอ่านได้ ดังนั้นฉันลองทำสิ่งนี้:
sudo find readme* -not -perm -o+r -exec chmod +r {} \;
และรับสิ่งนี้:
sudo: unable to execute /usr/bin/find: Success
ฉันไม่รู้ว่าทำไมมันถึงบอกว่าสำเร็จเพราะสิทธิ์ไม่เปลี่ยนแปลง ฉันยืนยันโดยพิมพ์สิ่งนี้:
find readme* -not -perm -o+r -exec ls -l {} \;
และรับสิ่งที่ต้องการ
-rw------- 1 root root 536871076 Nov 22 14:06 readme_20101122200429 -rw------- 1 root root 536871892 Nov 22 14:08 readme_20101122200642 -rw------- 1 root root 293458128 Nov 22 14:10 readme_20101122200859
ฉันพยายาม:
sudo chmod +r *
และได้รับ:
sudo: unable to execute /bin/chmod: Success
และอีกครั้งความสำเร็จหมายถึงการล้มเหลวจริงๆ ดังนั้นฉันยอมแพ้และเข้าสู่ระบบในฐานะ root และพยายาม:
find readme* -not -perm -o+r -exec chmod +r {} \;
เวลานี้มันทำงาน ทำไม?
แก้ไข: / etc / sudoers ดูเหมือนว่า:
## Allow root to run any commands anywhere root ALL=(ALL) ALL ##Me user1 ALL=(ALL) ALL
-exec
ส่วนหนึ่งของคำสั่งดังนั้น find
ถูกเรียกใช้เป็นราก แต่ chmod
ไม่ใช่เหรอ
sudo chmod +r *
echo $PATH
และดูว่ามันถูกต้องหรือไม่ ลองดูสิ which find
และ which chmod
.
/etc/sudoers
ดูเหมือน?