Por alguna razón, ya no necesitamos ser root (o usar sudo
) para ejecutar /sbin/shutdown
, /sbin/reboot
etc.
Esto parece ser porque esos ejecutables ahora son enlaces simbólicos a los /bin/systemctl
que maneja todo como usuario normal.
Sin embargo, ¿qué sucede si quiero shutdown
y necesito reboot
la autenticación raíz nuevamente? ¿Cómo puedo conseguir esto?
pkaction | grep login1
para otras reglas de interés)sudo visudo
y verificar si hay una línea con la ruta a estos ejecutables.Respuestas:
Systemd en efecto, manejar el
shutdown
,reboot
y otros comandos, y los privilegios predeterminados asignados son permisivas. Para cambiar esto, debe crear una regla Polkit. Cree un.pkla
archivo en/etc/polkit-1/localauthority/50-local.d
(digamosconfirm-shutdown.pkla
) que contenga:Los diversos apagado, reinicio, etc. comandos son, en términos polkit, acciones en
org.freedesktop.login1
, por ejemplo,org.freedesktop.login1.power-off
,org.freedesktop.login1.reboot
, etc. El problema específico aquí es la configuración por defecto, que se encuentra en/usr/share/polkit-1/actions/org.freedesktop.login1.policy
:Tenga en cuenta que le permite al usuario activo apagar, reiniciar, etc.
fuente
Puedes usar el
chmod
comando.Si desea dar acceso solo a root, puede escribir:
Si desea dar permiso a la raíz y al grupo sudo, puede escribir:
Si desea cambiar el grupo del archivo de sudo a otro (como un usuario o administradores) debe escribir:
Si quieres volver atrás, ejecuta:
Nota : puede que tenga que usar
sudo
estos comandos o haber iniciado sesión en la cuenta raízfuente
/bin/systemctl
), por lo que ejecutar chmod / sbin / shutdown afectará a todos los enlaces que apuntan,/bin/systemctl
ya que los permisosbin/systemctl
se cambiarán según lo confirmado por el comando $ll /bin/systemct
l -rwx ------ 1 raíz raíz 659848 18 de enero 16:04 / bin / systemctl *-rwxr-xr-x 1 root root 659848 Jan 18 16:04 /bin/systemctl
Como cambiar los permisos de un enlace simbólico en un sistema Linux no cambia los permisos del enlace, sino el archivo al que apunta (al menos en Ubuntu). Creo que la forma más segura de lograr esto sería eliminar el enlace y recrearlo con la máscara de usuario requerida para obtener el resultado que desea.
Otra publicación relacionada se puede encontrar aquí
fuente
Puede hacer un script que verifique si el usuario lo está ejecutando con permisos de root o no.
Luego ejecutará el comando systemctl o devolverá un error.
Fuente
fuente
Intenta cambiar sus permisos en la terminal. Puede hacerlo ejecutable solo por un determinado grupo, como wheel o admin. Lamentablemente (o quizás afortunadamente), un archivo solo puede tener la propiedad de un grupo, por lo que simplemente no funcionaría por sí solo. Pruebe "sudo chown root: wheel / sbin / shutdown" y luego "sudo chmod g + x / sbin / shutdown". Esto hará que el archivo sea ejecutable solo por root y administradores (estremecimientos) y los sudoers deberán ingresar sus contraseñas.
fuente