Comment exclure d'un «groupe de correspondance» en SSHD?

13

Il y a un groupe Match dans la configuration SSHD:

cat /etc/ssh/sshd_config
...
    Match Group FOOGROUP
    ForceCommand /bin/customshell
...

Il y a beaucoup d'utilisateurs sur la machine qui sont dans le "FOOGROUP".

Ma question: Comment puis-je exclure un utilisateur donné qui est dans le "FOOGROUP" du "Match Group"?

évachristine
la source

Réponses:

14

L' Matchopérateur peut prendre plusieurs arguments, permettant des règles très flexibles. Dans ce cas, vous pouvez faire quelque chose comme ça pour réaliser ce que vous voulez.

Match Group FOOGROUP User !username
  ForceCommand /bin/customshell

L' !annule l'argument passé au Usercritère, donc même si l'utilisateur usernameest dans le groupe FOOGROUP, le Matchne réussira pas et usernamene recevra pas le shell personnalisé lors de la connexion.

D_Bye
la source
Et êtes-vous sûr à 100% que cela exclut uniquement le "! Nom d'utilisateur"? Et les autres utilisateurs qui pourraient être dans le FOOGROUP seront intacts?
evachristine
2
Oui. Je l'ai testé avant de poster, et cela fonctionne comme je le décris.
D_Bye
1
Il semble que ce *,!usernamesoit une approche plus propre. Une autre solution si votre échec est le mélange de ce genre Matchavec ChrootDirectory(testé sur OpenSSH 5.3p1 et 7.4p1).
Ouki
4

Vous devez utiliser plusieurs clauses dans votre entrée de fichier de configuration, mais de manière très spécifique. Il y a un bogue dans certaines configurations qui provoque la syntaxe généralement recommandée et la plus simple ("Match Group FOOGROUP User! Username") pour empêcher tous les autres membres du groupe de ne pas correspondre ou leur permettre d'échapper à leur prison chroot.

Sur Debian Jessie utilisant OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.2d, j'obtiens le résultat que tout le monde dans le groupe ne peut plus se connecter. D'autres signalent des échappatoires. Dans les deux cas, une syntaxe de

Match Group FOOGROUP User *,!username

semble fonctionner sans effets secondaires. Une sorte de bug dans l'analyseur sans doute.

Nadreck
la source
0

avec l'option ci-dessous, je peux emprisonner l'utilisateur sftp dans le répertoire spécifié et également l'utilisateur spécifié capable de se connecter via ssh.

Match Group groupname User *,!username

Merci.

Logeshwaran Jeyakumar
la source