Ir al contenido principal

Cómo controlar sudo Access en Linux

El comando sudo le permite ejecutar comandos en Linux como si fuera otra persona, como root. sudo también le permite controlar quién puede acceder a las capacidades de root, con granularidad. Proporcione a los usuarios acceso completo o les permite usar un pequeño subconjunto de comandos. Le mostramos cómo.

sudo y permisos de raíz

We &’ todos hemos escuchado (la simplificación excesiva) que todo en Linux es un archivo. En verdad, prácticamente todo en el sistema operativo, desde procesos, archivos, directorios, sockets y tuberías, habla con el núcleo a través de un descriptor de archivo. Entonces, aunque todo no es un archivo, la mayoría de los objetos del sistema operativo se manejan como si lo fueran. Siempre que sea posible, el diseño de Linux y sistemas operativos tipo Unix se adhieren a este principio.

El concepto de “ todo es un archivo ”es de largo alcance en Linux. Es fácil ver entonces cómo los permisos de archivos en Linux se convirtieron en uno de los pilares de los privilegios y derechos del usuario. Si posee un archivo o directorio (un tipo especial de archivo), puede hacer lo que quiera con él, incluida la edición, el cambio de nombre, el movimiento y la eliminación. También puede establecer los permisos en el archivo para que otros usuarios o grupos de usuarios puedan leer, modificar o ejecutar el archivo. Todos se rigen por estos permisos.

Todos los que, aparte del superusuario, se conocen como root. La cuenta raíz es una cuenta especialmente privilegiada. No está sujeto a los permisos de ninguno de los objetos del sistema operativo. El usuario root puede hacer cualquier cosa y, prácticamente, en cualquier momento.

Por supuesto, cualquier persona con acceso a la contraseña de root puede hacer lo mismo. Podrían causar estragos maliciosamente o accidentalmente. De hecho, el usuario root puede causar estragos al cometer un error también. Nadie es infalible. Es algo peligroso.

Es por eso que ahora se considera una mejor práctica no iniciar sesión como root en absoluto. Inicie sesión con una cuenta de usuario normal y use sudo para elevar sus privilegios durante el corto tiempo que los necesite.A menudo, eso es solo emitir un solo comando.

RELACIONADO: ¿Qué significa "Todo es un archivo" en Linux?

La lista de sudoers

sudo eraya instalado en las computadoras Ubuntu 18.04.3, Manjaro 18.1.0 y Fedora 31 utilizadas para investigar este artículo. Esto no es una sorpresa. sudo ha existido desde principios de la década de 1980 y se ha convertido en el medio estándar de operación de superusuario para casi todas las distribuciones.

Cuando instala una distribución moderna, el usuario que crea durante la instalación se agrega a una lista de usuariosllamados sudoers. Estos son los usuarios que pueden usar el comando sudo. Debido a que tiene poderes de sudo, puede usarlos para agregar otros usuarios a la lista de sudoers.

Por supuesto, es imprudente entregar el estado de superusuario completo a cualquier persona que solo tenga unNecesidad parcial o específica. La lista de sudoers le permite especificar con qué comandos los diferentes usuarios pueden usar sudo. De esa forma, no les das las llaves del reino, pero aún pueden lograr lo que necesitan hacer.

Ejecutar un comando como otro usuario

Originalmente,se llamaba “ superuser do ”, porque se podían hacer cosas como superusuario. Su alcance se ha ampliado ahora, y puede usar sudo para ejecutar un comando como si fuera cualquier usuario. Se ha cambiado el nombre para reflejar esa nueva funcionalidad. Ahora se llama “ usuario sustituto do. ”

Para usar sudo para ejecutar un comando como otro usuario, necesitamos usar la opción -u (usuario). Aquí, vamos a ejecutar el comando whoami como el usuario Mary. Si usa el comando sudo sin la opción -u, ejecutará el comando como root.

Y, por supuesto, debido a que está usando sudo, se le pedirá que lo solicite. su contraseña.

 sudo -u mary whoami 

La respuesta de whoami nos dice que la cuenta de usuario que ejecuta el comando es mary.

Puede usar el comando sudo para iniciar sesión como otro usuario sin conocer su contraseña. Se le solicitará su propia contraseña. Necesitamos usar la opción -i (inicio de sesión).

 sudo -i -u mary 

 pwd 

 whoami

 ls -hl 

 salir 

Ha iniciado sesión como Mary. El “ . bashrc ”, “ . bash_aliases ”, y “ . profile ”los archivos de la cuenta de usuario de Mary se procesan exactamente como si el propietario de la cuenta de usuario de Mary hubiera iniciado sesión ellos mismos.

  • El símbolo del sistema cambia para reflejar que esta es una sesión para la cuenta de usuario Mary.
  • El comando pwd repite que ahora estás en el directorio mary'shome.
  • whoami le diceusas la cuenta de usuario Mary.
  • Los archivos en el directorio pertenecen a la cuenta de usuario Mary.
  • El comando de salida te devuelve a tu sesión normal de cuenta de usuario.

Edición del archivo sudoers

Para agregar usuarios a la lista de personas que pueden usar sudo, debe editar el archivo sudoers. Es de vital importancia que solo lo haga utilizando el comando visudo. El comando visudo evita que varias personas intenten editar el archivo sudoers a la vez. También realiza la verificación de sintaxis y el análisis del contenido del archivo a medida que los guarda.

Si sus ediciones no pasan las pruebas, el archivo no se guarda ciegamente. Tienes opciones. Puede cancelar y abandonar los cambios, volver y editar los cambios nuevamente, o forzar que se guarden las ediciones incorrectas. La última opción es una muy mala idea. No se sienta tentado a hacer eso. Puede encontrarse en una situación en la que a todos se les bloquea accidentalmente el uso de sudo.

Si bien comienza el proceso de edición con el comando visudo, visudo no es un editor. Llama a uno de sus editores existentes para realizar las ediciones de archivos. En Manjaro y Ubuntu, el comando visudo lanzó el editor simple nano. En Fedora, visudo lanzó el más capaz — pero menos intuitivo — vim.

RELACIONADO: Cómo salir del editor Vi o Vim

Si usted &’ prefierepara usar nano en Fedora, puede hacerlo fácilmente. Primero, instale nano:

sudo dnf install nano

Y luego visudo tuvo que ser invocado con este comando:

 sudo EDITOR = nano visudo 

Eso parece un buen candidato para un alias. El nano editor se abre con el archivo sudoers cargado.

Agregando usuarios al grupo sudo

Use visudo para abrir el archivo sudoers. Utilice este comando o el descrito anteriormente para especificar el editor de su elección:

 sudo visudo 

Desplácese por el archivo sudoers hastaverá la definición de la entrada% sudo.

El signo de porcentaje indica que esta es una definición de grupo y no una definición de usuario. En algunas distribuciones, la línea% sudo tiene un hash # al comienzo de la línea. Esto hace que la línea sea un comentario. Si este es el caso, elimine el hash y guarde el archivo.

La línea% sudo se descompone así:

  • % sudo: El nombre del grupo.
  • ALL =: esta regla se aplica a todos los hosts en esta red.
  • (ALL: ALL): los miembros de este grupo pueden ejecutar comandos como todos los usuarios y todos los grupos.
  • Todos: los miembros de este grupo pueden ejecutar todos los comandos.

Para reformular ligeramente, los miembros de este grupo pueden ejecutar cualquier comando, como cualquier usuario o grupo, en esta computadora oen cualquier otro host en esta red. Entonces, una manera simple de otorgarle a alguien privilegios de root y la capacidad de usar sudo es agregarlos al grupo de sudo.

Tenemos dos usuarios, Tom y Mary, con cuentas de usuario tom yMary respectivamente. Agregaremos la cuenta de usuario tom al grupo sudo con el comando usermod. La opción -G (grupos) especifica el grupo al que vamos a agregar la cuenta de Tom. La opción -a (agregar) agrega este grupo a la lista de grupos en los que ya se encuentra la cuenta de usuario. Sin esta opción, la cuenta de usuario tom se colocaría en el nuevo grupo pero se eliminaría de cualquier otro grupo.

 sudo usermod -a -G sudo tom 

Vamos a verificar en qué grupos está Mary:

grupos 

La cuenta de usuario Mary solo está en el grupo Mary.

Vamos a consultar con Tom:

 grupos 

La cuenta de usuario de Tom — y por lo tanto, Tom — está en los grupos tom y sudo.

Deje & ’ s intenta hacer que Mary haga algo que requiera privilegios de sudo.

 sudo less / etc / shadow 

Mary no puede mirar dentroel archivo restringido “ / etc / shadow. ”Ella tiene un ligero desprecio por tratar de usar sudo sin permiso. Veamos cómo le va a Tom:

 sudo less / etc / shadow 

Tan pronto como Tom ingrese su contraseña, estarámuestra el archivo / etc / shadow.

Con solo agregarlo al grupo de sudo, ha sido elevado a las filas de élite de aquellos que pueden usar sudo. Completamente sin restricciones.

Otorgando a los usuarios derechos de sudo restringidos

A Tom se le han otorgado todos los derechos de sudo. Puede hacer cualquier cosa que la raíz — o cualquier otra persona en el grupo de sudo — pueda hacer. Eso podría otorgarle más poder del que usted está feliz de entregar.A veces existe un requisito para que un usuario realice una función que requiere privilegios de root, pero no existe un caso justificable para que tenga acceso completo a sudo. Puede lograr ese equilibrio agregándolos al archivo sudoers y enumerando los comandos que pueden usar.

Conozcamos a Harry, el propietario de la cuenta de usuario Harry. No está en el grupo de sudo, y no tiene privilegios de sudo.

 grupos 

Es útil para Harrypoder instalar software, pero no queremos que tenga todos los derechos de sudo. Está bien, no hay problema. vamos a encender visudo:

 sudo visudo 

Desplácese hacia abajo por el archivo hasta pasar las definiciones de grupo. Vamos a agregar una línea para Harry. Debido a que esta es una definición de usuario y no una definición de grupo, no necesitamos comenzar la línea con un signo de porcentaje.

La entrada para la cuenta de usuario Harryes:

 harry ALL = / usr / bin / apt-get 

Tenga en cuenta que hay una pestaña entre “ harry ”y el “ ALL =. ”

Esto se lee como la cuenta de usuario Harry puede usar los comandos enumerados en todos los hosts conectados a esta red. Hay un comando en la lista, que es “ / usr / bin / apt-get. ”Podemos otorgarle a Harry acceso a más de un comando agregándolos a la lista de comandos, separados por comas.

Agregue la línea al archivo sudoers y guarde el archivo. Si desea verificar que la línea sea sintácticamente correcta, podemos pedirle a visudo que escanee el archivo y verifique la sintaxis para nosotros, utilizando la opción -c (solo verificar):

sudo visudo -c 

Las comprobaciones tienen lugar y visudo informa que todo está bien. Ahora Harry debería poder usar apt-get para instalar el software, pero debería ser rechazado si intenta usar cualquier otro comando que requiera sudo.

 sudo apt-get install finger 

Se han otorgado los derechos de sudo apropiados a Harry, y él puede instalar el software.

¿Qué sucede si Harry intenta usar un comando diferente que requiere sudo?

 sudo apagado ahora 

Harry no puede ejecutar el comando. Le hemos otorgado exitosamente acceso específico, restringido. Puede usar el comando designado y nada más.

Uso de aldo de usuario de sudoers

Si queremos darle a Mary los mismos privilegios, podríamos agregar una línea en el archivo de sudoers para el usuariocuenta a Mary exactamente de la misma manera que lo hicimos con Harry. Otra forma más ordenada de lograr lo mismo es usar un User_Alias.

en el archivo sudoers, un User_Alias ​​contiene una lista de nombres de cuenta de usuario. El nombre de User_Alias ​​se puede usar en una definición para representar todas esas cuentas de usuario. Si desea cambiar los privilegios para esas cuentas de usuario, solo tiene que editar una línea.

Vamos a crear un User_Alias ​​y usarlo en nuestro archivo sudoers.

 sudo visudo 

 Desplácese hacia abajo en el archivo hasta llegar a la línea de especificación User_Alias.

Agregue User_Alias ​​escribiendo:

 User_Alias ​​INSTALLERS = harry, mary 

Cada elemento está separado por un espacio, no por una pestaña. La lógica se descompone como:

  • User_Alias: Esto le dice a visudo que será un User_Alias.
  • INSTALADORES: Este es un nombre arbitrario para este alias.
  • = harry, mary: la lista de usuarios para incluir en este alias.

Ahora editaremos la línea que agregamos previamente para la cuenta de usuario harry:

 harry ALL = / usr / bin / apt-get 

Cámbialo para que se lea:

 INSTALADORES ALL = / usr /bin / apt-get 

Esto dice que todas las cuentas de usuario contenidas en la definición de “ INSTALADORES ”User_Alias ​​puede ejecutar el comando apt-get. Podemos probar esto con Mary, que ahora debería poder instalar el software.

 sudo apt-get install colordiff 

Mary puede instalar el software porque está en “ INSTALADORES ”User_Alias, y ese User_Alias ​​ha obtenido esos derechos.

Tres trucos rápidos de sudo

Cuando olvide agregar sudo a un comando, escriba

sudo !! 

Y el último comando se repetirá con sudo agregado al comienzo de la línea.

Una vez que haya usado sudo y autenticado con su contraseña, ganará &’ no tiene que usar su contraseña con más comandos de sudo durante 15 minutos. Si desea que su autenticación se olvide de inmediato, use:

 sudo -k 

¿Alguna vez se preguntó dónde puede ver intentos fallidos de comando sudo?Van a “ /var/log/auth. log”archivo. Puede verlo con:

 less /var/log/auth. log

Podemos ver la entrada de la cuenta de usuario Mary Whoinició sesión en TTY pts / 1 cuando intentó ejecutar el comando de apagado como usuario “ root. ”

With Great Power & # 8230;

& # 8230; viene la capacidad de delegar porciones de ella a otros. Ahora sabe cómo capacitar a otros usuarios de forma selectiva.

Fuente: How to Geek

Comentarios

Entradas populares de este blog

Cómo desbloquear "contenido potencialmente sensible" en Twitter

Twitter bloquea algunos tweets con un “ contenido potencialmente sensible ”advertencia. Puede desactivar esta advertencia & # 8212; incluso en un iPhone o iPad, donde la opción no está normalmente disponible. También puede deshabilitar las advertencias de contenido confidencial en sus propios tweets. Qué es “ SensibleContenido? ” Twitter dice que esta etiqueta de advertencia es para “ contenido potencialmente sensible... como la violencia o la desnudez. ” Para ser franco, Twitter es una red social más fácil de usar en comparación con Facebook. Mientras que la política de medios sensibles de Twitter sí prohíbe “ excesivamente sangrienta ”medios de comunicación, “ medios de comunicación que representan violencia sexual, ”y contenido ilegal, casi todo lo demás va. De manera predeterminada, Twitter restringe este medio con una advertencia como, “ Este medio puede contener material se...

Cómo verificar su historial de documentos impresos en Windows 10

Verificar el historial de una impresora para ver qué se imprimió puede ser algo difícil de controlar. Como su nivel de tóner no transmite cuánto se ha utilizado el accesorio, deberá habilitar el registro en Windows 10. Aquí encontrará cómo. Habilitar registro para documentos impresos recientemente De forma predeterminada, el historial de documentos impresos se borrará después de que cada documento haya terminado de imprimirse. Puede cambiar esta configuración para que pueda ver una lista de sus documentos impresos recientemente desde la cola de impresión de su impresora. Usted ’ deberá cambiar esta configuración para cada impresora que haya instalado. Acceda a su cola de impresión Para acceder a su cola de impresión, haga clic con el botón derecho en el botón del menú Inicio de Windows y seleccione “ Configuración ”opción. Desde aquí, haga clic en Dispositivos >Impresoras y amp;Escáneres. Encuentre su impresora en...

El loco 100W de carga rápida de Xiaomi hará su debut en los teléfonos inteligentes el próximo año

La tecnología de carga rápida no es exactamente nueva, pero como algunos de ustedes recordarán, a principios de este año, Xiaomi eliminó su tecnología de carga rápida Super Charge Turbo que ofrecía velocidades de hasta 100W. Lo que esto significa es que, en base a una batería de 4,000 mAh, solo tomaría 17 minutos llenarla. Publicidad Para aquellospreguntándose cuándo podríamos ver cómo la tecnología llega a los teléfonos inteligentes, le agradará saber que durante la Conferencia de Desarrolladores de Xiaomi, la compañía ha insinuado que llegará en 2020. La compañía también detalló algunos de loscaracterísticas de la tecnología de carga rápida. Esto incluye cómo el cargador contará con una bomba de carga de alto voltaje y una arquitectura de batería de doble celda. También habrá varias características de seguridad incorporadas, con Xiaomi afirmando que habrá 9 capas de protección. También habrá una MCU independiente que controla la carga, y también uti...