usando su para um usuário que não possui uma senha

1

Estou criando um usuário usando o comando useradd no Ubuntu, o que não requer que eu defina uma senha para o usuário. como sempre que tento usar o comando su para fazer o login como esse usuário, su exige que eu digite uma senha de qualquer maneira e saia da "Falha de autenticação"

Você poderia me explicar como o su funciona e como posso fazer o login como um usuário que não possui uma senha (como o usuário padrão do Ubuntu no Amazon EC2)?

su requer que eu digite uma senha mesmo quando não houver senha definida no usuário do ubuntu

    
por ngalstyan 29.07.2015 / 10:18

2 respostas

4

Para usar su user1 como usuário2, você precisa inserir a senha do usuário1 ao fazer isso como usuário padrão. Uma solução simples, no entanto, é fazer isso como root , já que nenhuma senha é necessária. Ou seja: tornar-se root (usando sudo su ), então su no user1 (usando su user1 ). Eu não entendo porque você quer su para ubunut quando você já é esse usuário (como indicado em seu screenprint), mas esse é o caminho a percorrer.

Certifique-se de que o usuário seja uma conta de usuário e não uma conta de sistema (serviço) como mail

Após os comentários abaixo: sudo su user1 é mais rápido e também permitirá que você retorne ao user2 com um, em vez de dois comandos exit , pois você criará apenas um em vez de dois shells de login.

    
por Fiximan 29.07.2015 / 13:06
1

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.
[...]
    
por kos 29.07.2015 / 13:55