Comment autorisez-vous un utilisateur à se connecter à l'aide de " su -
utilisateur " tout en l'empêchant de se connecter à l'aide de SSH?
J'ai essayé de définir le shell sur /bin/false
mais le quand je l'essaie su
ne fonctionne pas.
Existe-t-il plusieurs façons de n'autoriser que les connexions par su
?
Est-ce que SSH est AllowUser
la voie à suivre? (comment ferais-je si c'est la voie à suivre)
su - -s /bin/bash user
Si vous voulez toujours que su fonctionne, vous pouvez utiliser
sudo -u [username]
ou transmettre-s /bin/bash
à su en tant que shell temporaire. Ils font tous les deux la même chose en l’absence de shell/etc/passwd
.la source
Si un compte n'a pas de mot de passe (mot de passe passwd -d ), il ne peut pas se connecter de manière interactive (console, SSH, etc.). S'ils ont un shell valide, su fonctionnera toujours. Notez le "interactivement", cependant; si quelqu'un décide de configurer une paire de clés SSH pour le compte, cela fonctionnera!
la source
Dans sshd_config, ajoutez une ligne
DenyUser [username]
Notez que cela n'empêchera pas cet utilisateur de se connecter via la console.
la source
DenyUsers
, avec un 's'.Outre ce qui a été mentionné ci-dessus (désactiver et / ou ne pas définir le mot de passe de l'utilisateur), le module pam_access (page de manuel de pam_access et access.conf) peut être utilisé pour contrôler l'accès à la connexion.
la source
comme d'autres l'ont dit;
DenyUser username
ouDenyGroup groupname
insshd_config
empêcherait la connexion clé / mot de passe via ssh.Bien que je fasse habituellement quelque
AllowGroup ssh
chose dans ce sens et que j'ajoute explicitement les personnes qui ont besoin d'un accès ssh à ce groupe.alors, vous pouvez faire ce que les autres ont dit:
passwd -d username
effacer le mot de passe des utilisateurs, afin qu'ils ne puissent pas se connecter à la console, ou d'une autre manière. ou mieux encorepasswd -l username
pour "verrouiller" le compte. il est possible que ssh refuse l'accès à un compte verrouillé, même avec des clés, mais je ne suis pas positif.la source
Comme je l'ai mentionné dans un commentaire, je pense que vous pouvez toujours créer un compte avec un shell non valide. Donc, si vous définissez le shell de l'utilisateur sur / dev / null ou quel que soit le shell de bin, vous devriez toujours pouvoir continuer à utiliser cet utilisateur ... mais toute tentative de connexion de quelque manière que ce soit vous fera quitter ...
la source
éditez / etc / shadow en ajoutant! au début du hash du mot de passe.
Lors de la sécurisation d’une nouvelle installation, c’est la première chose que je fais après l’installation de sudo. Par conséquent, personne ne peut utiliser l’utilisateur root pour se connecter ou se connecter au système, les utilisateurs sudo peuvent toujours s’exécuter en tant qu’utilisateur root.
la source
Ne spécifiez pas de mot de passe pour l'utilisateur non autorisé à se connecter ou à le supprimer.
la source
En supposant que vous ne vouliez que su utilisateur à partir du compte root, et désactivez tous les autres accès:
Utilisez ceci (exécuté en tant que root):
Cela désactive la connexion par mot de passe (comme de nombreuses autres réponses l’a conseillé), mais le compte expire également . Vous ne pouvez pas vous connecter à un compte arrivé à expiration, par exemple avec des clés SSH. Vous pouvez toujours
su user
, bien qu'il affiche un avis que le compte a expiré.la source
Savoir quel mécanisme est le meilleur dépend des exigences. Si vous connaissez les exigences, vous pouvez choisir le mécanisme approprié. Toutes les réponses ci-dessus sont valables pour certaines exigences.
Voulez-vous seulement restreindre l'accès SSH? Avez-vous besoin d'un accès pour les méthodes mail ou ssh? L'accès est-il uniquement à partir de la racine?
su - user
Un mot de passe sera requis pour l'utilisateur s'il est exécuté par un utilisateur autre que root. Cependant,sudo -u user -i
ne nécessite pas de mot de passe pour l'utilisateur.la source