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 ter um shell interativo.

Como podemos fazer isso?

    
por user2914 09.12.2010 / 05:37

4 respostas

9

O arquivo /etc/passwd tem como último item da linha do usuário o programa a ser executado no login. Para usuários normais, isso geralmente é definido como /bin/sh ou outro shell (por exemplo, bash, zsh).

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

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

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

    
por 09.12.2010 / 06:09
9

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

Create a user john who should not get an interactive shell.

A pergunta significa "Crie um usuário chamado john , que 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" realmente não adiciona nenhuma informação à pergunta, porque enquanto houver um usuário digitando comandos, a sessão do shell é interativa.

Há também o modo não interativo, em que 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 forma 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 um usuário desse tipo, se você percorrer man useradd , há uma opção para definir o shell de login, -s ou --shell . Você também pode criar um usuário normalmente, de qualquer maneira que você quiser (o que eu suponho que você já sabe?), Então edite /etc/passwd como em resposta de msw .

    
por 09.12.2010 / 06:56
3

Sim, altere o shell no arquivo de senhas (/ etc / passwd) para algum programa que não não permita um escape de shell.

Se você quiser ser um o bofh / bin / false fará exatamente o que você quer.

    
por 09.12.2010 / 06:08
-1
adduser username -s /sbin/nologin
    
por 11.11.2018 / 23:04

Tags