Restringir o acesso do usuário no Linux

Restringir o acesso do usuário no Linux

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_configcom um Matchbloco. (Coloque isto no final do arquivo, pois a Matchdiretiva se estende até a próxima Matchdiretiva 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 ChrootDirectoryem 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_configna opção ChrootDirectory.

Responder3

Você pode alterar as permissões /var/www/htmlpara que apenas o root possa visualizar/modificar os arquivos/pastas.

Como:

chown root:root  /var/www/html

informação relacionada