Autoriser l'user à accéder au directory de base d'un autre user

J'ai un server Fedora. Je créerais un count d'user SFTP qui est autorisé à accéder au directory d'origine d'un autre user. C'est possible? Par exemple

user1 -> /home/user1 user2 -> /home/user1 

user2 peut accéder au système dans SFTP. Je crée l'user2 avec le groupe generic-group et le chrooté:

(dans mon / etc / ssh / sshd_config)

 AllowUsers user1 user2 Match Group generic-group ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no AllowAgentForwarding no X11Forwarding no 

Lorsque j'essaie d'accéder au SFTP le système en tant qu'user2, dans le directory / var / log / secure:

 Jan 31 11:46:24 perseo sshd[30073]: fatal: bad ownership or modes for chroot directory component "/home/user1/" 

J'ai aussi essayé cette règle différente:

 Match Group sftpusers ChrootDirectory /sftp/%u ForceCommand internal-sftp 

et

 mount --bind /sftp/user2/ /home/user1 

sans succès.

Vous donnez à user1 et user2 un directory à partager sur le server distant? avec l'autorisation d'écriture de groupe.

chroot est utilisé pour mettre en place un environnement ressortingctif (un mini système de files racine), puis à l'intérieur d'un directory / home / shared_directory.

La première erreur est due au fait que vous définissez chrootdirectory sur le directory de base des users (tout ce qui se trouve dans chroot devrait appartenir à root et non inscriptible).

La deuxième erreur que vous définissez le chroot dans / sftp / nom d'user

Voici une question similaire.

Utilisateurs SFTP Chroot qui ont besoin d'accéder à plusieurs directorys sous le même dossier parent

Vous ne dites pas cela directement dans votre question, mais j'ai le sentiment que vous essayez de configurer un directory de base pour plusieurs users à des fins SFTP. J'ai un server SFTP d'entreprise que j'ai installé il y a quelques time, donc je vais partager avec vous comment j'ai abordé le problème.

Configuration du count d'user

Pour les users disposant d'un directory personnel partagé, j'ai configuré leurs counts comme suit:

 $ useradd -n -M -s $shell -g $group -d "/home/$homedir" "$uname" 

Où:

  • $shell était égal à /sbin/nologin
  • $group été défini pour ce groupe: sftponly
  • $homedir était le nom de la maison commune dir
  • $uname est le nom d'user de cet user particulier.

Configuration du directory d'accueil

J'ai ensuite installé les directorys de la maison comme ceci:

 $ mkdir -m 555 -p "/sftpdata/$homedir" $ cp -pr /usr/local/bin/skel/. "/sftpdata/$homedir/." 

REMARQUE: Étant donné que ces connections n'étaient pas entièrement compatibles, j'ai géré un directory squelette distinct avec les files sharepoint base dont les counts de ces users avaient besoin.

À ce stade, vous pouvez vous détendre la maison dir. permissions supérieures à 775 si vous souhaitez autoriser les users à écrire des données dans leur directory personnel. Je l'ai mis en place de sorte que l'user avait un directory de téléchargement et de téléchargement, mais j'ai utilisé l'automounter, autofs puisque leurs directorys personnels étaient réellement montés sur notre NAS.

/etc/auto.master

 /home /etc/auto.cifs_sftp --timeout=2 --ghost 

/etc/auto.cifs_sftp

 * / -fstype=cifs,ro,noperm,netbiosname=${HOST},file_mode=0444,dir_mode=0555,credentials=/etc/sftpuser_credentials.txt ://NASServer/sftpdata/& \ /upload -fstype=cifs,rw,noperm,netbiosname=${HOST},file_mode=0666,dir_mode=0777,credentials=/etc/sftpuser_credentials.txt ://NASServer/sftpdata/&/upload 

La structuration de cette façon autofs les users d'écrire dans le directory de téléchargement, mais leur permettant d'écrire dans le directory de téléchargement. Le file d'informations d'identification (doit être des permissions -rw-------. ) -rw-------. un count autorisé pour accéder aux partages sur le NAS. Ils sont généralement de la forme:

 username=dom\user password=somethingreallylong 

Configuration SSH

Le dernier bit de la technologie que nous devons employer est quelques modifications de SSH de sorte que lorsque SFTP de l'user dans leur count ils sont chrootés.

/ etc / ssh / sshd_config

 Subsystem sftp internal-sftp -f AUTH -l INFO AllowGroups sftponly Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no PasswordAuthentication yes 

Assurez-vous ensuite de redémarrer le démon SSH.

 $ service sshd restart 

Si vous chrootez user2 et que vous le contrôlez dans la boîte, pourquoi ne pas utiliser user2 comme user1?

Modifiez votre / etc / passwd et copyz uid de user1 à user2.

Selon ce que vous voulez, cela pourrait être une solution.