GNU/Linux >> Tutoriels Linux >  >> Linux

Autorisations d'écriture des utilisateurs SFTP chrootés

Nous avons récemment trouvé une solution de contournement qui ressemble à ceci :

/etc/ssh/sshd_config :

...

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory /home
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

autorisations de répertoire :

[email protected]:~ # chown root:root /home
[email protected]:~ # chmod 111 /home
[email protected]:~ # chmod 700 /home/*

Maintenant /home répond aux exigences de ChrootDirectory et ne peut pas être répertorié par les utilisateurs restreints, mais sftponly les utilisateurs ne pourront pas se connecter si leurs répertoires personnels sont configurés comme d'habitude (/home/$LOGNAME ) :sous l'environnement chrooté, leurs répertoires personnels ne sont pas à l'intérieur de /home mais directement sous root (/ ).

solution de contournement 1

Définissez les maisons des utilisateurs restreints sur la façon dont elles apparaissent sous chroot :

[email protected]:~ # usermod -d /username username

mise en garde 1

Si l'un des utilisateurs sans restriction ou un script d'administration utilise l'extension tilde de bash comme ~username il s'étendra à /username maintenant, ce qui n'est pas ce que l'on veut dire.

Aussi l'administrateur qui crée sftponly les utilisateurs doivent se rappeler d'utiliser la maison non par défaut. Résoluble avec un script. Que l'administrateur doit se souvenir d'utiliser.

solution de contournement 2

C'est une alternative à la précédente que nous avons fini par utiliser :

[email protected]:~ # ln -s . /home/home

C'est créer un lien symbolique à l'intérieur de /home à son propre nom de domaine. Maintenant sous chroot /home/username pointe vers le même répertoire que sans chroot. Pour un utilisateur restreint connecté avec sftp, il apparaîtrait comme /username . Ce répertoire est accessible en écriture à son propriétaire (utilisateur restreint). L'utilisateur restreint ne peut pas répertorier ses répertoires parent ou personnel de l'un des frères et sœurs par nom.

La seule particularité d'un sftponly user est sa participation au sftponly groupe. Nous l'avons trouvée plus facile à gérer que la solution de contournement 1.

met en garde 2

  1. Vous ne pouvez pas avoir un utilisateur nommé 'home' avec un répertoire personnel /home/home
  2. Vous devez être prudent avec les scripts qui traversent /home hiérarchie et suivez les liens symboliques.

Vous devez créer une structure dans le répertoire personnel de l'utilisateur, comme les répertoires d'entrée et de sortie. Ces répertoires doivent appartenir à l'utilisateur et là, il pourra mettre et récupérer des fichiers.


J'ai les mêmes paramètres sur notre serveur. Nous utilisons la même configuration de SSHD. Les répertoires personnels des utilisateurs appartiennent à la racine et en leur sein se trouvent les dossiers documents et public_html appartenant aux utilisateurs respectifs. Les utilisateurs se connectent ensuite à l'aide de SFTP et écrivent dans ces dossiers (pas directement dans home). Comme SSH n'est pas autorisé pour eux, cela fonctionne parfaitement. Vous pouvez ajuster les répertoires qui seront créés pour les nouveaux utilisateurs dans /etc/skel/ (au moins dans openSUSE, je ne suis pas très familier avec les autres distributions).

Une autre possibilité serait ACL (documentation openSUSE) - il peut ajouter une autorisation d'écriture pour l'utilisateur respectif pour son répertoire personnel.


Linux
  1. Configurer Jenkins pour différents user.home

  2. Comment désactiver Gnome pour créer des documents/vidéo/dans HOME ?

  3. Pourquoi mettre des choses autres que /home sur une partition séparée ?

  4. Autorisations par défaut sur les répertoires personnels Linux

  5. mv :impossible de déplacer la maison vers la maison - ancien :appareil ou ressource occupé

Authentification SSH Ansible et escalade des privilèges

Créer un répertoire personnel pour un utilisateur existant sous Linux

Debian – Déplacer /var, /home vers une partition séparée ?

Xemacs :charger tous les fichiers dans /home/barry/.emacs_barry ?

"Impossible de créer un répertoire de cache /home//.composer/cache/repo/https—packagist.org/, ou le répertoire n'est pas accessible en écriture. Procéder sans cache ?

Excellent service client pour écrire à la maison