Temos várias contas de usuário que criamos para tarefas automatizadas que exigem permissões refinadas, como transferência de arquivos entre sistemas, monitoramento etc.
Como bloqueamos essas contas de usuário para que esses "usuários" não tenham shell e não possam fazer login? Queremos evitar a possibilidade de alguém fazer o SSH como uma dessas contas de usuário.
/bin/false
parece mais comum que/bin/true
.nologin
na verdade , pode ser encontrado em/usr/sbin/nologin
nologin
/usr/local/bin/maybe
que/dev/urandom
seleciona entre os dois. Talvez eu deva usá-lo: DAlterar o shell de logon não impede necessariamente a autenticação dos usuários (exceto em alguns serviços que verificam se o shell do usuário é mencionado em
/etc/shells
).As pessoas ainda podem se autenticar nos vários serviços que seu sistema fornece aos usuários unix e ainda podem estar autorizadas a executar algumas ações, embora provavelmente não executem diretamente comandos arbitrários.
Alterar o shell para
/bin/false
ou/usr/sbin/nologin
impedirá que eles executem comandos nos serviços que podem ser usados para executar comandos (login do console, ssh, telnet, rlogin, rexec ...), afetando a autorização apenas para alguns serviços.Por
ssh
exemplo, isso ainda lhes permite fazer o encaminhamento de porta.passwd -l
desativará a autenticação por senha, mas o usuário ainda poderá usar outros métodos de autenticação (comoauthorized_keys
emssh
).No
pam
Linux, pelo menos, você pode usar opam_shells
módulo para restringir a autenticação ou autorização aos usuários com um shell permitido (aqueles mencionados em/etc/shells
). Poisssh
, você desejará fazê-lo noaccount
nível de autorização ( ) como parasshd
usos de autenticaçãopam
, além de outros métodos de autenticação (comoauthorized_keys
), ou poderá fazê-lo comsshd_config
diretivas em/etc/ssh/sshd_config
(comoAllowUsers
e amigos).Entretanto, tenha em atenção que adicionar algumas restrições na autorização global de pam impedirá a execução de
cron
trabalhos como esses usuários.fonte
:|
Você edita o
/etc/passwd
arquivo e altera o shell do usuário de/bin/bash
ou/bin/sh
para/sbin/nologin
fonte
vipw
que impede esse tipo de erro.Primeiro, desative a senha, usando
passwd -l username
.Observe também na
man
página parapasswd
a opção-l
:fonte
Você pode usar o comando chsh:
Insira novos detalhes do shell quando solicitado:
Ou versão mais curta:
fonte
Para impedir que o usuário faça logon e até autenticação através do ssh, que permite o encaminhamento de porta (como descrito aqui Stephane), modifico o usuário para ser semelhante ao
nobody
usuário do sistema :/etc/shadow
(com*
ou!!
no campo apropriado)/etc/passwd
(por exemplo,/sbin/nologin
no campo apropriado)/etc/passwd
(por exemplo,/
no campo apropriado)fonte