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 .