Android

คำสั่ง Sudo ใน linux

Linux Command Line Tutorial For Beginners 13 - sudo command

Linux Command Line Tutorial For Beginners 13 - sudo command

สารบัญ:

Anonim

คำสั่ง sudo อนุญาตให้คุณรันโปรแกรมในฐานะผู้ใช้อื่นโดยค่าเริ่มต้นผู้ใช้รูท หากคุณใช้เวลามากในบรรทัดคำสั่ง sudo เป็นหนึ่งในคำสั่งที่คุณจะใช้ค่อนข้างบ่อย

การใช้ sudo แทนการเข้าสู่ระบบในฐานะ root มีความปลอดภัยมากขึ้นเนื่องจากคุณสามารถให้สิทธิ์ผู้ดูแลระบบแบบ จำกัด แก่ผู้ใช้แต่ละคน

ในบทช่วยสอนนี้เราจะอธิบายวิธีใช้คำสั่ง sudo

การติดตั้ง Sudo (ไม่พบคำสั่ง sudo)

แพ็คเกจ sudo นั้นได้รับการติดตั้งไว้ล่วงหน้าในลีนุกซ์ส่วนใหญ่

ในการตรวจสอบว่ามีการติดตั้งแพ็คเกจ sudo บนระบบของคุณหรือไม่เปิดคอนโซลของคุณพิมพ์ sudo แล้วกด Enter หากคุณติดตั้ง sudo ระบบจะแสดงข้อความช่วยเหลือสั้น ๆ ไม่เช่นนั้นคุณจะเห็นสิ่งที่ต้องการ sudo command not found

หากไม่ได้ติดตั้ง sudo คุณสามารถติดตั้งได้ง่าย ๆ โดยใช้ตัวจัดการแพ็คเกจของ distro

ติดตั้ง Sudo บน Ubuntu และ Debian

apt install sudo

ติดตั้ง Sudo บน CentOS และ Fedora

yum install sudo

การเพิ่มผู้ใช้ไปยัง Sudoers

ตามค่าเริ่มต้นในลีนุกซ์ส่วนใหญ่ที่ให้สิทธิ์การเข้าถึง sudo นั้นง่ายเหมือนการเพิ่มผู้ใช้ไปยังกลุ่ม sudo ที่กำหนดไว้ใน sudoers สมาชิกของกลุ่มนี้จะสามารถเรียกใช้คำสั่งใด ๆ ในฐานะรูท ชื่อของกลุ่มอาจแตกต่างจากการแจกจ่ายไปยังการแจกจ่าย

สำหรับ RedHat based distributions เช่น CentOS และ Fedora ชื่อของกลุ่ม sudo คือ wheel ในการเพิ่มผู้ใช้ในการรันกลุ่ม:

usermod -aG wheel username

บน Debian, Ubuntu และอนุพันธ์ของพวกเขาสมาชิกของกลุ่ม sudo ได้รับสิทธิ์ด้วยการเข้าถึง sudo:

usermod -aG sudo username

บัญชีผู้ใช้รูทในอูบุนตูถูกปิดการใช้งานโดยค่าเริ่มต้นด้วยเหตุผลด้านความปลอดภัยและผู้ใช้ควรปฏิบัติงานบริหารระบบโดยใช้ sudo ผู้ใช้เริ่มต้นที่สร้างขึ้นโดยตัวติดตั้ง Ubuntu นั้นเป็นสมาชิกของกลุ่ม sudo อยู่แล้วดังนั้นหากคุณใช้งาน Ubuntu โอกาสที่ผู้ใช้ที่คุณเข้าสู่ระบบจะได้รับสิทธิ์การใช้งาน sudo แล้ว

ตัวอย่างเช่นเพื่ออนุญาตให้ผู้ใช้ linuxize รันเฉพาะคำสั่ง mkdir เป็น sudo ให้พิมพ์:

sudo visudo

และผนวกบรรทัดต่อไปนี้:

linuxize ALL=/bin/mkdir

บนระบบส่วนใหญ่คำสั่ง visudo เปิดไฟล์ /etc/sudoers ด้วยโปรแกรมแก้ไขข้อความ vim หากคุณไม่มีประสบการณ์ในการใช้ vim ให้อ่านบทความของเราเกี่ยวกับวิธีบันทึกไฟล์และออกจากโปรแกรมแก้ไข vim

คุณสามารถอนุญาตให้ผู้ใช้เรียกใช้คำสั่ง sudo โดยไม่ต้องป้อนรหัสผ่าน:

linuxize ALL=(ALL) NOPASSWD: ALL

วิธีใช้ Sudo

ไวยากรณ์สำหรับคำสั่ง sudo เป็นดังนี้:

sudo OPTION.. COMMAND

คำสั่ง sudo มีตัวเลือกมากมายที่ควบคุมพฤติกรรม แต่โดยปกติแล้ว sudo จะใช้ในรูปแบบพื้นฐานที่สุดโดยไม่มีตัวเลือกใด ๆ

หากต้องการใช้ sudo เพียงเติมคำสั่งด้วย sudo :

sudo command

โดยที่ command เป็นคำสั่งที่คุณต้องการใช้ sudo

Sudo จะอ่านไฟล์ /etc/sudoers และตรวจสอบว่าผู้ใช้ที่ได้รับการร้องขอนั้นได้รับการประเมิน sudo หรือไม่ ครั้งแรกที่คุณใช้ sudo ในเซสชันคุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้และคำสั่งจะถูกดำเนินการในฐานะรูท

ตัวอย่างเช่นหากต้องการแสดงรายการไฟล์ทั้งหมดใน /root คุณจะใช้:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

รหัสผ่านหมดเวลา

ตามค่าเริ่มต้น sudo จะขอให้คุณป้อนรหัสผ่านอีกครั้งหลังจากไม่มีการใช้งาน sudo ห้านาที คุณสามารถเปลี่ยนการหมดเวลาเริ่มต้นได้โดยแก้ไข sudoers เปิดไฟล์ด้วย visudo :

sudo visudo

ตั้งค่าการหมดเวลาเริ่มต้นโดยเพิ่มบรรทัดด้านล่างโดยที่ 10 คือการหมดเวลาที่ระบุในหน่วยนาที:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

เรียกใช้คำสั่งในฐานะผู้ใช้อื่นที่ไม่ใช่รูท

มีการรับรู้ที่ไม่ถูกต้องว่า sudo ใช้เพื่อให้สิทธิ์การใช้งานรูทแก่ผู้ใช้ทั่วไปเท่านั้น ที่จริงแล้วคุณสามารถใช้ sudo เพื่อเรียกใช้คำสั่งเป็นผู้ใช้ใด ๆ

อ็อพชัน -u อนุญาตให้คุณรันคำสั่งในฐานะผู้ใช้ที่ระบุ

ในตัวอย่างต่อไปนี้เราใช้ sudo เพื่อเรียกใช้คำสั่ง whoami ในฐานะผู้ใช้“ richard”:

sudo -u richard whoami

คำสั่ง whoami จะพิมพ์ชื่อของผู้ใช้ที่รันคำสั่ง:

richard

วิธีการเปลี่ยนเส้นทางกับ Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

สิ่งนี้เกิดขึ้นเนื่องจากการเปลี่ยนเส้นทาง“ > ” ของเอาต์พุตดำเนินการภายใต้ผู้ใช้ที่คุณเข้าสู่ระบบไม่ใช่ผู้ใช้ที่ระบุโดย sudo การเปลี่ยนเส้นทางเกิดขึ้นก่อนที่คำสั่ง sudo จะถูกเรียกใช้

ทางออกหนึ่งคือการเรียกเชลล์ใหม่เป็นรูทโดยใช้ sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

ตัวเลือกอื่นคือการไพพ์เอาต์พุตเป็นผู้ใช้ปกติกับคำสั่ง tee ดังแสดงด้านล่าง:

echo "test" | sudo tee /root/file.txt

ข้อสรุป

คุณได้เรียนรู้วิธีใช้คำสั่ง sudo และวิธีสร้างผู้ใช้ใหม่ด้วยสิทธิ์ sudo

อาคารผู้โดยสาร