เมื่อคุณใส่เครื่องหมายยัติภังค์สองเท่าประสบการณ์ที่คุณจะได้รับก็เหมือนกับว่าคุณเพิ่งถูกประหารsudo su
โดยไม่มียัติภังค์ใด ๆ
ผ่านยัติภังค์เดียวเป็นเหมือนผ่านหรือ-l
--login
man 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)