A definição do diretório pessoal de um usuário determina apenas o diretório onde eles estão por padrão. Os usuários podem ver o restante do sistema de arquivos.
Se você quiser que uma conta seja restrita à transferência de arquivos e tenha acesso somente a uma árvore de diretórios específica, será necessário "prender" esse usuário. Isso é suportado nativamente pelo OpenSSH ; por exemplo, se você colocar esses amigos (e apenas eles) no grupo friends
:
Match Group friends
ForceCommand internal-sftp
ChrootDirectory %h
#AuthorizedKeysFile /etc/sshd/friends/%u.authorized_keys
O ChrootDirectory
limita esses usuários ao seu diretório inicial. Se todos eles tiverem o mesmo diretório, todos poderão usar as mesmas chaves SSH, que podem não ser o que você deseja. Descomente a linha AuthorizedKeysFile
se você não quiser que esses usuários façam upload de suas próprias chaves autorizadas.
Se você quiser tratar esses usuários independentemente de um ponto de vista de autenticação, não quiser que eles sejam capazes de manipular suas chaves e quiser dar a eles acesso à mesma árvore de diretórios, você pode definir um determinado diretório em vez disso:
Match Group friends
ForceCommand internal-sftp
ChrootDirectory /pub
Se você deseja conceder a esses usuários acesso a várias partes do sistema de arquivos, você pode fazer uma visualização combinada usando uma montagem de ligação.
ForceCommand internal-sftp
restringe esses usuários ao acesso por SFTP (por exemplo, com o Filezilla ou SSHFS). Se você quiser permitir outros métodos, como rsync, você precisa de um configuração de amador , por exemplo usando rssh (leia o CHROOT guia).