Criando um usuário que não pode obter um shell interativo

17

O que são shell interativo e não interativo?

Perguntas: Crie um usuário john que não deve obter um shell interativo.

Como podemos fazer isso?

user2914
fonte

Respostas:

9

O /etc/passwdarquivo tem como último item na linha do usuário o programa a ser executado no login. Para usuários normais, isso normalmente é definido como /bin/shou outro shell (por exemplo, bash, zsh).

Tradicionalmente, identidades usadas para possuir processos ou arquivos ou outros recursos têm seu "shell" definido /bin/falsecomo em

syslog:x:101:102::/home/syslog:/bin/false

O syslog do pseudo-usuário possui /var/log/sysloge é o único UID que possui permissão de gravação para esse arquivo, mas não é possível efetuar login como syslog do usuário, pois não há nenhum interpretador de comando a ser executado.

msw
fonte
9

Em relação à pergunta que você está tentando responder:

Crie um usuário john que não deve obter um shell interativo.

A pergunta significa "Crie um usuário nomeado johnque não poderá efetuar login e executar comandos a partir de um shell". Interativo descreve a maneira como o shell funciona: o usuário digita algo e o shell faz algo de acordo (existe um tipo de comunicação entre o usuário e o shell). A palavra "interativo" não adiciona realmente nenhuma informação à pergunta, porque enquanto houver um usuário digitando comandos, a sessão do shell será interativa.

Há também o modo não interativo, no qual o usuário salva uma série de comandos que deseja executar em um arquivo (chamado de shell script) e executa o arquivo posteriormente. Alguns comandos se comportam de maneira diferente, dependendo se o shell é executado de maneira interativa ou não interativa. Você pode ler mais aqui (este documento é para bash, mas o mesmo conceito se aplica a outros shells).

Sobre como criar esse usuário, se você percorrer, man useraddexiste uma opção para definir o shell de login, -sou --shell. Você também pode criar um usuário normalmente, da maneira que quiser (o que eu suponho que você já saiba?), E editar /etc/passwdcomo na resposta do msw .

phunehehe
fonte
3

Sim, mudar o shell no arquivo de senhas (/ etc / passwd) para algum programa que não não permite uma fuga shell.

se você quer ser um bofh / bin / false, fará exatamente o que deseja.

David Harris
fonte
-1
adduser username -s /sbin/nologin
H2 Mac
fonte
2
Observe que o nome de usuário está especificado na pergunta como "john". Não faria mal usar uma pequena prosa para explicar o que seu comando está fazendo e por que ele atende aos requisitos.
Jeff Schaller