เป็นไปได้หรือไม่ที่จะทดสอบการอนุญาตที่มีประสิทธิภาพของไฟล์สำหรับผู้ใช้ที่เฉพาะเจาะจง?
ปกติแล้วฉันจะทำสิ่งนี้su userแล้วเข้าถึงไฟล์ แต่ตอนนี้ฉันต้องการทดสอบสิ่งนี้กับผู้ใช้ที่ไม่มีเชลล์ (เช่นผู้ใช้ระบบ)
เป็นไปได้หรือไม่ที่จะทดสอบการอนุญาตที่มีประสิทธิภาพของไฟล์สำหรับผู้ใช้ที่เฉพาะเจาะจง?
ปกติแล้วฉันจะทำสิ่งนี้su userแล้วเข้าถึงไฟล์ แต่ตอนนี้ฉันต้องการทดสอบสิ่งนี้กับผู้ใช้ที่ไม่มีเชลล์ (เช่นผู้ใช้ระบบ)
คำตอบ:
sudoคำสั่งสามารถทำงานอะไรเป็นผู้ใช้โดยเฉพาะอย่างยิ่งกับ-uตัวเลือก แทนที่จะต้องกังวลเกี่ยวกับเชลล์เพียงแค่พยายามcat(หรือดำเนินการอะไรก็ตาม) ไฟล์ของคุณในฐานะผู้ใช้เป้าหมาย:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
ฉันพบว่าสะดวกที่จะใช้ในสคริปต์บางอย่างเช่น
sudo -u <user> test -r <file-to-test> && ...
man testสำหรับรายละเอียดเพิ่มเติม
sudo -u <user> test -r <file-to-test>; echo $?
ชิ้นecho $?ส่วนจะแสดงสถานะออกจากการทดสอบ
เพียงจำไว้ว่าที่นี่ผลผลิตจะเป็น0ถ้าการดำเนินการประสบความสำเร็จ! หรือไม่ใช่ศูนย์เช่น1ถ้าไม่
ถูกใจความคิดเห็นของ @ Thomasบนคำตอบของ @ user72025 ใช้man testเพื่อรับการทดสอบการทำงานเพิ่มเติมเช่นtest -xทดสอบความสามารถในtest -wการปฏิบัติงานความสามารถในการเขียนได้ ฯลฯ
ฉันพบว่าคุณสามารถใช้su -s <shellname> <username>เพื่อป้อนเชลล์เฉพาะเป็นผู้ใช้เฉพาะ จากนั้นคุณสามารถทดสอบการอนุญาตไฟล์ได้ตามปกติ
เช่น:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
catอาจจะไม่เลือกที่ดีที่สุด แต่ ... คุณกำลังทดสอบไฟล์ขนาดใหญ่หรือแฟ้มไบนารี ...