Problemas de acesso ao sudo com passwd

1

Eu tenho o sudo configurado assim:

joe ALL=(root) NOPASSWD: /bin/su - steve

O que exatamente faz?

Estou confuso.

Eu acho que há três maneiras diferentes de executar esse comando:

  1. su - steve

  2. sudo su - steve

  3. sudo -u root su - steve

Em quais casos não vai pedir uma senha? Qual é a diferença entre os comandos 2 e 3?

Quando joe executa o comando 2, ele será executado como usuário joe ou root?

    
por sridhar.bijmc 31.01.2014 / 06:26

4 respostas

4

Parece que você pode ter alguma confusão entre o que o sudo e o su são usados. Ambos permitem que um usuário execute comandos como se fossem outro usuário com diferentes privilégios, mas existem diferenças distintas.

Uma generalização excessiva seria:

  • su - obtém um shell com uid / gid de outro usuário, autenticando-se com essa senha de usuário.
  • sudo - executa um comando com uid / gid de outro usuário, autenticando-se com sua senha.

SU

Em geral, a maioria das pessoas utiliza su para iniciar um shell com (s) ubstitue (u) ser id e / ou group id. Isso é mais comumente feito para obter privilégios de root, mas também pode ser usado por qualquer usuário do sistema.

Se o usuário que está executando o su não for root, ele pedirá a senha do usuário que você está tentando su como.

  • su - login como root com um shell de login que terá um ambiente semelhante a um login real. Precisa da senha do root.
  • su - alice login como alice com um shell de login que terá um ambiente semelhante a um login real. Precisa da senha de alice.
  • su ou su alice como exemplos acima com a diferença de que o ambiente inicial do usuário é mantido, com exceção das variáveis de ambiente USER, SHELL e HOME. Isso pode ter conseqüências inesperadas. Como exemplo, como o PATH não é alterado, ao tentar alterar a senha, você pode não estar executando o comando / usr / bin / passwd mas / usr / local / bin / passwd ou até mesmo / home / {$ ORIGUSER} / bin / passwd.

  • su -c command - execute o comando como root com um shell de login e saia para o shell do usuário original.

  • su -c command - alice executa o comando como alice com um shell de login e sai para o shell original do usuário.

Referências

SUDO

O sudo permite mais flexibilidade que o su. O mais óbvio para o usuário final é que ele está autenticando usando sua própria senha ou até mesmo sem senha, se configurado dessa forma.

Utilizando o arquivo de configuração visudo, os privilégios permitidos pelo usuário podem ser controlados com muito mais controle.

Como exemplo, você pode permitir que um usuário execute alguns comandos sem necessidade de senha e outros comandos podem exigir uma senha.

Por favor, veja as man pages associadas para ter uma ideia de todas as variações que podem ser feitas.

Referências

Os dois benefícios mais visíveis do sudo vs su

  • A capacidade de dar a certos grupos de usuários os privilégios de raiz de apenas um subconjunto de comandos sem precisar fornecer a senha de root. Isso permite uma maneira de ter uma camada restritiva de usuários de nível de administrador com acesso raiz somente aos comandos necessários para realizar seu trabalho.
  • Como você está executando apenas um comando como root, reduz os riscos de danos acidentais. Por exemplo, você acha que está em seu diretório de usuários / home / user / myjunkdocs e executa rm -rf , mas na verdade está no diretório raiz e exclui o software do sistema.
por 31.01.2014 / 11:41
1

su faz login no superusuário por padrão (ou o usuário especificado), mas requer a senha do destino (ou seja, o root precisa da senha raiz). Não tem nada a ver com o sudo.

sudo su irá logar você como root com a senha do joe. Ele pedirá a senha de joe e, em seguida, executará o comando su como root, que não requer uma senha para o superusuário (root). Ou seja, ele irá entrar em um shell de root com a senha do joe.

O terceiro comando faz a mesma coisa, apenas especifica explicitamente que você quer executar o comando su como root, que é o padrão de qualquer forma, apenas mais explícito.

    
por 31.01.2014 / 06:38
1

"Acho que existem três maneiras diferentes de executar esse comando:

su - steve

sudo su - steve

sudo -u root su - steve"

Todos os três, se bem-sucedidos, receberão um prompt de comando para o ID 'steve', onde você poderá executar qualquer comando que desejar como '' steve ''. O primeiro comando solicitará a senha do steve e não usará a entrada sudo. Os dois segundos são "exatamente o mesmo", você se tornará "steve" sem digitar uma senha.

Se você tivesse codificado: joe ALL = (root) / bin / su - steve você teria que digitar sua própria senha (joes), então você se tornaria 'steve'.

    
por 08.06.2016 / 06:04
0
O comando

su (switch user) é usado para alternar para um usuário em particular.

For eg: su tom    ----------> to login as tom

sudo su mudará para usuário root.

sudo é usado para permissões especiais para um usuário normal. Mas a condição é que, o usuário sudo deve estar habilitado no arquivo sudoers.

    
por 31.01.2014 / 12:12

Tags