
Preciso criar um usuário em um sistema Linux com permissões para instalar programas mas sem permissões para acessar os diretórios de outros usuários.
Eu tentei fazer isso:
# Create restricted user user
adduser --home /home/restricted_user restricted_user
# Edit normal user dir permissions
chmod -R 700 /home/normal_user/
# Add restricted user to sudoers in order to allow program installation
sudo adduser restricted_user sudo
Então, eu tentei:
su restricted_user
sudo ls /home/normal_user
E finalmente o usuário restrito tem acesso ao diretório do usuário normal se fizer isso com sudo
Como posso implementar essas restrições?
Responder1
Não adicione o usuário aosudo
grupo, não conceda a eles acesso root geral. Edite /etc/sudoers
e especifique um pequeno conjunto de executáveis que o usuário pode executar como root. Exemplo:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
Notas:
- Dependendo do seu Linux:
apt-get
/apt
,dpkg
,opkg
,pacman
,yum
,… - Use caminhos completos.
- A maneira certa de editar
sudoers
évisudo
. - Consulte
man 5 sudoers
para obter mais informações sobre a sintaxe. - Ao construir regras mais complexas, lembre-se de suasordem é importante.
Tenha em mente que um determinado usuário que pode instalar programas arbitrários é capaz de preparar e instalar umsetuidversão ls
ou "atualizada" sudo
que lhes concederá acesso root independentemente do /etc/sudoers
. Ou forneça e instale um pacote que execute operações arbitrárias ao ser instalado (possivelmente sem realmente instalar nada). Prevenir isso pode não ser fácil.