Você não diz isso diretamente na sua pergunta, mas tenho a sensação de que você está tentando configurar um diretório pessoal comum para vários usuários para fins de SFTP. Eu tenho um servidor SFTP corporativo que eu configurei há algum tempo, então compartilharei com você como abordei o problema.
Configuração da conta de usuário
Para usuários que tinham um diretório pessoal compartilhado, eu configurei as contas da seguinte forma:
$ useradd -n -M -s $shell -g $group -d "/home/$homedir" "$uname"
Onde:
-
$shell
foi igual a /sbin/nologin
-
$group
foi definido para este grupo: sftponly
-
$homedir
era o nome do diretório inicial comum
-
$uname
é o nome de usuário desse usuário específico.
Configuração do diretório inicial
Eu, então, configuro os diretórios pessoais da seguinte forma:
$ mkdir -m 555 -p "/sftpdata/$homedir"
$ cp -pr /usr/local/bin/skel/. "/sftpdata/$homedir/."
OBSERVAÇÃO: Visto que estes não eram logins totalmente capacitados, mantive um diretório de esqueleto separado com arquivos de ponto básicos que as contas desses usuários precisavam.
Neste ponto, você pode relaxar o diretório home. permissões acima para 775 se você quiser permitir que os usuários gravem dados em seu diretório inicial. Eu configurei para que o usuário tivesse um upload & baixei o diretório, mas eu usei o automounter, autofs
desde que seus diretórios home foram montados a partir do nosso 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
Estruturando dessa forma autofs
estava impedindo que os usuários gravassem no diretório de download, mas permitindo que eles acessassem o diretório de upload. O arquivo de credenciais (deve ser permissões -rw-------.
) teria uma conta com acesso permitido para acessar os compartilhamentos no NAS. Eles geralmente são da forma:
username=dom\user
password=somethingreallylong
Configuração SSH
A última parte da tecnologia que precisamos empregar são algumas modificações no SSH, de modo que, quando o SFTP do usuário estiver em sua conta, ele seja chrooted.
/ 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
Depois, lembre-se de reiniciar o daemon SSH.
$ service sshd restart