เป็นไปได้หรือไม่ที่จะทดสอบการอนุญาตที่มีประสิทธิภาพของไฟล์สำหรับผู้ใช้ที่เฉพาะเจาะจง?
ปกติแล้วฉันจะทำสิ่งนี้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
อาจจะไม่เลือกที่ดีที่สุด แต่ ... คุณกำลังทดสอบไฟล์ขนาดใหญ่หรือแฟ้มไบนารี ...