Su
是否可以在不提示輸入密碼的情況下進行 su?
su
出於安全原因(在 MAN 中找不到任何內容),我懷疑沒有任何方法可以允許從 shell 傳遞密碼而不是提示輸入密碼。這是真的?
沒錯,沒有辦法讓 su(1) 從 tty 以外的地方重定向其輸入。但是有一些庫和程序可以模擬終端以進行自動化腳本編寫,例如 Expect。類似於:
stty echo log_user 0 set timeout 2 if [catch "spawn su root" reason] { send_user "Failed to spawn su: $reason\n" exit 1 } expect "Password:" send "$PASSWORD\r" expect "\r\n" #set timeout 5 log_user 1 expect { "# " {send_user "\nsu successful.\n"} timeout {send_user "\nsu timed out.\n"; exit 1} "incorrect" {send_user "\nsu failed.\n"; exit 1} }