web-dev-qa-db-fra.com

Création d'un utilisateur qui ne peut pas obtenir une coque interactive

Quels sont les coques interactives et non interactives?

Questions: Créer un utilisateur John qui ne doit pas obtenir de shell interactif.

Comment peut-on le faire?

18
user2914

Le /etc/passwd Fichier a le dernier élément de la ligne d'utilisateur le programme à exécuter lors de la connexion. Pour les utilisateurs normaux, cela est généralement défini sur /bin/sh ou autre shell (par exemple Bash, ZSH).

Traditionnellement, les identités utilisées pour posséder des processus ou des fichiers ou d'autres ressources ont leur "shell" défini sur /bin/false un péché

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

Le pseudo-utilisateur Syslog possède /var/log/syslog Et est le seul UID qui a une autorisation écrite pour ce fichier, mais on ne peut pas vous connecter en tant que Syslog utilisateur car il n'y a pas d'interprète de commande à exécuter.

9
msw

En ce qui concerne la question que vous essayez de répondre:

Créez un utilisateur John qui ne devrait pas obtenir de shell interactif.

La question signifie "Créer un utilisateur nommé john _ qui ne sera pas capable de vous connecter et d'exécuter des commandes d'une coquille". Interactive Décrivez la manière dont la coque fonctionne: l'utilisateur Type quelque chose et la coquille fait quelque chose en conséquence (il existe une sorte de communication entre l'utilisateur et la coquille). Le mot "interactif" n'ajoute aucune information à la question, car dans la mesure où il existe une commande de frappe utilisateur, la session Shell est interactive.

Il existe également le mode non interactif, où l'utilisateur enregistre une série de commandes souhaitées dans un fichier (appelé script shell) et exécute le fichier après. Certaines commandes se comportent différemment selon que la coquille est exécutée de manière interactive ou non interactive. Vous pouvez lire plus ici (ce document est pour bash, mais le même concept s'applique aux autres obus).

Sur la façon de créer un tel utilisateur, si vous écoulez man useradd Il existe une option pour définir la coque de connexion, -s ou --Shell. Vous pouvez également créer un utilisateur normalement, de toute façon que vous voulez (que je suppose que vous savez déjà?), Puis éditez /etc/passwd Comme dans Réponse de MSW .

9
phunehehe

Oui, changez la coquille dans le fichier de mot de passe (/ etc/passwd) vers un programme qui non ne permet pas d'échapper à une coque.

si vous voulez être un BOFH /bin/faux fera exactement ce que vous voulez.

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