visudo + como obter acesso ao usuário de outro usuário

3

Nas minhas máquinas Linux Red Hat, eu faço o seguinte da raiz

# su - starus
$                <--   now I am in starus user

$ su - moon      <-- now I want to access moon user from starus user
Password:

Mas sou solicitado a fornecer uma senha!

Por favor, informe porque eu recebo a senha se já adicionei em visudo o seguinte

moon ALL=(starus) NOPASSWD: ALL

O que está errado?

Eu também tento executar o seguinte script como lua do usuário, mas a senha é necessária

starus@host sudo -u moon  /home/USER261/test.bash
[sudo] password for starus:
    
por yael 27.03.2017 / 11:35

2 respostas

6

Primeiro, root pode se tornar qualquer usuário sem precisar de senha. Esse é um dos privilégios de ser o super usuário. Portanto, com su - starus , você pode alternar para starus sem ser solicitado. No entanto, nesse momento, você está com starus e não com mais root , então você precisa de uma senha para alternar para moon .

A solução simples é voltar para root primeiro (apenas executar exit ) e depois mudar para moon .

Agora, visudo é irrelevante aqui. Você não está usando sudo , portanto, as alterações feitas por você (em /etc/sudoers , o arquivo que visudo edita) não afetarão o comportamento de su , apenas o de sudo que não é o mesmo programa.

Em qualquer caso, a linha exibida ( moon ALL=(starus) NOPASSWD: ALL ) significa simplesmente que o usuário moon pode executar qualquer comando como o usuário starus with sudo sem precisar inserir uma senha. Isso não significa que qualquer um pode se tornar moon sem saber a senha de moon . Significa apenas que comandos como esse não precisam de senha:

moon@host $ sudo -u starus command

Se você estiver logado como moon , você pode usar sudo para executar um comando como starus sem uma senha.

    
por 27.03.2017 / 12:26
3

A resposta simples é que o arquivo /etc/sudoers é usado apenas pelo programa sudo - não su .

Ele não é usado pelo programa su , que inicia um novo shell como o usuário especificado. Quando você executar su - moon , estará iniciando um novo login shell como o usuário moon e será solicitada a senha desse usuário. Ao executar esse comando como root , você não será solicitado a fornecer a senha do usuário, pois root é o superusuário e poderá alterar a senha, se desejar. No entanto, ao executar o comando como o usuário starus , você não é um superusuário e precisa ser autenticado normalmente.

Por outro lado, as edições feitas em /etc/sudoers permitem que o usuário starus use o comando sudo com a opção -u para executar comandos como o > Lua usuário (sem ser solicitado por uma senha). Por exemplo, enquanto estiver logado como starus , você pode executar o seguinte comando:

sudo -u moon touch /home/moon/test.file

A execução de sudo -u moon ls -l /home/moon/test.file mostrará que o recém-criado test.file é de propriedade do usuário moon (como se fosse moon que executou o comando e não starus ).

    
por 27.03.2017 / 12:28