Créer un utilisateur qui ne peut pas obtenir un shell interactif


17

Qu'est-ce qu'un shell interactif et non interactif?

Questions: créez un utilisateur John qui ne devrait pas obtenir un shell interactif.

Comment peut-on le faire?

Réponses:


9

Le /etc/passwdfichier a comme dernier élément sur la ligne d'un utilisateur le programme à exécuter lors de la connexion. Pour les utilisateurs normaux, ce paramètre est généralement défini sur /bin/shou sur un autre shell (par exemple bash, zsh).

Traditionnellement, les identités utilisées pour posséder des processus, des fichiers ou d'autres ressources ont leur "shell" défini /bin/falsecomme dans

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

Le pseudo-utilisateur syslog possède /var/log/sysloget est le seul UID qui a l'autorisation d'écriture pour ce fichier, mais on ne peut pas se connecter en tant que syslog utilisateur car il n'y a pas d'interpréteur de commandes à exécuter.


9

Concernant la question à laquelle vous essayez de répondre:

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

La question signifie "Créez un utilisateur nommé johnqui ne pourra pas se connecter et exécuter des commandes à partir d'un shell". Interactive décrit le fonctionnement du shell: l'utilisateur tape quelque chose et le shell fait quelque chose en conséquence (il y a une sorte de communication entre l'utilisateur et le shell). Le mot "interactif" n'ajoute pas vraiment d'informations à la question, car tant qu'il y a un utilisateur tapant des commandes, la session shell est interactive.

Il existe également le mode non interactif, où l'utilisateur enregistre une série de commandes qu'il souhaite exécuter dans un fichier (appelé script shell) et exécute le fichier par la suite. Certaines commandes se comportent différemment selon que le shell est exécuté de manière interactive ou non interactive. Vous pouvez en savoir plus ici (ce document est pour bash, mais le même concept s'applique pour les autres shells).

Sur la façon de créer un tel utilisateur, si vous parcourez, man useraddil existe une option pour définir le shell de connexion, -sou --shell. Vous pouvez également créer un utilisateur normalement, comme vous le souhaitez (que je suppose que vous connaissez déjà?), Puis modifier /etc/passwdcomme dans la réponse de msw .


3

Oui, changer le shell dans le fichier de mot de passe (/ etc / passwd) à certains programmes qui ne pas permettre une évasion de coquille.

si vous voulez être un bofh / bin / false fera exactement ce que vous voulez.


-1
adduser username -s /sbin/nologin

2
Notez que le nom d'utilisateur est spécifié dans la question comme "john". Cela ne ferait pas de mal d'utiliser un peu de prose pour expliquer ce que fait votre commande et pourquoi elle remplit les conditions.
Jeff Schaller
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.