fundo
Eu sei a diferença entre su -
, sudo su -
e sudo <command>
:
su -
- alterna usuário para root, requer a senha rootsudo su -
- alterna usuário para root, requer apenas a senha do usuário atualsudo <command>
- concede acesso root apenas a um comando específico; requer apenas a senha do usuário atual
Minha pergunta é se o uso sudo su -
é ou não uma prática segura em um ambiente de produção.
Alguns pensamentos:
Parece que a permissão
sudo su -
representa um risco à segurança, tornando o acesso à conta raiz dependente das senhas de usuários individuais. Obviamente, isso pode ser atenuado pela imposição de uma política estrita de senha. Eu não acho quesu -
seja melhor, pois exigiria que o administrador compartilhasse a senha root real.Permitir que os usuários alternem completamente para a conta raiz torna mais difícil acompanhar quem faz as alterações no sistema. Vi casos no meu trabalho diário em que vários usuários têm
sudo su -
acesso. A primeira coisa que os usuários fazem ao fazer login no sistema é executadasudo su -
, antes de começar o trabalho. Então, um dia algo quebra e não há rastreabilidade para quem executourm -rf *
no diretório errado.
Questões
Dadas as preocupações acima, é sempre uma boa idéia permitir que os usuários usem sudo su -
ou mesmo utilizem su -
?
Há algum motivo pelo qual um administrador configure contas de usuário sudo su -
ou em su -
vez de sudo <command>
(além da preguiça)?
Nota: Estou ignorando o caso em que o usuário está executando sudo su -
ou su -
o administrador está precisando fazer alterações no sistema, quando o acesso direto ao ssh foi desativado para o usuário root.
sudo su -
é bastante bobo, poissudo -i
faz essencialmente a mesma coisa, com menos pressionamentos de tecla.sudo bash
simplesmente para evitar parte da sobrecarga de login. No entanto, refletindo, isso pode não evitar tanto quanto eu imagino.sudo -s
.Respostas:
Vejamos seus casos:
executará um / bin / sh como usuário raiz usando o ambiente raiz. A senha de root é necessária e o registro PODE ser registrado, dependendo das configurações do syslog (geralmente é por padrão para /var/log/auth.log).
executará o shell como usuário raiz usando o conjunto atual de variáveis de ambiente (com algumas exceções, como seria definido no arquivo sudoers). A senha é a senha do usuário de origem e NÃO a senha do usuário root. O sudo geralmente é registrado.
executará um shell (geralmente / bin / sh) como o usuário root configurando o ambiente como o usuário root. Isso exigirá a senha do usuário de origem e isso geralmente será registrado.
Às vezes é necessário ter o ambiente raiz em seu próprio ambiente, portanto, su - é um método apropriado. Lembre-se de que o sudo ainda registrará o uso do comando shell nos dois casos.
fonte
Não, não na minha opinião. Ele não tem vantagem prática sobre permitir que eles processem, exceto que eles não precisam da senha root para fazer isso.
Como eu sempre desabilito o logon raiz, su é necessário e, em geral, torna o servidor mais seguro.
fonte
O OP parece fornecer muitas boas razões para não permitir / incentivar a execução de usos gerais
sudo bash
ou,sudo su -
uma vez que isso os alterna para um modo todo poderoso, cujas partes internas geralmente não são registradas. E eles podem esquecer que estão nesse modo e fazer algo ... lamentável.Portanto, parece mais seguro restringir a maioria dos usuários à execução
sudo on/a/particular/command/
ou à lista de comandos. Dessa forma, todo comando sudo é registrado.Você encontrará exceções na prática? Certo. É a reação a essas exceções a reverter para a prática preguiçosa de restrições -
sudo su
provavelmente não.fonte