sudo
e su
são programas totalmente diferentes. É assim que su
funciona: se você não for root, ele pede a senha do alvo ( su
bstitute) usuário. A condição que você ainda não definiu senha não muda isso; use passwd
para adicionar uma senha para o usuário. Se você precisar executar comandos como outro usuário sem saber ou fornecer a senha desse usuário, use sudo
.
From a security perspective, it is arguably better to set up and use
sudo instead of su
. The sudo
system will prompt you for your own
password – or no password at all, if configured in such a way – rather
than that of the target user (the user account you are attempting to
use). This way you do not have to share passwords between users, and
if you ever need to stop a user having root access (or access to any
other account, for that matter), you do not have to change the root
password, which is an inconvenience to everyone else; you only need to
revoke that user's sudo access.
O sudo
equivalente para su - user
é sudo -u user -s
. Se você deseja fazer isso sem usar sua própria senha, é necessário visudo
adicionar essa linha para o seu arquivo sudoers
:
yourusername ALL=(anotheruser) NOPASSWD: /bin/bash
Isso concede a permissão yourusername
para executar /bin/bash
como usuário anotheruser
sem senha.