una - gestionar usuarios y permisos en linux
¿Cómo puedo permitir que los usuarios ejecuten un script con permisos de raíz? (9)
Teniendo en cuenta los peligros de los scripts de shell SUID , ¿existe una forma más segura de otorgar acceso sin contraseña a los scripts (bash, PHP) con permisos de raíz en Linux?
(Ubuntu 8.10)
Como sudo ya se ha mencionado, es posible que desee considerar varios entornos de espacio aislado, según sus necesidades, por ejemplo, cárcel o similar.
Configurar sudo para que los usuarios normales ejecuten scripts de shell con privilegios elevados no es mejor desde un punto de vista de seguridad que hacer que el script suid root. Todas las trampas aún existen. En su lugar, debe escribir un programa adecuado que realice amplias comprobaciones de seguridad. Algunos puntos a considerar:
Podrías considerar sudo .
Aunque no es "sin contraseña", no requiere que el usuario tenga la contraseña de root. También puede proporcionar una pista de auditoría del uso del script.
editar: según el comentario de Chris, existe la opción de no requerir una contraseña para ciertos comandos, ver aquí para más detalles. También se puede configurar para que no solicite demasiado la contraseña, es decir, una entrada de la contraseña puede ser útil para varios comandos durante un período de uso.
Por cierto, sudo está integrado en Ubuntu y está muy bien integrado con Gnome. Cuando ubuntu te pide tu contraseña para hacer operaciones privilegiadas, eso es sudo bajo el capó.
Yo recomendaría sudo . Asegúrese de ajustar su archivo sudoers
apropiadamente; y sí, puede permitir que se ejecuten algunos comandos sin que se solicite contraseña.
Asegúrese de revisar la sección " PREVENCIÓN DE ESCAPES DE SHELL " en la página man de sudoers si va por la ruta sudo.
Para una solución realmente pesada, considere un sistema MAC (Control de acceso obligatorio), como SELinux, AppArmor, TrustedBSD, etc.
Para mejorar la seguridad, considere si es posible hacer la operación como un usuario o grupo especial, que tiene exactamente los derechos de acceso necesarios para ello. Luego puede hacer el script setuid / setgid para ese usuario o grupo.
Si el caso de uso es una máquina que se ejecuta en VirtualBox y la seguridad no es realmente un problema, solo quiere una barrera de luz para evitar dispararse en el pie, ¿qué ocurre entonces? (Entonces los argumentos de seguridad realmente no tienen sentido, ya que no importa si la máquina se ve comprometida por un intruso que no puede verla de todos modos debido a la forma en que VirtualBox la aísla a través de NAT).