Не характерный для *отклоняют, но связанный с кодерами:
Код похож на пукание, Вы поддерживаете только Ваш.
Это правда нет никакого способа иметь su (1), перенаправляют его вход от места кроме tty. Но существуют библиотеки и программы, чтобы моделировать терминал для автоматизированных сценариев, например, Ожидать. Что-то подобное:
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}
}
Это - невероятно плохая идея, но если Вы действительно хотите сделать это, можно использовать опцию NOPASSWD sudo:
In /etc/sudoers:
# User privilege specification
johndoe ALL=(ALL) NOPASSWD:ALL
Затем пользователь johndoe может сделать sudo su
и волнуйте с корневой подсказкой, никогда не попросившись пароля.
Я повторяю, тем не менее, что это - ДЕЙСТВИТЕЛЬНО ПЛОХАЯ ИДЕЯ при большинстве обстоятельств. Sudo, предпочтительно/without/флаг nopasswd значительно более безопасен.
echo "password" | su
или что-то как этот - НЕ избавляется от пароля, НЕ используют sudo (который менее безопасен, чем su...)
– mathepic
21.02.2011, 19:36
su
только используется для определенной команды, давая пользователю sudo
полномочия выполнить ту команду являются намного лучшей безопасностью, чем хранение пароля root в файле в большинстве вариантов использования.
– Gilles 'SO- stop being evil'
21.02.2011, 23:20
su
.
– mathepic
21.02.2011, 23:37