
En el artículo anterior, aprendimos cómo Ejecute comandos en un directorio como root a través de sudoEn esta guía veremos cómo Use sudo para evitar argumentos de comando en linuxSignificado: permitimos a los usuarios ejecutar comandos con sudo, pero sin argumentos de comando.
introducir
Como sabes, cada comando tiene diferentes opciones para realizar acciones específicas.echemos «ls
« comando por ejemplo.
Este ls
El comando se usa para enumerar el contenido del directorio, ¿verdad? Sí. El comando ls viene con varias opciones de línea de comando y banderas.Por ejemplo, puedes usar -a
logotipo con ls
Comando para enumerar todo en un directorio (es decir, incluidos los archivos ocultos).
En este breve tutorial veremos cómo permitir que los usuarios ejecuten ls
A través del comando sudo, pero solo sin opciones de línea de comando o banderas. ¿Lo entiendes? Déjame mostrarte cómo hacer esto en las siguientes secciones.
Use sudo para evitar argumentos de comando
editar /etc/sudoers
el archivo es root
usuario:
[root@Almalinux8CT ~]# visudo
Agregue las siguientes líneas:
user1 ALL=(root) /usr/bin/ls ""
Tenga en cuenta las comillas dobles al final ls
comando en la línea anterior.Las comillas dobles prohíben que los usuarios usen argumentos para un comando determinado (es decir, ls
Ordenar).De acuerdo con la línea anterior, el usuario1 puede ejecutar ls
el comando es root
pero no puede usar ls
Opciones/indicadores para el comando. Puede utilizar otros comandos de su elección. Guarde el archivo y ciérrelo.
Ahora cierre sesión en la sesión raíz e inicie sesión como usuario1 e intente ejecutar ls
Comandos con cualquier opción como root a través de sudo en la sesión de usuario1:
[user1@Almalinux8CT ~]$ sudo -u root ls -a
Encontrará el siguiente error:
Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on Almalinux8CT.
Sin embargo, puede ejecutar ls
Comando sin argumentos:
[user1@Almalinux8CT ~]$ sudo -u root ls

Deshabilite los argumentos del comando sudo para todos los usuarios
El ejemplo anterior le muestra cómo denegar al usuario la ejecución de un comando con argumentos root
usuario. ¿Qué sucede si desea aplicar esta regla a todos los usuarios? ¡simple!justo en /etc/sudoers
documento:
ALL ALL=(root) /usr/bin/ls ""
Ahora todos los usuarios en su máquina Linux no pueden ejecutar ls
comandos y sus banderas.
Para volver al valor predeterminado, simplemente elimine el comando y las comillas dobles. Alternativamente, elimine toda la línea.
Consulte la página del manual para obtener más detalles.
$ man sudoers
En conclusión
En esta guía, aprendimos cómo permitir que los usuarios ejecuten comandos con sudo, pero evitar que agreguen parámetros al comando. De esta manera, podemos evitar que los usuarios abusen de los argumentos de la línea de comandos.