Ahmm .. o problema é que o shell padrão desses usuários é normalmente configurado para /bin/false
e por razões de segurança você não deve mudar isso. Mas você ainda pode executar por exemplo: sudo -u www-data /bin/sh
Estou usando o servidor Ubuntu 10.04 LTS, com o modelo de segurança padrão (root bloqueado, usando sudo
para elevar os privilégios). Eu ocasionalmente gosto de usar sudo -i
quando preciso executar uma série de comandos com privilégios elevados, ou quando preciso vasculhar diretórios com privilégios somente de root.
Às vezes, ao configurar o software que será executado como sua própria conta de sistema não privilegiada ( adduser --system --group --no-create-home --disabled-login some-daemon-user
), acho que preciso executar uma sequência de comandos como esse usuário , em vez de eu mesmo ou raiz. Eu tentei usar sudo -i -u some-daemon-user
, mas ele retorna um status 1
sem nenhuma mensagem de erro.
Eu verifiquei os arquivos de log syslog
, messages
, auth
e debug
em /var/log
e nenhum deles inclui nenhuma mensagem que faça referência a sudo
ou a conta em questão.
Então, é possível tornar-se outro usuário não-root, estilo sudo sem apenas definir uma senha e efetuar login (como eles)? O meu sistema está "quebrado" de alguma forma ou estou apenas fazendo errado?
Ahmm .. o problema é que o shell padrão desses usuários é normalmente configurado para /bin/false
e por razões de segurança você não deve mudar isso. Mas você ainda pode executar por exemplo: sudo -u www-data /bin/sh
sudo -i
executa o shell especificado pela entrada do banco de dados de senha do usuário de destino, que é /bin/false
para o usuário do sistema.
Use
sudo -u some-daemon-user bash
ou
sudo -u some-daemon-user -H bash
se você quiser definir a variável de ambiente $ HOME definida para o usuário de destino.
Tags sudo privileges