A melhor maneira de fazer isso é criar uma prisão chroot para o usuário. Limparei a resposta aqui quando chegar em casa, mas postei a solução no meu blog.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Abaixo estão a maioria das instruções do post acima.
Primeiro, você deve criar o novo usuário no Admin do grupo de trabalho e atribuir a eles privilégios de acesso ao SSH por meio do Server Admin ou atribuí-los a um grupo que tenha privilégios de acesso ao SSH. Discussões adicionais estão abaixo.
Do terminal, comece à direita.
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
Cada novo usuário adicional adicionado será algo parecido com o seguinte.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Cada pasta no caminho para a cadeia chroot deve pertencer a root
. Acho que não importa em que grupo a pasta está. O que fiz acima foi
- cópia de segurança
/etc/sshd_config
- altere a propriedade do diretório raiz para
root
- altere as permissões do diretório raiz para 755
- crie uma pasta chroot
- crie uma pasta de usuário dentro da pasta chroot
- crie uma pasta dentro da pasta do usuário que o usuário possa modificar
- definir propriedade e permissões
Agora, edite /etc/sshd_config
para o seguinte.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Isso cria uma prisão chroot que, quando o usuário efetuar login, os soltará na pasta /chroot/user
, nessa pasta haverá uma pasta na qual eles poderão ser adicionados /chroot/user/scratchpad
.
Se você deseja criar um grupo no Admin do grupo de trabalho para 'Usuários chroot', adicione os novos usuários que você criou no Admin do grupo de trabalho ao grupo, não precisará editar o /etc/sshd_config
arquivo. Em vez do acima, adicione o seguinte. Certifique-se de adicionar o grupo 'Usuários Chroot' à ACL de acesso SSH no Server Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Para testar se o procedimento acima está funcionando, emita o seguinte no terminal.
$ sftp user@domain.com
Password:
sftp>