ความแตกต่างระหว่าง sudo su - และ sudo su -


22

เมื่อฉันทำงานกับเครื่อง RHEL ของฉันฉันใช้sudo su -เพื่อเปลี่ยนเป็น root วันหนึ่ง typo หมายความว่าฉันพิมพ์sudo su --แทน - มันดูเหมือนว่าฉันทุกอย่างที่เป็นเช่นเดียวกับยัติภังค์เดียวยกเว้นว่าผมอยู่ในโฟลเดอร์เดียวกันเป็นก่อนที่ผมจะออกคำสั่ง (มียัติภังค์เดียวที่ฉันพบตัวเองใน/root)

มีความแตกต่างอื่น ๆ อีกไหม? จะปลอดภัยไหมที่จะใช้สิ่งนี้ในสถานการณ์ที่ฉันรู้ว่าฉันต้องการทำงานในไดเรกทอรีเดียวกัน

คำตอบ:


22

เมื่อคุณใส่เครื่องหมายยัติภังค์สองเท่าประสบการณ์ที่คุณจะได้รับก็เหมือนกับว่าคุณเพิ่งถูกประหารsudo suโดยไม่มียัติภังค์ใด ๆ

ผ่านยัติภังค์เดียวเป็นเหมือนผ่านหรือ-l --loginman page สำหรับsuอธิบายพฤติกรรมดังต่อไปนี้:

จัดเตรียมสภาพแวดล้อมที่คล้ายกับสิ่งที่ผู้ใช้คาดหวังเมื่อผู้ใช้ล็อกอินโดยตรง

ซึ่งรวมถึงการตั้งค่าไดเรกทอรีของคุณไปยังไดเรกทอรีบ้านของคุณและการตั้งค่าตัวแปรสภาพแวดล้อมอื่น ๆ

การส่งยัติภังค์สองครั้งไปยังคำสั่งนั้นโดยปกติจะใช้เพื่อทำเครื่องหมายจุดสิ้นสุดของแฟล็กบรรทัดคำสั่งและจุดเริ่มต้นของอาร์กิวเมนต์ที่ไม่ใช่แฟล็ก ตัวอย่างเช่นถ้าคุณเรียกtouch -Rคุณจะได้รับข้อผิดพลาดบอกว่า -R ไม่ได้ตัวไปยังtouchแต่ถ้าคุณใช้มันจะสร้างไฟล์ชื่อtouch -- -R -Rนี่คือความจริงของเครื่องมือบรรทัดคำสั่งจำนวนมาก ( ls -Rจะทำ recursive lsขณะที่ls -- -Rจะดำเนินการในแฟ้มหรือไดเรกทอรีชื่อls-R

ดังนั้นเพื่อตัดขึ้นนี้เมื่อคุณผ่านเท่านั้น --ที่จะsuเป็นพื้นไม่สนใจ--และทำหน้าที่เหมือนคุณไม่ผ่านตัวเลือกใด ๆ เลย


ฉันจะสร้างคำถามจากมัน แต่sudo su -และsudo su -lแตกต่าง ในบัญชีที่ฉัน ssh เข้าไปด้วยคีย์เท่านั้นและผมก็มีสิทธิ sudo การเปลี่ยนแปลงให้กับผู้ใช้อื่น ๆ ที่เฉพาะเจาะจง, sudo su -การเปลี่ยนแปลงการใช้โดยไม่มีปัญหา แต่sudo su -lหรือsudo su --loginจะถามรหัสผ่าน sudo ซึ่งผมไม่ได้ (แม้ว่าโดยการตรวจสอบsudo -lผม สามารถดำเนินการ/bin/suกับ NOPASSWD)
karatedog

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