Por alguna razón, ya no necesitamos ser root (o usar sudo) para ejecutar /sbin/shutdown, /sbin/rebootetc.
Esto parece ser porque esos ejecutables ahora son enlaces simbólicos a los /bin/systemctlque maneja todo como usuario normal.
Sin embargo, ¿qué sucede si quiero shutdowny necesito rebootla autenticación raíz nuevamente? ¿Cómo puedo conseguir esto?

pkaction | grep login1para otras reglas de interés)sudo visudoy verificar si hay una línea con la ruta a estos ejecutables.Respuestas:
Systemd en efecto, manejar el
shutdown,rebooty otros comandos, y los privilegios predeterminados asignados son permisivas. Para cambiar esto, debe crear una regla Polkit. Cree un.pklaarchivo 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
chmodcomando.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
sudoestos 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/systemctlya que los permisosbin/systemctlse cambiarán según lo confirmado por el comando $ll /bin/systemctl -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/systemctlComo 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.
#! / bin / bash if ["$ (whoami)"! = "root"]; luego echo "Lo siento, no eres root". salida 1 más (comando de apagado systemctl) fiFuente
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