
Necesito crear un usuario en un sistema Linux con permisos para instalar programas pero sin permisos para acceder a los directorios de otros usuarios.
Intenté hacer esto:
# 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
Entonces lo intenté:
su restricted_user
sudo ls /home/normal_user
Y finalmente el usuario restringido tiene acceso al directorio del usuario normal si lo hace con sudo
¿Cómo puedo implementar estas restricciones?
Respuesta1
No agregue el usuario alsudo
grupo, no les conceda acceso root general. Edite /etc/sudoers
y especifique un pequeño conjunto de ejecutables que el usuario puede ejecutar como root. Ejemplo:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
Notas:
- Dependiendo de su Linux:
apt-get
/apt
,dpkg
,opkg
,pacman
,yum
,… - Utilice rutas completas.
- La forma correcta de editar
sudoers
esvisudo
. - Consulte
man 5 sudoers
para obtener más información sobre la sintaxis. - Al construir reglas más complejas, recuerde susel orden importa.
Tenga en cuenta que un usuario determinado que puede instalar programas arbitrarios puede preparar e instalar unsetuidversión de ls
o "actualizada" sudo
que les otorgará acceso de root independientemente de /etc/sudoers
. O proporcione e instale un paquete que realice operaciones arbitrarias durante su instalación (posiblemente sin instalar nada). Prevenir esto puede no ser fácil.