Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores

Desde la antigüedad, muchos se han sentido confundidos por la variedad de opciones de seguridad a la hora de realizar operaciones con los máximos privilegios. Por ejemplo, en el oficial Documentación de Ubuntu se recomienda usar algo como sudo nano como comando de edición, y en numerosos manuales de aficionados (al estilo de "5 trucos en la línea de comandos que sorprenderán a tu abuela"), se sugiere escribir sudo su - para obtener el root "new shell. Intentaré explicar por qué este estado de cosas me parece incorrecto.

Históricamente el único manera universal ejecutar un comando como otro usuario en Unix fue el programa su. Ejecutar sin parámetros, pedía la contraseña de root y, si tenía éxito, simplemente cambiaba el nombre de usuario actual a root, dejando casi todo Variables de entorno del antiguo usuario (excepto PATH, USER y un par más, vea man su de su distribución). Era más correcto ejecutarlo como su - - en cuyo caso el shell también obtendría el entorno correcto. Con la opción -c, era posible ejecutar el comando: su -c "vim /etc/fstab" .

Al mismo tiempo, los usuarios de confianza tenían que recordar la contraseña raíz y todos los usuarios enumerados en el grupo rueda (es decir, en un grupo cuyos miembros podían ejecutar el comando su y convertirse en superusuario) tenían el mismo acceso sin restricciones a todo el sistema. , lo que supuso un grave problema de seguridad.

Luego vino el comando sudo, y ese fue el gran avance. Ahora el administrador podría especificar una lista de comandos permitidos para cada usuario (o grupo de usuarios), archivos disponibles para editar, variables de entorno especiales y mucho más (todo este esplendor se controla desde /etc/sudoers, consulte man sudoers desde su distribución) . Cuando se ejecuta sudo, le pide al usuario su propia contraseña, no la contraseña de root. Se puede obtener un caparazón completo con " sudo -i "

De especial interés es el comando especial sudoedit , que lanza de forma segura el editor especificado en la variable de entorno $EDITOR. Con un esquema más tradicional, la edición de archivos se hacía de la siguiente manera:
sudo vi /etc/fstab

Vi lanzó de esta manera un shell heredado con derechos ilimitados ya través de:! el usuario podía ejecutar cualquier comando (a menos, por supuesto, que el administrador se encargara de ello por adelantado) y abrir cualquier archivo.

Sudoedit comprueba si este usuario puede editar archivo dado, luego copia el archivo especificado en un directorio temporal, lo abre en un editor (que hereda los derechos de usuario, no de root "a) y, después de editarlo, si el archivo ha sido modificado, lo vuelve a copiar con precauciones especiales.

En las distribuciones basadas en Debian, el usuario raíz no tiene una contraseña, en su lugar, todas las acciones administrativas deben realizarse a través de sudo o su equivalente gráfico gksudo. Como reemplazo completo de su , sudo debería ser el único comando para cambiar entre usuarios, sin embargo, como se mencionó al principio, este no es el caso en este momento y todos inventan secuencias salvajes de sudo, su, vi y guiones por alguna razón. .

Por lo tanto, sugiero a todos que de una vez por todas recuerden:

Después de la primera publicación de esta nota, me hicieron varias preguntas. De las respuestas resultó hacer un mini-FAQ.

P: ¿cómo hacer su -c "echo 1 > /etc/privileged_file" con sudo? sudo echo 1 /etc/privileged_file jura "permiso denegado"
R: Esto se debe a que solo el comando echo se ejecuta con derechos elevados y el resultado se redirige a un archivo que ya tiene derechos de usuario normales. Para agregar algo al archivo_privilegiado, debe ejecutar el siguiente comando:
$eco 1| sudo tee -a archivo_privilegiado >/dev/null
O convertirse temporalmente en root:
$ sudo -i # echo 1 > archivo_privilegiado # salir $
P: sudo -i es más largo que su - , y parece que no hay diferencia entre ellos, ¿por qué imprimir más?
R: sudo tiene varias ventajas por las que vale la pena escribir algunos caracteres adicionales:

  • de forma predeterminada, sudo escribe toda la actividad del usuario en el canal authpriv syslog (por regla general, el resultado se coloca en el archivo /var/log/auth.log), y se debe incluir una característica similar en su configurando un parámetro especial en el archivo de configuración, que difiere de una distribución a otra (SULOG_FILE en /etc/login.defs en ubuntu linux, /etc/login.conf y /etc/pam.d/su en FreeBSD, etc.)
  • en el caso de su, el administrador del sistema no puede restringir los comandos que los usuarios pueden ejecutar, pero en el caso de sudo, puede
  • si el usuario debe ser privado de derechos administrativos, en el caso de su, después de eliminarlo del grupo rueda, debe olvidar la contraseña de root; si se usa sudo, basta con eliminarlo del grupo apropiado (por ejemplo, rueda o administrador) y/o archivo sudoers si se ha configurado adicionalmente.
P: Soy el único usuario en mi sistema y estoy acostumbrado a su, ¿por qué necesito sudo?
R: Responderé a la pregunta con una pregunta: si hay un sudo correcto, ¿por qué usar el su obsoleto?

Paradójicamente, el comando sudo no impide ejecutar una sesión de administrador dentro de una sesión de usuario normal. Porque se puede usar para ejecutar el mismo comando su:

$ sudo su

Y esto es incluso en Ubuntu, donde no hay una cuenta raíz; más precisamente, por defecto no hay contraseña. Pero usar sudo lo hace innecesario incluso para el comando su. Pero no está prohibido establecer la contraseña de superusuario; después de todo, para esto es suficiente dar el comando

$ sudo contraseña

para usar su de la forma habitual. E incluso, si lo desea, iniciar sesión como root al registrarse en el sistema.

Sin embargo, incluso aquí, el comando sudo proporciona un método "ideológicamente correcto", y ni siquiera uno. Estas son las opciones -s y -i, que prolongan, aunque de formas ligeramente diferentes, la acción del comando sudo indefinidamente, hasta que la "sesión secundaria" finaliza con el comando exit.

La opción -s, al abrir una sesión raíz secundaria, conserva todas las variables de entorno del usuario original. Sin embargo, si le agrega la opción -H, estas variables se volverán a leer desde los archivos de perfil del directorio de inicio del administrador, es decir, /root, como cuando se inicia una instancia de shell interactiva. Sin embargo, el directorio que era actual en el momento en que se ingresó el comando no cambiará, ni cambiará la apariencia del indicador. línea de comando.

La opción -i reproduce completamente el entorno raíz ejecutando su shell como un shell de inicio de sesión. Por supuesto, esto también cambia el directorio actual a /root, y la línea de comando toma la forma descrita en la variable correspondiente en el archivo de perfil del shell administrativo (en bash - PS1).

En la práctica, no hay mucha diferencia entre las dos formas de obtener derechos de administrador permanentes, especialmente en bash. Pero en zsh, con la configuración adecuada de los archivos de perfil, si lo desea, puede lograr entornos significativamente diferentes en cada uno de estos casos. Es cierto que cuánto necesita el usuario es una gran pregunta. Pero el hecho de que al usar las opciones -H, estar en modo administrativo permanente no aparezca de ninguna manera está plagado de errores. Esto hace que la opción -i sea preferible en la mayoría de los casos.

Por cierto, las capacidades de sudo no se limitan a ejecutar comandos como administrador: al configurar la opción -u nombre de usuario, también se pueden ejecutar en nombre del usuario cuyo inicio de sesión se establece como su valor. Esto puede ser útil cuando se ven o copian los archivos de puntos y los directorios de puntos de otro usuario, a menudo solo su propietario puede leerlos y editarlos.

Por cierto, el comando sudo se puede ejecutar para que solicite la contraseña del usuario en cuyo nombre se ejecutará el comando (por ejemplo, administrador), y no el que requiere su autoridad. Hay una opción -targetpw para esto. Y para que el requisito de la contraseña de root sea permanente, basta con definir, por ejemplo, un alias como

Alias ​​sudo -targetpw

Requerir una contraseña de root cuando se ejecuta sudo es su comportamiento predeterminado en algunas distribuciones, por ejemplo, se dice que es Suse.

El comando sudo tiene muchas más opciones; arriba he dado solo las que tenía que usar. El resto es fácil de ver en man sudo. De los que no figuran en la lista, también mencionaré la opción -b, que indica ejecutar el comando "jurisdiccional" en segundo plano. Puede ser útil al realizar tareas a largo plazo, como copiar imágenes USB a una unidad flash con el comando dd.

Como acabamos de ver, el comando sudo otorga al usuario poderes casi ilimitados para cualquier acción en todo el sistema, así como para manipular los datos de usuario de otras personas. Con esto en mente, hagámonos las siguientes preguntas:

  • si cualquier usuario puede obtener derechos de administrador a través del comando sudo, y
  • ¿Puede realizar todas las acciones administrativas a través de él?

Si hablamos de la familia Ubuntu, en la que este mecanismo se utilizó por primera vez "listo para usar", luego "listo para usar", la respuesta a la primera pregunta será negativa, a la segunda, positiva. En general, depende de la configuración del programa sudo, que se describe en el archivo /etc/sudoers. Y en él puede establecer reglas que permitan que solo ciertos usuarios ejecuten ciertos comandos. En resumen, se ve así:

nombre de usuario host=comando

Aquí, como puede suponer, el nombre de usuario es el nombre del usuario para el que se establece esta regla, el host es el nombre de la máquina desde la que puede recurrir a esta regla, el comando es el comando específico cuyo uso está permitido. usuario dado de esta máquina. El comando se debe dar con la ruta absoluta completa (es decir, /sbin/fdisk, no fdisk). El campo de descripción del comando puede incluir múltiples valores separados por comas, por ejemplo:

Nombre de usuario TODOS = /sbin/fdisk,/bin/mount

En Ubuntu, las reglas predeterminadas para el acceso de los usuarios a los privilegios administrativos se describen a continuación:

# Especificación de privilegios de usuario root ALL=(ALL) ALL # Los miembros del grupo de administración pueden obtener privilegios de root %admin ALL=(ALL) ALL

Es decir, el usuario raíz, como debe ser, puede ejecutar cualquier comando desde cualquier host. Pero solo los usuarios que pertenecen al grupo de administración (un análogo del grupo de rueda, que se mencionó en) pueden obtener sus derechos. Un usuario creado durante una instalación típica se convierte automáticamente en miembro de este grupo y, por lo tanto, todos los derechos administrativos están disponibles para él sin ninguna configuración adicional. Sin embargo, otros usuarios, cuyas cuentas se crearán más adelante, se verán privados de este privilegio. A menos, por supuesto, que estuvieran específicamente incluidos en el grupo de administración.

En otras distribuciones que no usan sudo de fábrica, deberá editar su archivo de configuración, el mismo /etc/sudoers mencionado anteriormente.

El archivo /etc/sudoers es un archivo de texto normal y, en consecuencia, se puede editar en cualquier editor de texto (o, por ejemplo, usando ed o sed). Sin embargo, al mismo tiempo, existe cierto riesgo de estropear algo (debido a los errores tipográficos habituales), hasta bloquear por completo el acceso a los privilegios de superusuario para uno mismo. Por supuesto, estas situaciones son reparables, por ejemplo, mediante un reinicio en modo de usuario único. Sin embargo, es mejor no golpearlos. Y, por lo tanto, un medio más confiable para modificar /etc/sudoers es usar una utilidad especialmente diseñada para esto: visudo.

La utilidad visudo no hace nada elegante: simplemente abre /etc/sudoers en un editor de texto descrito por la variable EDITOR del superusuario (si no se define, volverá a ser vi clásico, de ahí el nombre) y le permite editarlo de la manera habitual. , y luego salga del editor y guarde los resultados de la forma habitual. Sin embargo, antes de eso, se verifica la corrección del resultado de la edición. Y si se detecta una violación de la sintaxis aceptada para /etc/sudoers, se emite una advertencia adecuada. Después de lo cual puede volver a editar, rechazar los cambios realizados o aceptarlos (por supuesto, bajo su propia responsabilidad).

La utilidad visudo no garantiza el 100% de éxito en la edición. Dado que solo verifica la conformidad de la sintaxis, pero no la "corrección de las reglas en sí". Es decir, si se comete un error al especificar la ruta al comando necesario para esta regla, este comando no funcionará a través de sudo.

Sin embargo, en realidad, generalmente parece mucho más simple y no da miedo en absoluto. Entonces, en Fedora 11, en la configuración ejemplar de /etc/sudoers, solo tenía que descomentar la línea

%rueda TODO=(TODO) TODO

para dar al usuario del grupo especificado (y me incluí allí de antemano, como se describe en) todos los derechos que tiene el administrador. Al mismo tiempo, sería posible proporcionarse un tirón y la capacidad de usar sudo sin contraseña. Esto requeriría descomentar la línea.

# %rueda TODO=(TODO) SIN CONTRASEÑA: TODO

Pero me limité solo a hacer más duradera la acción de la contraseña ingresando (inicialmente faltaba la línea

Valores predeterminados timestamp_timeout=10

donde el valor del tiempo de espera está en minutos. Por cierto, si lo cambias a cero -

Valores predeterminados timestamp_timeout=0

luego se solicitará la contraseña cada vez que se invoque el comando sudo.

Alternativamente, puede deshabilitar el tiempo de espera en la acción sudo ingresando un valor negativo para ella:

Valores predeterminados timestamp_timeout=-1

En este caso, la contraseña se solicitará solo la primera vez que se llame a este comando.

Una mirada más cercana al archivo /etc/sudoers revelará fácilmente las posibilidades de otorgar a ciertos usuarios o grupos solo un conjunto limitado de derechos. Sin embargo, aquí comienzan las sutilezas de la administración real. Simplemente privé a mi doble experimentador del acceso a cualquier acción administrativa para detener todas sus invasiones en este campo. Sin embargo, incluso esto no siempre me permite hacer frente a él, al igual que Timur Shaov no puede hacer frente a su héroe lírico.

El comando sudo es muy importante para administrar los derechos de acceso en Sistema operativo linux Gracias a este pequeño comando, puede dar permiso para realizar ciertas acciones en nombre del administrador a otros usuarios, sin darles la contraseña de superusuario en sí. Además, no es necesario estar siempre bajo la cuenta de superusuario para realizar acciones administrativas en ocasiones.
Parecería que un equipo tan pequeño, con un mínimo de prestaciones y un uso de lo más sencillo, pero en realidad puede hacer mucho más. En este artículo, veremos cómo se configura sudo en Linux para controlar el acceso a las funciones del sistema y las capacidades del usuario.

¿Cómo funciona Sudo?

Antes de pasar a configurar el acceso a la utilidad sudo, veamos cómo funciona. En Linux, hay dos formas de obtener derechos de administrador. Puede cambiar al usuario raíz con el comando su, o puede pasar el comando deseado como parámetro a la utilidad sudo, que lo ejecutará con derechos de administrador. Además, el segundo método es preferible, porque no olvidará que está utilizando derechos de root y no hará nada extra.
El nombre del comando significa usuario sustituto hacer o súper usuario hacer. La utilidad le permite ejecutar programas en nombre de otro usuario, pero más a menudo en nombre de la raíz. La utilidad fue desarrollada en 1980 por Bob Cogshell y Cliff Spencer. Durante este tiempo, muchos desarrolladores han cambiado y se han agregado muchas funciones.
sudo funciona gracias al indicador de acceso SUID. Si este indicador está configurado para el programa, entonces no se ejecuta en nombre del usuario que lo inició, sino en nombre del propietario, dado que pertenece el archivo sudo, entonces la utilidad se ejecuta como root. Luego lee su configuración, solicita la contraseña del usuario y decide si se le puede permitir ejecutar comandos como administrador. En caso afirmativo, se ejecuta el comando pasado en el parámetro.
Ahora que conoce la teoría, veamos cómo configurar sudo en Linux.

Configurando sudo en Linux

Todas las configuraciones de sudo se encuentran en /etc/sudores. Aquí puede configurar muchos parámetros, comenzando por quién podrá ejecutar comandos en nombre del superusuario y terminando por limitar el conjunto de comandos disponibles.
Para abrir un archivo para editarlo, escriba el siguiente comando como superusuario:

También puede especificar editor de texto donde desea editar el archivo de configuración:

# EDITOR=nano visudo

A continuación, veremos las configuraciones más interesantes que puede establecer en este archivo. Pero primero, veamos la sintaxis básica del archivo. Consta de dos tipos de líneas, estas son alias, que te permiten crear listas de usuarios y flags, así como las propias reglas, que especifican cómo se comportará el comando sudo. La sintaxis del alias se ve así:
escriba alias_name = elemento1, elemento2, elemento3
El tipo especifica qué tipo de alice crear, el nombre especifica el nombre que se usará y la lista de elementos especifica los elementos que estarán implícitos al referirse a este nombre.
La descripción de los permisos para los usuarios tiene una sintaxis ligeramente diferente:
usuario anfitrión = (otro_usuario:grupo) equipos
El usuario especifica el usuario o grupo para el que estamos creando la regla, el host es la computadora para la que se aplicará esta regla. Otro usuario: bajo la apariencia de qué usuario, el primero puede ejecutar comandos y el último, comandos permitidos. Se puede utilizar un alias en lugar de cualquiera de los parámetros. Y ahora configurando sudo en Debian y otras distribuciones.

Ajustes principales

El alias predeterminado le permite establecer parámetros estándar para que funcione la utilidad, y los consideraremos en esta sección. Dicho alias comienza con la palabra Predeterminados, seguida del nombre de la bandera. Si hay un símbolo ! antes del nombre, significa que la bandera debe estar encendida, de lo contrario, apagada:
Deshabilitar la introducción en el primer uso:

Predeterminados !lectura


El superusuario no puede sudo:

Valores predeterminados !root_sudo



Ahora, si intentas sudo sudo, nada funcionará:


Cambie el directorio de inicio para el usuario de destino, el valor predeterminado es la carpeta del usuario actual como directorio de inicio:

Valores predeterminados set_home



Guarda la lista de grupos del usuario actual:

Valores predeterminados !preserve_groups



Solicite la contraseña de superusuario en lugar de la contraseña de usuario:



A continuación, considere las variables que se pueden establecer en valores para establecer la configuración deseada:
Establezca el número de intentos de contraseña antes de que sudo salga, el valor predeterminado es 3:

valores predeterminados passwd_tries=5





La cantidad de minutos que transcurrirán antes de que Sudo solicite una contraseña nuevamente, el valor predeterminado es 5. Si se establece en 0, siempre se solicitará la contraseña, sin importar cuánto tiempo hace que usó la utilidad:

Valores predeterminados timestamp_timeout=10



El siguiente parámetro especifica la cantidad de minutos que sudo esperará para que se vuelva a ingresar la contraseña si se ingresa incorrectamente:

por defecto passwd_timeout=10



Puede cambiar el mensaje que se mostrará cuando se le solicite una contraseña:

Predeterminados passprompt="Su contraseña es:"


Puede especificar otro usuario, no root, desde el cual se ejecutarán todos los comandos, para este uso:

por defecto runas_default="usuario"

Puede registrar todos los intentos de conectarse a sudo:

Archivo de registro predeterminado =/var/log/sudo



Luego tratamos de verificar el funcionamiento del registro:

$ sudo cat /var/log/sudo



Estas han sido todas las opciones de configuración de sudo más interesantes que puede necesitar, a continuación veremos cómo configurar los permisos de sudo para los usuarios.

Configuración de usuarios sudo

Ya hemos discutido la sintaxis para establecer acciones para los usuarios arriba, todo es más complicado aquí que con los alias, pero puedes resolverlo. Por ejemplo, permitamos que cualquier usuario use sudo, desde cualquier host, y ejecute cualquier comando:

TODOS TODOS = (TODOS) TODOS



Tal comando es muy inseguro, permite a todos y todo. El primero es TODO para permitir a todos los usuarios, el segundo es TODO para todos los hosts, el tercero es TODO para permitir el inicio de sesión como cualquier usuario y el cuarto es para permitir que se ejecute cualquier comando. Pero mucho más a menudo se usa otra construcción:

%rueda TODO = (TODO) TODO


Significa lo mismo que el anterior, solo que aquí no permitimos que todos los usuarios usen sudo, sino solo aquellos que son miembros del grupo rueda.

%rueda TODO = (raíz) TODO

Aquí ya hemos limitado la posible selección de usuarios solo al usuario root. También puede especificar el grupo de usuarios en cuyo nombre puede ejecutar comandos:

%rueda TODOS = (raíz:administradores) TODOS



Esto significa que puede ejecutar el comando como root u otro usuario del grupo de administradores. También podemos especificar comandos que el usuario puede ejecutar. Por ejemplo:
  • Runas_Alias- alias de usuarios en cuyo nombre se ejecutarán los comandos;
  • host_alias- alias de anfitrión;
  • Cmnd_Alias- alias de comando;
  • Por ejemplo, vamos a crear cuatro alias y aplicarlos a nuestra regla:

    Usuario_Alias ​​​​Usuarios = usuario1, usuario2, usuario3
    Runas_Alias ​​​​Admins = raíz, administrador
    Host_Alias ​​Hosts = host1,host2
    Cmd_Alias ​​​​Cmds = /bin/montar, /bin/desmontar

    Usuarios Anfitriones = (Administradores) Cmds

    Esto significa que los usuarios de la lista de usuarios podrán ejecutar comandos de Cmds como usuarios de Amdins en hosts.
    Queda por decir algunas palabras sobre las banderas. El indicador NOPASSWD le indica que no solicite una contraseña al ejecutar esta regla. Por ejemplo, para permitir que todos los usuarios ejecuten el comando de montaje con sudo sin contraseña:

    TODOS TODOS = (raíz) NOPASSWD: /bin/mount

    También puede deshabilitar este comando en particular usando el indicador NOEXEC:

    TODOS TODOS = (raíz) NOEXEC /bin/mount

    Puede verificar si el archivo /etc/sudores se configuró correctamente y ver todas las reglas creadas usando el comando:


    Todas las banderas y configuraciones establecidas, así como los permisos de este usuario, se muestran aquí.

    conclusiones

    En este artículo, vimos cómo se configura sudo en Linux. Como puedes ver, aunque es muy utilidad sencilla, oculta muchas configuraciones útiles que puede usar en su sistema. Si tienes alguna duda, pregunta en los comentarios!

    En cualquier sistema Linux, siempre hay un usuario privilegiado: root. Este usuario tiene derecho a realizar cualquier acción, eliminar cualquier archivo y cambiar cualquier configuración. Es casi imposible limitar de alguna manera la libertad de acción de la raíz. Por otro lado, todos los demás usuarios del sistema por lo general no tienen una mayoría derechos necesarios, por ejemplo, derechos para instalar programas, ya que esta es una operación administrativa para la que solo el root tiene derechos. Otra operación común, disponible solo para el superusuario, es copiar y modificar archivos en carpetas del sistema donde el usuario normal no tiene acceso.

    Anteriormente, este problema se resolvía de forma bastante sencilla: si tenía la contraseña de root, podía iniciar sesión en el sistema con su cuenta u obtener temporalmente sus derechos mediante el comando su. Luego realice todas las operaciones necesarias y regrese como un usuario regular. En principio, dicho esquema funciona bien, pero tiene muchos inconvenientes significativos, en particular, es imposible (más precisamente, muy difícil) limitar los privilegios administrativos a solo un cierto rango de tareas.

    Por lo tanto, en la moderna distribuciones de Linux en lugar de la cuenta raíz para la administración, se utiliza la utilidad sudo.

    En Ubuntu, por defecto, la cuenta raíz generalmente está deshabilitada, es decir, no hay forma de que pueda acceder a la raíz sin habilitarlo. root es exactamente lo que está deshabilitado, es decir, está presente en el sistema, simplemente no puedes pasar por debajo de él. Si desea recuperar la capacidad de usar la cuenta raíz, consulte el párrafo sobre cómo habilitar la cuenta raíz a continuación.

    que es sudo

    sudo es una utilidad que otorga privilegios de root para realizar operaciones administrativas de acuerdo con su configuración. Le permite controlar fácilmente el acceso a aplicaciones importantes en el sistema. Por defecto, cuando instalando ubuntu el primer usuario (el creado durante la instalación) tiene todos los derechos para usar sudo. Aquellos. de hecho, el primer usuario tiene la misma discreción que el root. Sin embargo, este comportamiento de sudo es fácil de cambiar, vea más abajo en el párrafo sobre la configuración de sudo.

    ¿Dónde se usa sudo?

    sudo se usa cada vez que ejecuta algo desde el menú Administración del sistema. Por ejemplo, al iniciar Synaptic, se le pedirá que ingrese su contraseña. Synaptic es un programa de administración de instalaciones, por lo que necesita derechos de administrador para ejecutarlo, que obtiene a través de sudo al ingresar su contraseña.

    Sin embargo, no todos los programas que requieren privilegios administrativos se ejecutan automáticamente con sudo. Por lo general, debe iniciar los programas con derechos de administrador manualmente.

    Ejecución de programas gráficos con derechos de administrador

    Para empezar programas gráficos con derechos de administrador, puede utilizar el cuadro de diálogo de inicio del programa, llamado de forma predeterminada con el método abreviado de teclado Alt + F2.

    Digamos que tenemos que correr administrador de archivos Nautilus con derechos de administrador a través interfaz gráfica de usuario de alguna manera cambiar el contenido carpetas del sistema. Para hacer esto, ingrese el comando en el cuadro de diálogo del iniciador de aplicaciones

    gksudo nautilus

    gksudo puede sustituirse por gksu, y los usuarios de KDE deben escribir kdesu en lugar de gksudo. Se le pedirá que ingrese su contraseña, y si tiene derechos necesarios, Nautilus se ejecutará como administrador. Cualquier software gráfico se puede iniciar con derechos de administrador simplemente escribiendo en el cuadro de diálogo de inicio

    gksudo<имя_команды>

    Tenga mucho cuidado cuando trabaje en aplicaciones que se ejecutan con derechos de administrador. Podrá realizar cualquier operación sin ninguna advertencia del sistema, en particular, eliminar archivos del sistema lo que hace que el sistema sea inutilizable.

    Ejecutar programas con derechos de administrador en la terminal

    Para ejecutar un comando en la terminal como administrador, simplemente escriba sudo delante de él:

    sudo<команда>

    Se le pedirá que ingrese su contraseña. Ojo, la contraseña al entrar de ninguna manera no se muestra, esto es normal y se hace por motivos de seguridad, simplemente escriba hasta el final y presione Entrar. Después de ingresar la contraseña, el comando especificado se ejecutará como root.

    El sistema recuerda la contraseña ingresada por algún tiempo (mantiene abierta la sesión de sudo). Por lo tanto, es posible que las ejecuciones sudo posteriores no requieran la contraseña. Para asegurarse de que finalice una sesión de sudo, escriba un terminal

    Además, los errores relacionados con las tuberías en Linux son comunes. Al ejecutar un comando

    Sudo gato prueba.txt | grep texto > resultado.txt

    Con como root solo se ejecutará cat, por lo que el archivo resultado.txt no puede registrarse. Debe escribir sudo antes de cada comando o cambiar temporalmente a superusuario.

    Obtener derechos de superusuario para ejecutar múltiples comandos

    A veces se hace necesario ejecutar varios comandos seguidos con derechos de administrador. En este caso, puede convertirse temporalmente en superusuario con uno de los siguientes comandos:

    sudo-s sudo-i

    Después de eso, ingresará al modo de superusuario (con restricciones impuestas a través de la configuración de sudo), como lo indica el símbolo # al final del símbolo del sistema. Los datos del comando de acción son similares a su , sin embargo: sudo-s- no cambia el directorio de inicio a /root, el directorio de inicio sigue siendo el directorio de inicio del usuario que llamó sudo-s que suele ser muy conveniente. - sudo -i- también cambiará el directorio de inicio a /root.

    Para volver al modo de usuario normal, escriba exit o simplemente presione Ctrl + D.

    Usando la cuenta raíz tradicional y el comando su

    desbloquear cuenta root trae riesgos injustificados (al trabajar como root todo el tiempo, tiene 100,500 formas de "dispararse en el pie"), y también facilita que un atacante obtenga acceso a su computadora.

    Ubuntu 11.04 y anteriores

    Para iniciar sesión como root, simplemente establezca una contraseña para ello:

    raíz de contraseña sudo

    Luego, en la pantalla de inicio de sesión, haga clic en Otro... e ingrese el nombre de usuario (raíz) y la contraseña que configuró.

    Ubuntu 11.10 y anteriores

    Desde la versión 11.10, se instaló el administrador de inicio de sesión de lightdm, y manejar los inicios de sesión raíz es un poco más complicado.

    1. Configure la contraseña raíz. Escriba en la terminal:

    raíz de contraseña sudo

    2. Active el elemento "Ingrese su inicio de sesión". Escriba en la terminal:

    Gksu gedit /etc/lightdm/lightdm.conf

    Al final del archivo agregar:

    Saludo-mostrar-manual-login=true

    3. Reinicie lightdm. Escriba en la terminal:

    reiniciar servicio sudo lightdm

    Eso es todo, el elemento "Iniciar sesión" aparecerá en la pantalla de inicio de sesión. En el campo de inicio de sesión, ingrese "raíz", en el campo de contraseña, la contraseña que configuramos en la primera etapa.

    Para volver a bloquear la cuenta raíz, deberá revertir los cambios en la configuración de lightdm, así como bloquear la cuenta raíz con el comando en la terminal:

    sudo passwd -l raíz

    Configuración de sudo y permisos para ejecutar varios comandos

    sudo le permite permitir o denegar a los usuarios la ejecución de un conjunto específico de programas. Todos los ajustes relacionados con los derechos de acceso se almacenan en un archivo /etc/sudoers. Este no es un archivo ordinario. para editarlo necesario(por motivos de seguridad) use el comando

    sudo visudo

    Por defecto, dice que todos los miembros del grupo administración tener acceso completo a sudo , como lo indica la línea

    %admin TODO=(TODO) TODO

    Puede leer más sobre la sintaxis y las opciones de personalización de este archivo ejecutando

    Hombre sudoers

    Si comete un error al editar este archivo, es muy posible que pierda por completo el acceso a las funciones administrativas. Si esto sucede, entonces necesita iniciar en modo de recuperación, y automáticamente obtendrá derechos de administrador y podrá arreglar todo. Además, puede editar este archivo desde el LiveCD.

    Permitir que un usuario ejecute un comando sin ingresar una contraseña

    Para que el sistema no pida contraseña con ciertos comandos, es necesario en sudoers después de la línea # Especificación de alias de Cmnd agregue una línea donde, separados por comas, enumere los comandos deseados con la ruta completa (la ruta del comando se puede encontrar ejecutando qué nombre de comando:

    # Especificación de alias de Cmnd Cmnd_Alias ​​​​SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/reboot

    Y agregue la línea al final del archivo.

    Nombre de usuario ALL=(ALL) SIN CONTRASEÑA: SHUTDOWN_CMDS

    ¡Atención! Los pasos anteriores no cambian la necesidad de ingresar el comando sudo antes de su comando

    Creación de sinónimos (alias)

    Para no solo no ingresar una contraseña para sudo, sino también para no ingresar sudo en absoluto, haga lo siguiente: abra el archivo .bashrc ubicado en su directorio de inicio

    nano ~/bashrc

    y agregue las líneas al final del archivo

    alias reboot ="sudo reboot" alias poweroff ="sudo poweroff" alias pm-hibernate="sudo pm-hibernate" alias hibernate ="sudo pm-hibernate" alias shutdown ="sudo shutdown"

    Tiempo de validez de la contraseña ingresada

    Tal vez desee cambiar la cantidad de tiempo que sudo se ejecuta sin ingresar una contraseña. Esto se puede lograr fácilmente agregando algo como esto a /etc/sudoers (visudo):

    Valores predeterminados:foo timestamp_timeout=20

    Aquí sudo para el usuario Foo válido sin necesidad de introducir una contraseña durante 20 minutos. Si desea que Sudo siempre requiera una contraseña, establezca timestamp_timeout en 0.

    sudo no pide contraseña

    sudo sin contraseña es un agujero de seguridad monstruoso, cualquiera puede hacer cualquier cosa. Si lo permitió a propósito, devuélvalo urgentemente como estaba.

    Sin embargo, en algunos casos, sudo de repente deja de pedir una contraseña por sí solo. Si hace visudo , puede ver algo como esta línea que el usuario no parece haber agregado:

    TODO TODO=(TODO) SIN CONTRASEÑA:TODO

    Lo más probable es que esta línea catastrófica se haya agregado al instalar un programa como Connect Manager de MTS o Megafon. En este caso, debe cambiarse a una línea que permita que solo este Connect Manager se ejecute como root, algo como esto:

    Nombre de usuario ALL= NOPASSWD: /ruta/al/programa

    Hay otras soluciones al problema, una pequeña discusión.

    Como administrador de Linux, siempre he usado y sudo, Y su. Y administrador de sistema es muy importante que sepas la diferencia entre ellos. Para aquellos que no tienen una comprensión básica de la diferencia entre los dos, o que siempre los confunden, aquí hay una lista de 12 preguntas y respuestas (Preguntas y respuestas) que tienen como objetivo ayudarlo a comprender los puntos más finos de sudo y su.

    NOTA- Este artículo es específico solo para Ubuntu. Aunque parte de la información puede aplicarse a las distribuciones más populares.

    sudo contra su

    Esta serie de preguntas y respuestas debería aclarar algunos de los detalles de sudo vs su para muchos usuarios de Ubuntu.

    Q1. ¿Cómo se usan sudo y su? ¿Cuál es la diferencia entre ellos?

    Respuesta.sudo se usa para ejecutar algún comando con permiso de root. Lo interesante es que cuando usas sudo para un comando específico, el sistema le solicitará la contraseña del usuario actual. Después de ingresar la contraseña, el comando se ejecuta con privilegios de superusuario.

    Aquí hay un ejemplo:

    $ apt-get install skype E: No se pudo abrir el archivo de bloqueo /var/lib/dpkg/lock - open (13: Permiso denegado) E: No se pudo bloquear el directorio de administración (/var/lib/dpkg/), ¿eres root? ? $ sudo apt-get install skype password for mylinuxbook: Leyendo listas de paquetes... Listo Construyendo árbol de dependencias Leyendo información de estado... Listo... ...

    Como puede ver, primero intenté instalar Skype usando el comando apt-get pero tengo error de permiso denegado. Luego usé sudo junto con el mismo sistema de comando y contraseña para el usuario de mylinuxbook. Después de ingresar la contraseña correcta, el comando se completó con éxito.

    Por otro lado, su se usa para cambiar cualquier usuario. Configurar la clave el usuario correspondiente está habilitado. Si su se usa sin opciones, salta a la cuenta de usuario raíz. En este caso, el sistema solicita la contraseña de superusuario.

    Aquí hay un ejemplo:

    $ su mylinuxbook Contraseña: [correo electrónico protegido]:~$

    En el ejemplo anterior, usé su para cambiar a la cuenta de usuario de mylinuxbook y después de ingresar la contraseña de mylinuxbook, pude hacerlo.

    Aquí hay otro ejemplo:

    $ su Contraseña: su: Fallo de autenticación

    En el ejemplo anterior, demandé para rootear la cuenta del usuario normal, pero no pudo porque no tenía configurada la contraseña de root. Las distribuciones como Ubuntu no tienen contraseñas de root configuradas por defecto. Una vez configurado, puede utilizar esta contraseña.

    Q2. ¿Qué pasa si no quiero configurar una contraseña de administrador en mi Ubuntu pero aún quiero cambiar a superusuario?

    Respuesta. En este caso, puede probar el comando " sudo su". Aquí hay un ejemplo:

    $ sudo su contraseña para mylinuxbook: [correo electrónico protegido]:/inicio/mylinuxbook#

    Una vez que se ha utilizado sudo para iniciar su, el sistema solicita la contraseña del usuario actual, no la contraseña del superusuario. Tan pronto como se ingresó, la cuenta corriente se transfirió a la cuenta.

    Q3. ¿Qué pasa si quiero usar su para navegar a otras cuentas de usuario pero no quiero recordar todas y cada una de las contraseñas de los usuarios?

    Respuesta. Bueno, en ese caso, solo use el comando su, ingrese la contraseña de administrador y cambie a la cuenta. Desde aquí, usando su, puede cambiar a cualquier cuenta de usuario sin usar contraseñas.

    Q4. Si sudo se usa para hacer algo con privilegios de superusuario, ¿por qué se necesita la contraseña del usuario actual y no la contraseña del superusuario?

    Respuesta. Bueno, en realidad no es que cualquier usuario normal pueda hacer sudo y ejecutar comandos que requieren privilegios de superusuario. Usted, como usuario, debe ser Sudoer Mismo. Esto significa que debe tener privilegios para usar sudo. Si es un sudoer válido, el sistema solo le pide una contraseña para asegurarse de que comprende que está haciendo algún trabajo que requiere privilegios de root, y debe verificar todo antes de hacerlo.

    Ahora viene la cuestión de los sudoers. Cómo convertirse en un usuario Sudoer? Un usuario puede convertirse en sudoer si se agrega al grupo sudo. Aquí hay un ejemplo:

    $ sudo agregar usuario sudo

    Simplemente reemplácelo con el nombre de usuario real de la cuenta. Tenga en cuenta que anteriormente (antes de Ubuntu 12.04) el grupo tenía que llamarse administración pero esto no es necesario ahora.

    Puedes usar el comando " grupo" para verificar todos los grupos que tienen este usuario. Aquí hay un ejemplo:

    $ grupos mylinuxbook mylinuxbook: mylinuxbook adm cdrom sudo dip plugdev lpadmin sambashare

    Entonces ves que el usuario " mylinuxbook" es miembro de todos estos grupos, incluidos los grupos sudo y, por lo tanto, sudoer.

    P5. Noté que tan pronto como usé sudo, mis derechos de root persisten durante mucho tiempo, aunque después de un tiempo todo vuelve a la normalidad. ¿Qué es esto?

    Respuesta. Ubuntu recuerda la contraseña de sudo durante unos 15 minutos. Esto significa que una vez que haya utilizado sudo para ejecutar un comando, el sistema no le solicitará una contraseña si ejecuta otros comandos que requieren privilegios de superusuario para ejecutarse. Aunque tendrás que usar " sudo antes de cada comando.

    P6. ¿Cuáles son las ventajas de sudo sobre su?

    Respuesta. Sudo tiene muchas ventajas sobre su.

    Aquí está la lista:

  • Sudo se asegura de que existan privilegios para un comando específico (o para un período de tiempo específico) y no para toda la sesión, ya que esto puede provocar un abuso accidental de los privilegios de superusuario.
  • Puede usar sudo para restringir los permisos de usuario. Esto es útil cuando no desea que el usuario tenga control sobre todos los derechos de superusuario cuando ejecuta suda.
  • Hay un archivo de registro (auth.log) que se mantiene para cada sudoer. Este archivo contiene información sobre los comandos que se ejecutaron usando sudo, su tiempo de ejecución. Esto ayuda al administrador a realizar un seguimiento incluso de los usuarios de confianza (sudoers).
  • La ventaja más importante es que suda requiere su propia contraseña de usuario en lugar de la contraseña de superusuario para iniciar sesión en suda. Esto ayuda a mantener privada la contraseña raíz y no hay necesidad de cambiarla incluso cuando el usuario (sudoer) se va.
  • P7. Cualquier usuario puede realizar operaciones sudo?

    Respuesta. No, solo los usuarios de confianza o sudoers pueden realizar operaciones de sudo. Aquí está la página oficial que describe cómo y qué puede hacer un usuario sudoer.

    P8. Estoy interesado en su. ¿Cómo puedo personalizar el uso de su de una manera que logre una funcionalidad similar a la de suda?

    Respuesta. Si está ejecutando su, eso significa que ya tiene configurada la contraseña de root. Para lograr una funcionalidad similar a sudo, es decir, para ejecutar solo un comando con privilegios de root usando su, todo lo que necesita hacer es usar la opción -C del comando su.

    Aquí hay un ejemplo:

    $ su -c "apt-get install skype" Contraseña:

    Simplemente ingrese la contraseña y solo este comando funcionará con privilegios de superusuario. Aunque es lo mismo que sudo, la única diferencia es que debe ingresar la contraseña de root en lugar de la contraseña del usuario actual.

    P9. Trabajo con sudo. ¿Cómo puedo modificar el uso de sudo para lograr la misma funcionalidad que su?

    Respuesta. Para lograr su funcionalidad a través de sudo, pruebe la opción -i comandos sudo.

    Aquí hay un ejemplo:

    $ sudo -i contraseña para mylinuxbook: [correo electrónico protegido]:~#

    Ves que con " sudo -i", se realizó la transición a la cuenta raíz, aunque se ingresó la contraseña para el usuario actual (mylinuxbook en este caso).

    P10. La contraseña raíz de mi cuenta aún no ha sido activada. ¿Puedo usar sudo para habilitar la contraseña de superusuario?

    Respuesta. Para activar la contraseña para el superusuario, puede usar el comando Contraseña de la siguiente manera:

    $ sudo contraseña raíz

    Este comando requiere acceso de root, por lo que deberá usar sudo.

    P12. ¿Puedo usar sudo para otorgar permisos especiales a los usuarios?

    Respuesta. Archivo de configuración para sudo- /etc/sudoers. No se puede editar manualmente con un editor. Para ello se recomienda utilizar el comando Visudo.

    Aquí está el comando exacto:

    $ sudo visudo

    y esto es lo que obtienes:

    Este comando abrirá un archivo temporal /etc/sudoers.tmp en el editor nano para su edición. Visudo se asegura de que no haya conflicto cuando se editan varias instancias del mismo archivo.

    Para entender cómo otorgar derechos limitados, comprenda el diseño de este archivo de configuración, .

    Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
    COMPARTIR: