มีคำสั่งบรรทัดเดียวในการทำ 'su' หรือไม่?


15

ฉันสามารถทำได้suด้วยsu <username>และมันจะขอรหัสผ่านของฉัน มีพารามิเตอร์รหัสผ่านสำหรับsuที่ฉันจะไม่ถามรหัสผ่าน?

เช่น su <username> -p <password>


ดูเหมือนว่าคำถามนั้นเหมาะกับ superuser อย่างมาก: superuser.com :-)
HongboZhu

คุณสามารถดูได้ที่นี่: stackoverflow.com/questions/233217/pass-password-to-su-sudo-ssh หรือที่นี่: stackoverflow.com/questions/715908/ …
HongboZhu

1
ฉันได้รับจากsuperuserที่นี่superuser.com/questions/67765/…
alvas

คำตอบ:


12

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

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

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

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
อืม 'มาตรฐานต้องเป็น tty'
John Lawrence Aspden

ฉันได้รับข้อผิดพลาดเดียวกัน
MaxV

12
su: must be run from a terminalได้รับข้อผิดพลาด:
Abhishek Kashyap

5

ฉันเชื่อว่าไม่มีและมันจะไม่ใช่ความคิดที่ดี นี่คือเหตุผล:
ถ้าคุณเขียนรหัสผ่านในคำสั่งเช่นsu <username> -p <password>นั้นมันจะถูกเก็บไว้ในข้อความธรรมดาในประวัติทุบตีของคุณ นี่เป็นปัญหาด้านความปลอดภัยที่ยิ่งใหญ่อย่างแน่นอน

หากคุณต้องการเรียกใช้คำสั่งด้วยsu(หรือsudo) ด้วยวิธีอัตโนมัติให้เขียนคำสั่ง shellscript ที่มีคำสั่งโดยไม่ใช้suหรือsudoรันsu <username> script.sh


1
su root script ยังคงต้องป้อนรหัสผ่าน
Dai Kaixian

@DaiKaixian ใช่ แต่มันไม่ได้รับการบันทึกทุกที่และไม่มีใครสามารถอ่านได้
Wayne_Yux

2
คุณสามารถลองสิ่งที่ชอบ:. echo <passwd> | sudo -S <command-line>แม้ว่ามันจะไม่ปลอดภัย แต่ก็ใช้งานได้
Dai Kaixian

1
จุดทั้งหมดของคำตอบของฉันคือว่ามันไม่ได้บันทึกการเขียนรหัสผ่านในคำสั่ง ดังนั้นฉันไม่แนะนำให้ทำเช่นนั้น
Wayne_Yux

-3

หากคุณต้องการรันคำสั่งบางอย่างในฐานะผู้ใช้ใหม่ให้ใช้คำสั่งต่อไปนี้:
sudo -u {username} {command to be executed as the new user}


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