Primeiro, deve-se notar que, usando su ubuntu
, você acabaria usando o ambiente do usuário atual, enquanto o que geralmente se quer fazer é usar o ambiente do usuário alvo; então sudo - ubuntu
seria o caminho a percorrer.
No entanto, su
não está documentado o suficiente, mas o fato de fazer login como um usuário sem senha não é permitido é apenas a política de su
.
Para obter o equivalente a su - ubuntu
, que seria um shell de login interativo como o usuário do ubuntu, pode-se ficar tentado a executar sudo su - ubuntu
, o que não solicitaria uma senha; no entanto, isso seria redundante, pois o próprio sudo
fornece essa funcionalidade por conta própria; usando sudo su - ubuntu
para obter um shell de login interativo, pois o usuário ubuntu seria exatamente o mesmo que executar um script A que executa um script B para apenas executar o script B.
Então, para rodar um shell de login interativo como o usuário do ubuntu, use apenas sudo
:
sudo -i -u ubuntu
Na sudo
página de confiança do Trusty :
[...]
-i, --login
Run the shell specified by the target user's password
database entry as a login shell. This means that login-
specific resource files such as .profile or .login will be
read by the shell. If a command is specified, it is passed
to the shell for execution via the shell's -c option. If no
command is specified, an interactive shell is executed. sudo
attempts to change to that user's home directory before
running the shell. The command is run with an environment
similar to the one a user would receive at log in. The
Command Environment section in the sudoers(5) manual
documents how the -i option affects the environment in which
a command is run when the sudoers policy is in use.
[...]
-u user, --user=user
Run the command as a user other than the default target user
(usually root ). The user may be either a user name or a
numeric user ID (UID) prefixed with the ‘#’ character (e.g.
#0 for UID 0). When running commands as a UID, many shells
require that the ‘#’ be escaped with a backslash (‘\’). Some
security policies may restrict UIDs to those listed in the
password database. The sudoers policy allows UIDs that are
not in the password database as long as the targetpw option
is not set. Other security policies may not support this.
[...]