Nous avons créé plusieurs comptes d'utilisateurs pour les tâches automatisées nécessitant des autorisations détaillées, telles que le transfert de fichiers entre systèmes, la surveillance, etc.
Comment verrouiller ces comptes d'utilisateurs pour que ces "utilisateurs" n'aient pas de shell et ne puissent pas se connecter? Nous voulons éviter la possibilité que quelqu'un puisse entrer SSH dans l'un de ces comptes d'utilisateur.
/bin/false
semble plus commun que/bin/true
.nologin
se trouve actuellement à/usr/sbin/nologin
nologin
/usr/local/bin/maybe
qui/dev/urandom
choisit ly entre ces deux. Je devrais peut-être l'utiliser: DChanger le shell de connexion n'empêche pas nécessairement les utilisateurs de s'authentifier (sauf dans certains services qui vérifient si le shell de l'utilisateur est mentionné dans
/etc/shells
).Les utilisateurs peuvent toujours être en mesure de s’authentifier auprès des divers services fournis par votre système aux utilisateurs d’Unix et peuvent toujours être autorisés à effectuer certaines actions, sans toutefois exécuter directement des commandes arbitraires.
Changer le shell pour
/bin/false
ou/usr/sbin/nologin
seulement l'empêcher d'exécuter des commandes sur les services qui peuvent être utilisés pour exécuter des commandes (connexion à la console, ssh, telnet, rlogin, rexec, etc.) n'affectent l' autorisation que pour certains services.Par
ssh
exemple, cela leur permet toujours d'effectuer un transfert de port.passwd -l
désactive l'authentification par mot de passe, mais l'utilisateur peut toujours être autorisé à utiliser d'autres méthodes d'authentification (commeauthorized_keys
avecssh
).Sous
pam
Linux au moins, vous pouvez utiliser lepam_shells
module pour restreindre l'authentification ou l'autorisation aux utilisateurs disposant d'un shell autorisé (ceux mentionnés dans/etc/shells
). En effetssh
, vous voudrez le faire au niveau autorisation (account
) comme pour l’sshd
utilisation de l’ authentificationpam
en plus d’autres méthodes d’authentification (commeauthorized_keys
), ou vous pouvez le faire avec dessshd_config
directives dans/etc/ssh/sshd_config
(commeAllowUsers
et amis).Attention, l'ajout de certaines restrictions à l'autorisation globale de pam peut potentiellement empêcher l'exécution de
cron
tâches en tant qu'utilisateurs.la source
:|
Vous éditez le
/etc/passwd
fichier et changez le shell des utilisateurs depuis/bin/bash
ou/bin/sh
vers/sbin/nologin
la source
vipw
ce qui empêche ce genre d'erreur.Tout d'abord, désactivez le mot de passe en utilisant
passwd -l username
.Notez également dans la
man
pagepasswd
pour l'option-l
:la source
Vous pouvez utiliser la commande chsh:
Entrez les nouveaux détails du shell à la demande:
Ou version plus courte:
la source
Pour empêcher l'utilisateur de se connecter et même de s'authentifier sur ssh, ce qui active le transfert de port (comme décrit ici, Stéphane), modifie l'utilisateur pour qu'il soit similaire à l'
nobody
utilisateur du système :/etc/shadow
(avec*
ou!!
dans le champ approprié)/etc/passwd
(par exemple/sbin/nologin
au champ approprié)/etc/passwd
(par exemple,/
dans le champ approprié)la source