it-swarm-pt.com

Criar um usuário que não consegue obter um shell interativo

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?

18
user2914

O /etc/passwd arquivo tem como último item na linha de um 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 que são usadas para possuir processos ou arquivos ou outros recursos têm seu "Shell" definido como /bin/false como em

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

O pseudo-usuário syslog 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.

9
msw

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

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

A questão significa "Crie um usuário chamado john que não será capaz de logar e executar comandos de um Shell". Interativo descreve a forma como o Shell funciona: o usuário digita algo e o Shell faz algo de acordo (há um tipo de comunicação entre o usuário e o Shell). A palavra "interativo" realmente não acrescenta nenhuma informação à pergunta, pois enquanto houver um usuário digitando comandos, a sessão Shell é interativa.

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

Sobre como criar tal usuário, se você folhear man useradd há uma opção para definir o shell de login, -s ou --Shell. Você também pode criar um usuário normalmente, da maneira que quiser (o que presumo que você já saiba?) E, em seguida, editar /etc/passwd como em resposta do msw .

9
phunehehe

Sim, altere o Shell no arquivo de senha (/ etc/passwd) para algum programa que não não permitirá um escape do Shell.

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

3
David Harris
adduser username -s /sbin/nologin
0
H2 Mac