ทดสอบการอนุญาตที่มีประสิทธิภาพของไฟล์สำหรับผู้ใช้


24

เป็นไปได้หรือไม่ที่จะทดสอบการอนุญาตที่มีประสิทธิภาพของไฟล์สำหรับผู้ใช้ที่เฉพาะเจาะจง?

ปกติแล้วฉันจะทำสิ่งนี้su userแล้วเข้าถึงไฟล์ แต่ตอนนี้ฉันต้องการทดสอบสิ่งนี้กับผู้ใช้ที่ไม่มีเชลล์ (เช่นผู้ใช้ระบบ)

คำตอบ:


23

sudoคำสั่งสามารถทำงานอะไรเป็นผู้ใช้โดยเฉพาะอย่างยิ่งกับ-uตัวเลือก แทนที่จะต้องกังวลเกี่ยวกับเชลล์เพียงแค่พยายามcat(หรือดำเนินการอะไรก็ตาม) ไฟล์ของคุณในฐานะผู้ใช้เป้าหมาย:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

catอาจจะไม่เลือกที่ดีที่สุด แต่ ... คุณกำลังทดสอบไฟล์ขนาดใหญ่หรือแฟ้มไบนารี ...
อเล็กซิส Wilke

24

ฉันพบว่าสะดวกที่จะใช้ในสคริปต์บางอย่างเช่น

 sudo -u <user> test -r <file-to-test> && ...

1
คำตอบที่ดีที่สุดในขณะที่คุณสามารถทดสอบการอ่าน (-r), เขียนได้ (-w) และปฏิบัติการ (-x) โดยไม่ต้องแก้ไข / สร้างไฟล์จริง man testสำหรับรายละเอียดเพิ่มเติม
Thomas

12
sudo -u <user> test -r <file-to-test>; echo $?

ชิ้นecho $?ส่วนจะแสดงสถานะออกจากการทดสอบ

เพียงจำไว้ว่าที่นี่ผลผลิตจะเป็น0ถ้าการดำเนินการประสบความสำเร็จ! หรือไม่ใช่ศูนย์เช่น1ถ้าไม่

ถูกใจความคิดเห็นของ @ Thomasบนคำตอบของ @ user72025 ใช้man testเพื่อรับการทดสอบการทำงานเพิ่มเติมเช่นtest -xทดสอบความสามารถในtest -wการปฏิบัติงานความสามารถในการเขียนได้ ฯลฯ


1
สำหรับฉันนี่คือคำตอบที่มีประโยชน์ที่สุด โดยผู้ใช้ 72025 ใกล้เคียงกัน แต่ฉันไม่รู้ว่าผลลัพธ์คืออะไร คุณทำให้ชัดเจนแล้ว ขอบคุณ การลงคะแนน
แรงบันดาลใจ

6

ฉันพบว่าคุณสามารถใช้su -s <shellname> <username>เพื่อป้อนเชลล์เฉพาะเป็นผู้ใช้เฉพาะ จากนั้นคุณสามารถทดสอบการอนุญาตไฟล์ได้ตามปกติ

เช่น:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

ตัวเลือกที่น่าสนใจมาก
Alex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.