ทำไม sudo สองครั้งจึงแก้ไขการอนุญาต


2

บริบท:

ssh แก้ไขเป็นอินสแตนซ์ AWS t1.micro ที่รัน Amazon Linux 2013.09 โดยใช้ค่าเริ่มต้น ec2-user. ฉันพยายามที่จะแสดงรายการเนื้อหาของไดเรกทอรี postgresql เริ่มต้น:

มีอะไรอยู่ในนั้น

$ ls /var/lib/pgsql9/

ls: cannot open directory /var/lib/pgsql9/: Permission denied

ตกลง. ใครเป็นเจ้าของสิ่งนี้?

$ ls -l /var/lib | grep pgsql
drwx------ 4 postgres postgres 4096 Jun 22 16:06 pgsql9

อา โง่ฉัน

$ sudo -u postgres ls /var/lib/pgsql9/

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for ec2-user:

... อะไร? ec2-user มีรหัสผ่านหรือไม่ ถึงเวลาสำหรับปืนที่ใหญ่กว่า

$ sudo sudo -u postgres ls /var/lib/pgsql9/
backups  data

ที่ประสบความสำเร็จ! ตอนนี้ไปที่ superuser.com เพื่อค้นหาว่าเกิดอะไรขึ้น

ทำไม sudo sudo ประพฤติแตกต่างกว่า sudo?


1
คุณรู้, sudo ls /var/lib/pgsql9 ก็จะทำงานเช่นกัน root สามารถเข้าถึงสิ่งต่าง ๆ แม้ว่าจะไม่ได้อยู่ในการอนุญาต
Nathan C

ขอบคุณ! ฉันรู้สึกงี่เง่าที่ไม่พยายาม
kdbanman

คำตอบ:


4

Amazon EC2 สร้างขึ้นเหมือน Ubuntu: root การเข้าถึงและทุกอย่างทำได้ด้วย sudo แทน.

อะไรของคุณ sudo คำสั่งได้พยายามเลียนแบบ postgresต้องได้รับอนุญาตก่อน ec2-user ไม่มีสิทธิ์นี้ดังนั้น sudo จะขอรหัสผ่าน (ซึ่งจะล้มเหลวเพราะไม่มี)

เมื่อคุณทำ sudo sudoคุณกำลังเรียกใช้ที่สอง sudo ในฐานะ root ซึ่งมีสิทธิ์ในการเลียนแบบผู้ใช้รายอื่นดังนั้นคำสั่งจะทำงาน เนื่องจากวิธีการ sudo มีการกำหนดค่า (บรรทัด NOPASSWD ใน sudoers) ไม่จำเป็นต้องใช้รหัสผ่านเพื่อดำเนินการในฐานะรูท


ฉันต้องอ่านมันสองสามครั้ง ดังนั้น, myuser@1.2.3.4 $ sudo <command> ดำเนินการ <command> เช่น root, และ sudo คำสั่งเห็น myuser ในฐานะผู้บริหารของ sudo. ผูกมัดพวกเขาเป็น myuser@1.2.3.4 $ sudo sudo ... หมายความว่าด้านใน sudo เห็น root ในฐานะผู้บริหารที่ได้รับอนุญาตให้ปลอมแปลงผู้ใช้ ฉันถูกไหม?
kdbanman

ถูกต้อง.
Nathan C

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