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.