
Estou criando um novo usuário com os seguintes detalhes:
useradd -d /var/www/html/testuser.com -G users testuser
Prossigo criando uma nova senha para o usuário e tento fazer o login via SSH, chego em /var/www/html/testuser.com mas ainda posso voltar aos diretórios. Quero restringir as permissões do usuário para que eles possam gerenciar apenas o conteúdo dentro de testuser.com e irmãos (para que possam realizar todas as operações normais), não quero que o usuário possa navegar de volta nos diretórios e efetivamente ter root acesso.
Responder1
Os usuários não “têm efetivamente acesso root” apenas porque podem navegar em outros diretórios. Todos os usuários com acesso shell podem navegar pela instalação do software - afinal, esta não é uma informação confidencial, pois pode ser baixada de vários sites. Se houver diretórios que você não deseja expor a todos os usuários do shell, conceda-lhes permissões restritivas apropriadas.
Se quiser ter uma segunda camada de segurança, você pode deixar as contas mais restritas. Se você deseja permitir apenas que esses usuários naveguem, carreguem e baixem arquivos em /var/www/html/testuser.com
, não forneça a eles uma conta shell, forneça a eles uma conta restrita que só pode usar SFTP. Você pode especificar opções para uma conta específica emsshd_config
com um Match
bloco. (Coloque isto no final do arquivo, pois a Match
diretiva se estende até a próxima Match
diretiva ou até o final do arquivo.)
Match User testuser
Force-command internal-sftp
ChrootDirectory /var/www/html/testuser.com
Se você quiser permitir que os usuários usem mais alguns comandos, como scp e rsync, mas não o acesso geral ao shell, usersshouscponlycomo o shell em sua conta e instale e configure rssh ou scponly para especificar quais comandos você deseja permitir (consulteVocê precisa de um shell para SCP?).
Se você quiser fornecer uma conta shell que permita apenas a execução de alguns programas da lista de permissões, torne seu shell umshell restrito. Observe que esses usuários poderão acessar arquivos fora de seu diretório inicial, com base nas permissões de arquivo.
Se você deseja conceder acesso total ao shell, mas tornar invisível tudo o que não seja os diretórios pessoais, será necessário criar alguma forma decadeia. A forma mais fraca de prisão é aprisão chroot, que restringe o usuário a uma ramificação da árvore de diretórios. Restringir um usuário a um chroot é tão fácil quanto especificar ChrootDirectory
em sshd_config
; entretanto, como o usuário não pode sair da prisão, o diretório deve conter todos os programas que o usuário utilizará e seus dados. Você pode usarvincular montagenspara tornar alguns diretórios (por exemplo /usr
, ) visíveis dentro da prisão.
Responder2
Dê uma olhada man 5 sshd_config
na opção ChrootDirectory
.
Responder3
Você pode alterar as permissões /var/www/html
para que apenas o root possa visualizar/modificar os arquivos/pastas.
Como:
chown root:root /var/www/html