É possível su sem ser solicitada uma senha?

6

Eu suspeito que su não tenha nenhuma maneira de permitir a passagem da senha do shell em vez de ser solicitada, por razões de segurança (não consegui encontrar nada no MAN). Isso é verdade?

    
por ripper234 21.02.2011 / 08:40

2 respostas

7

Isso é verdade, não há como ter o su (1) redirecionando sua entrada de um lugar diferente do tty. Mas existem bibliotecas e programas para simular um terminal para scripts automatizados, por exemplo, Expect. Algo semelhante a:

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}
}
    
por 21.02.2011 / 09:03
4

É uma ideia incrivelmente ruim, mas se você realmente quiser fazer isso, você pode usar a opção NOPASSWD do sudo:

In /etc/sudoers: 
# User privilege specification
johndoe  ALL=(ALL) NOPASSWD:ALL

Em seguida, o usuário johndoe pode fazer sudo su e terminar com um prompt de root sem precisar de uma senha.

Eu reitero, porém, que esta é uma idéia muito ruim na maioria das circunstâncias. Sudo, de preferência / sem / o sinalizador nopasswd é significativamente mais seguro.

    
por 21.02.2011 / 10:19

Tags