Menú
Está libre
registro
el principal  /  EN/ Ubuntu Server: derechos de usuario administrativo. Administración de usuarios de Ubuntu 16.04 agregando usuario raíz

Ubuntu Server: derechos de usuario administrativo. Administración de usuarios de Ubuntu 16.04 agregando usuario raíz

¡Todos bienvenidos!

En este artículo, le mostraré cómo agregar un nuevo usuario, cambiar sus permisos o cambiar la contraseña del usuario en Linux Ubuntu. Y también cómo crear "Cuentas" usando una utilidad gráfica o desde la línea de comandos.

Veamos la primera forma de agregar una nueva cuenta.

A través del panel de inicio rápido, abra "Configuración del sistema" y seleccione "Cuentas".

Ahora necesita obtener privilegios adicionales. Para hacer esto, presione el botón "Desbloquear".

Ingrese su contraseña y haga clic en el botón "Autenticar"

Para agregar un nuevo usuario, haga clic en el "+"

En el formulario que se abre, seleccione el tipo de cuenta. En esta utilidad estándar, puede crear dos tipos de usuarios:

  • Usual
  • Administrador

En la mayoría de los casos, el tipo de cuenta "Normal" es suficiente. Pero si en el futuro resulta que este usuario necesita privilegios adicionales, entonces será suficiente con volver a la utilidad "Cuentas" y cambiar el tipo de cuenta.

Seleccione el tipo de cuenta "Normal", agregue un nombre de usuario y haga clic en el botón "Agregar".

Tenemos nuestra nueva cuenta, pero no se activa hasta que se establece una contraseña.

Habilitamos la nueva cuenta haciendo clic en el elemento "Contraseña":

Usando la pista, creamos una contraseña "segura" y luego la volvemos a ingresar en el campo "Confirmar contraseña". Activamos la nueva cuenta haciendo clic en el botón "Cambiar".

Para eliminar una cuenta innecesaria, debe seleccionarla y hacer clic en el signo "-"

Se abrirá una ventana para seleccionar un método de eliminación.

Hay dos opciones:

  • eliminar el directorio de inicio
  • o con su conservación.
    • Si los archivos de este usuario ya no son necesarios, haga clic en "Eliminar archivos" ./ p>

      Se han eliminado la cuenta y todos los archivos del directorio de inicio.

      Ahora veamos la segunda forma de agregar un nuevo usuario.

      Abramos una terminal y ejecutemos el siguiente comando.

      sudo adduser newusers

      Para obtener privilegios adicionales, debe ingresar la contraseña de usuario y presionar la tecla "Enter" en el teclado.

      Vuelva a ingresar la contraseña y presione la tecla "Enter" en el teclado.

      Agregamos la información necesaria y si todo es correcto, entonces lo confirmamos escribiendo "Y" y presionamos la tecla "Enter" en el teclado.

      Pero si necesitamos un usuario con derechos de "Administrador", entonces necesitamos ejecutar un comando más y agregar el usuario a los grupos necesarios (adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare).

      sudo usermod -a -G adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare newusers

      Para ver a qué grupos pertenece el usuario, ejecute el siguiente comando.

      sudo id newusers

      También es muy fácil cambiar la contraseña de cualquier usuario. Escribimos el comando passwd y el nombre de usuario.

      sudo passwd newusers

      Ingrese la contraseña para el nuevo usuario y presione la tecla "Enter" en el teclado.

      Luego, vuelva a ingresar la contraseña y presione la tecla "Enter" en el teclado. Si todo se hizo correctamente, debería ver la entrada "contraseña actualizada correctamente". Y ahora debe ingresar una nueva contraseña para iniciar sesión en esta cuenta.

      También es muy fácil eliminar un usuario innecesario y su carpeta de inicio. Para hacer esto, escribimos

      sudo userdel -r newusers

      Desafortunadamente, el comando anterior no muestra los resultados de su trabajo. Pero para verificar si el usuario newusers todavía está en nuestro sistema, podemos usar otro comando.

      sudo id newusers

      Como resultado de su ejecución, vemos que no existe tal usuario en el sistema.

      Examinamos cómo puede agregar un nuevo usuario, cambiar la contraseña, cambiar sus derechos agregando a grupos y también cómo eliminar un usuario. Y si hay preguntas incomprensibles sobre este tema y hay sugerencias, les pido que las escriban en los comentarios. ¡Chau a todos!

Como muestra la respuesta del lector, el tema de la separación de los derechos administrativos en Ubuntu aún es poco entendido por la mayoría de los administradores novatos, por lo que decidimos aclarar este tema con este material. Por lo tanto, si no sabe en qué se diferencia su de sudo, dónde escondió la raíz, etc., etc., es hora de comenzar a estudiar nuestro artículo.

Comencemos con una pequeña digresión. El sistema de derechos administrativos de Linux tiene sus raíces en el sistema operativo Unix y, por lo tanto, tiene mucho en común con otros sistemas similares a Unix: BSD, Solaris, MacOS. A su vez, las diferentes distribuciones tienen sus propias peculiaridades de la implementación de ciertos puntos, por lo que daremos ejemplos específicos respecto a la familia Ubuntu, sin embargo, conocer las reglas generales te permitirá entender fácilmente el entorno de cualquier otro SO tipo Unix. .

El usuario tiene todos los derechos administrativos en Linux. raíz, que es imposible de restringir en derechos, por lo tanto, el trabajo diario en nombre de este usuario es altamente indeseable: las acciones descuidadas del usuario pueden dañar el sistema, y ​​comprometer esta cuenta le dará al atacante acceso ilimitado al sistema.

Por lo tanto, en Linux, se adopta un esquema diferente, todos los usuarios, incluidos los administradores, trabajan con una cuenta limitada y utilizan uno de los mecanismos de elevación para realizar acciones administrativas. Para hacer esto, puede elevar los derechos usando la utilidad sudo o inicie sesión como superusuario (root "a) sin finalizar la sesión actual usando el comando su... Mucha gente confunde erróneamente estos dos mecanismos, por lo que los analizaremos con más detalle.

Equipo su le permite iniciar sesión como un usuario diferente (no necesariamente root) sin finalizar su sesión actual. Entonces el comando:

Su petrov

le permitirá iniciar sesión como usuario petrov, el entorno de usuario (carpeta de inicio) también se cambiará para pertenecer a este usuario.

Equipo su sin especificar un nombre de usuario, le permite iniciar sesión con una cuenta raíz"R. Sin embargo, este método tiene un inconveniente importante: para iniciar sesión en nombre de otro usuario, debe conocer su contraseña. Si tiene varios administradores, cada uno de ellos conocerá la contraseña de superusuario y usted no podrá restringir sus derechos.

Además, no es seguro conocer la contraseña de superusuario y la posibilidad de iniciar sesión con su nombre en caso de que se produzca un compromiso puede llevar a una pérdida total del control del sistema.

¿Qué sucede si intentamos elevar los derechos en Ubuntu de esta manera? Fallaremos porque no conocemos la contraseña del usuario. raíz, al mismo tiempo, nadie nos molesta en iniciar sesión como un usuario diferente.

"¡Esperar!" - otro usuario dirá, - "y no es el primer usuario creado, que especificamos durante la instalación, ¿obtiene el primer usuario creado?" De hecho, las tareas administrativas se pueden realizar solo en nombre del usuario creado durante la instalación; falla.

Aquí nos acercamos al segundo mecanismo de elevación de derechos: la utilidad sudo... Sin embargo, antes de proceder a estudiarlo, conviene aclarar: los derechos de superusuario (root) en Ubuntu pertenecen a la cuenta root, la cual está deshabilitada por defecto. Por lo tanto, eleve los derechos usando el comando su no parece posible.

El principal mecanismo de elevación en Ubuntu es la utilidad sudo... Esta utilidad le permite elevar los derechos al nivel de superusuario para el comando que se está ejecutando, y no necesita saber la contraseña de superusuario, el usuario debe ingresar su propia contraseña. Después de eso, la utilidad verificará si este usuario tiene derecho a ejecutar este comando en este host con derechos de superusuario y, si las verificaciones son exitosas, lo ejecutará.

¡Es importante! La principal diferencia su desde sudo sirve eso su le permite cambiar el usuario actual a root, lo que requiere una cuenta de superusuario activa en el sistema y el conocimiento de la contraseña, sudo le permite elevar los derechos para el comando ejecutado sin especificar la contraseña de superusuario, el usuario debe ingresar su propia contraseña, iniciar sesión como root con estas credenciales no funcionará.

Otra circunstancia importante, al usar un pipeline o redirección con derechos de superusuario, solo se ejecutará la primera parte del comando, por ejemplo, en la construcción:

Sudo team1 | equipo2

solo como root se ejecutará equipo1... Y el equipo

Sudo cat sources.list> /etc/apt/sources.list

dará un error de derechos de acceso desde la entrada en /etc/apt/sources.list sucederá con los derechos de un usuario habitual.

Para ejecutar combinaciones complejas de comandos, puede cambiar al modo de superusuario con el comando

que es similar a la elevación del equipo su, sin embargo, esto no cambiará el entorno del usuario y el directorio del usuario actual se utilizará como inicio, lo cual es conveniente y seguro. Cada uno de los administradores solo tendrá acceso a su directorio de inicio.

Ahora es el momento de averiguar quién tiene derecho a aprovechar las oportunidades. sudo y en qué medida. El archivo es responsable de la configuración de esta utilidad. / etc / sudoers, a pesar de que se trata de un archivo de configuración normal, se recomienda encarecidamente utilizar el comando para editarlo:

Sudo visudo

Este comando bloquea el archivo y verifica la sintaxis; de lo contrario, corre el riesgo de perder el acceso administrativo a la PC debido a un error tipográfico.

La sintaxis de este archivo es bastante simple. Por ejemplo, al final del archivo hay una entrada:

% admin TODOS = (TODOS) TODOS

Esto significa que los usuarios del grupo administración puede ejecutar cualquier comando en cualquier host, en nombre de cualquier usuario. Como podemos verificar fácilmente con el comando grupos en nuestro caso usuario andrey pertenece al grupo administración y el usuario petrov No.

Pero todas las ventajas de esta utilidad radican en la posibilidad de configurar de forma flexible los parámetros para la obtención de derechos en cada caso concreto. Por ejemplo:

Petrov ubuntu-lts = (andrey) TODOS

Esta línea permite al usuario petrov ejecutar cualquier comando en el host ubuntu-lts en nombre del usuario andrey... Al especificar comandos, debe especificar la ruta completa a ellos, puede averiguarlo usando el comando cuales

Por ejemplo, queremos permitir que los usuarios petrov y sidorov apague y reinicie la computadora y elimine tareas. En este caso, estos comandos no deberían requerir ingresar una contraseña.

Otra buena característica de la utilidad sudo es la creación de alias, por lo que en nuestro caso agregaremos a / etc / sudoers las siguientes líneas:

User_Alias ​​USERGROUP1 = petrov, sidorov
Cmnd_Alias ​​CMDGROUP1 = / bin / kill, / sbin / reboot, / sbin / shutdown

Con esto hemos creado dos alias USERGROUP1 donde incluimos a los usuarios que necesitábamos y CMDGROUP1 con un conjunto de los comandos necesarios, posteriormente podemos editar solo los alias, sin afectar todas las reglas donde se pueden utilizar. Luego agrega la regla:

USERGROUP1 TODOS = (TODOS) NOPASSWD: CMDGROUP1

que permitirá a los usuarios enumerados en el alias especificado ejecutar en cualquier host en nombre de cualquier comando de usuario del alias dado sin ingresar una contraseña.

Además de estos dos, los alias también están disponibles para el nombre de host y los usuarios en cuyo nombre se permite ejecutar comandos, por ejemplo:

Host_Alias ​​WWW = servidor web1, servidor web2
Runas_Alias ​​WWW = www-data, www-desarrollador

USERGROUP1 WWW = (WWW) TODOS

El conjunto de registros dado permitirá a los usuarios ingresar USERGROUP1 ejecutar cualquier comando en nombre de los usuarios www-datos y www-desarrollador en los servidores web de la empresa.

Finalmente, veamos qué hacer si aún se necesita la cuenta de root. Es simple, para habilitarlo, solo necesita establecer una contraseña:

Sudo passwd root

Puede bloquear la cuenta de superusuario nuevamente con el comando:

Sudo passwd -l root

Recuerde que todas las tareas administrativas en Ubuntu se pueden realizar usando la utilidad sudo, ¡así que no habilite la cuenta de root a menos que realmente lo necesite!

Como puede ver, Ubuntu tiene amplias capacidades de administración de derechos administrativos, lo que le permite distribuir de manera flexible los derechos entre varios administradores, así como brindar la capacidad de elevar los derechos a algunos usuarios y hacerlo de manera eficiente y segura.

3 de mayo de 2016 12:20 27,946 vistas | sin comentarios

La gestión de usuarios es una de las habilidades más importantes de un administrador de sistemas Linux. Normalmente, en un sistema nuevo, solo hay un usuario predeterminado, root.

La cuenta de root tiene amplios privilegios y es muy flexible, pero se desaconseja ejecutar el servidor como root de forma permanente. El hecho es que, con derechos absolutos, el usuario root puede causar accidentalmente un daño irreparable al sistema y al servidor. Por lo tanto, para el trabajo diario, debe crear un usuario adicional con privilegios normales y luego otorgarle derechos de superusuario. También puede crear cuentas adicionales para otros usuarios que deben tener acceso al servidor.

Esta guía le enseñará cómo crear nuevas cuentas de usuario, transferir derechos de sudo y eliminar usuarios.

Agregar un usuario

Para agregar un nuevo usuario a la sesión raíz, ingrese:

Mientras está en una sesión de usuario no root con acceso sudo, puede agregar un nuevo usuario usando el comando:

sudo adduser newuser

El comando sugerirá:

  • Establezca y confirme una contraseña.
  • Ingrese información adicional sobre el usuario. Esto es opcional; para aceptar la información predeterminada, simplemente presione Enter.
  • Confirme que la información proporcionada sea correcta (presione Entrar).

¡El nuevo usuario está listo! Ahora puedes conectarte al servidor usándolo.

Configurar permisos de sudo

Para poder usar la nueva cuenta para realizar tareas de administrador, debe otorgar al usuario acceso al comando sudo. Esto se puede hacer de dos formas:

  1. Agregar usuario al grupo sudo
  2. Edite la configuración de sudo en el archivo / etc / sudoers

Agregar usuario al grupo sudo

En Ubuntu 16.04, todos los usuarios del grupo sudo tienen acceso al comando sudo de forma predeterminada.

Para saber a qué grupos pertenece el nuevo usuario, ingrese:

El comando regresará:

newuser: newuser

De forma predeterminada, cada nuevo usuario del sistema se incluye solo en el grupo del mismo nombre. Para agregar un usuario a un grupo, ingrese:

usermod -aG sudo newuser

La bandera –aG agrega al usuario a los grupos listados.

Probando la configuración

Ahora debemos asegurarnos de que el nuevo usuario tenga acceso al comando sudo.

De forma predeterminada, los comandos en una nueva sesión de usuario se ejecutan así:

Para ejecutar un comando como administrador, agregue sudo al comienzo del comando:

sudo some_command

En este caso, el sistema solicitará la contraseña del usuario actual.

Editando el archivo / etc / sudoers

Una forma alternativa de extender los privilegios del usuario es editar el archivo sudoers. Para hacer esto, use el comando visudo, que le permite abrir el archivo / etc / sudoers en un editor y especificar explícitamente los privilegios de cada usuario del sistema.

Recomendamos editar el archivo sudoers exclusivamente usando visudo, ya que este comando bloquea múltiples ediciones simultáneas y realiza una verificación de contenido antes de sobrescribir el archivo. Esto evita errores en la configuración de sudo que podrían conducir a la pérdida de privilegios.

Si está en una sesión raíz, ingrese:

En una sesión de usuario no root con acceso sudo, ingrese:

Normalmente, visudo abre / etc / sudoers en un editor vi, lo que puede resultar complicado para los principiantes. De forma predeterminada, visudo usa el editor nano más familiar en las nuevas instalaciones de Ubuntu. Utilice las teclas de flecha para mover el cursor. Encuentra la línea:

root TODOS = (TODOS: TODOS) TODOS

Copie esta línea y péguela a continuación, reemplazando root con el nombre del usuario al que desea otorgar privilegios de superusuario.

root TODOS = (TODOS: TODOS) TODOS
newuser TODOS = (TODOS: TODOS) TODOS

Agregue una línea como esta para cada usuario que necesite privilegios elevados. Guarde y cierre el archivo.

Eliminar usuarios

Las cuentas innecesarias se pueden eliminar.

Para eliminar a un usuario que deja sus archivos, ingrese:

como root
deluser newuser
como usuario normal con privilegios elevados:
sudo deluser newuser

Para eliminar un usuario junto con su directorio de inicio, use:

en la sesión del usuario root
deluser --remove-home newuser
en una sesión de usuario con privilegios ampliados:
sudo deluser --remove-home newuser

Si el usuario remoto tenía derechos de superusuario, debe revocar estos derechos editando el archivo:

visudo
O
sudo visudo
root TODOS = (TODOS: TODOS) TODOS
newuser ALL = (ALL: ALL) ALL # eliminar esta línea

Si la línea permanecía en el archivo y el usuario con el mismo nombre aparecía en el sistema, recibiría privilegios extendidos automáticamente. Ahora eso no sucederá.

Conclusión

La gestión de usuarios es una habilidad necesaria al administrar un servidor Ubuntu 16.04. Le permitirá separar a los usuarios y darles solo el acceso que necesitan para trabajar.

Para obtener más información sobre cómo configurar sudo, consulte nuestro.

Etiquetas :,

Dado que Linux es un sistema multiusuario, la cuestión de organizar el control de acceso a archivos y directorios es una de las cuestiones esenciales que debe resolver el sistema operativo. Los mecanismos de control de acceso desarrollados para el sistema UNIX en los años 70 (quizás, sin embargo, fueron propuestos por alguien antes), son muy simples, pero resultaron tan efectivos que existen desde hace más de 30 años y hasta el día de hoy cumplir con éxito los retos a los que se enfrentan las tareas.

Los mecanismos de control de acceso se basan en nombres de usuario y nombres de grupos de usuarios. Ya sabe que en Linux, cada usuario tiene un nombre único con el que inicia sesión (inicia sesión). Además, se crean varios grupos de usuarios en el sistema y cada usuario puede incluirse en uno o varios grupos. El superusuario crea y elimina grupos, también puede cambiar la composición de los miembros de un grupo en particular. Los miembros de diferentes grupos pueden tener diferentes derechos para acceder a los archivos, por ejemplo, el grupo Administradores puede tener más derechos que el grupo Programadores.

El inodo de cada archivo contiene el nombre del supuesto propietario del archivo y el grupo que tiene derechos sobre ese archivo. Inicialmente, cuando se crea un archivo, el usuario que creó el archivo se declara propietario. Más precisamente, el usuario en cuyo nombre se inicia el proceso que crea el archivo. El grupo también se asigna cuando se crea el archivo, por el ID de grupo del proceso que crea el archivo. El propietario y el grupo del archivo se pueden cambiar en el curso del trabajo posterior utilizando los comandos chown y chgrp(más sobre ellos se discutirá más adelante).

Ahora ejecutemos el comando nuevamente ls -l... Pero démosle como parámetro adicional el nombre de un archivo específico, por ejemplo, un archivo que establece el comando en sí ls... (Por cierto, preste atención a esta posibilidad del comando ls -l- obtener información sobre un archivo específico y no sobre todos los archivos del directorio a la vez).

$ ls -l / bin / ls

Puede ver que, en este caso, el archivo es propiedad del usuario raíz y del grupo raíz. Pero ahora, en la salida de este comando, estamos más interesados ​​en el primer campo, que determina el tipo de archivo y los derechos de acceso al archivo. Este campo en el ejemplo dado está representado por la cadena de caracteres -rwxr-xr-x... Estos símbolos se pueden dividir aproximadamente en 4 grupos.

El primer grupo, que consta de un solo carácter, define el tipo de archivo. Este símbolo, de acuerdo con los posibles tipos de archivo discutidos en la sección anterior, puede tomar los siguientes valores:

    - = - archivo regular;

    d =- directorio;

    b =- archivo de dispositivo de bloque;

    c =- archivo de dispositivo de caracteres;

    s =- socket de dominio (socket);

    p =- tubería con nombre (tubería);

    l =- enlace simbólico (enlace).

A esto le siguen tres grupos de tres caracteres cada uno, que determinan los derechos de acceso al archivo, respectivamente, para el propietario del archivo, para el grupo de usuarios asociados a este archivo y para todos los demás usuarios del sistema. En nuestro ejemplo, los permisos para el propietario se definen como rwx, lo que significa que el propietario ( raíz) tiene derecho a leer el archivo (r), escribir en este archivo (w) y ejecutar el archivo (x). Sustituir cualquiera de estos símbolos por un guión supondrá la privación del derecho correspondiente al usuario. En el mismo ejemplo, vemos que todos los demás usuarios (incluidos los que están incluidos en el grupo raíz) están privados del derecho a escribir en este archivo, es decir, no pueden editar el archivo y, en general, modificarlo de alguna manera.

En términos generales, los derechos de acceso y la información sobre el tipo de archivo en los sistemas UNIX se almacenan en inodos en una estructura separada que consta de dos bytes, es decir, 16 bits (esto es natural, porque la computadora opera con bits, no r, w, x) . Cuatro de estos 16 bits están reservados para el registro de tipo de archivo codificado. Los siguientes tres bits establecen las propiedades especiales de los archivos ejecutables, de los que hablaremos un poco más adelante. Finalmente, los 9 bits restantes determinan los permisos del archivo. Estos 9 bits se dividen en 3 grupos de tres bits. Los primeros tres bits establecen los derechos de usuario, los siguientes tres bits son los derechos de grupo, los últimos 3 bits definen los derechos de todos los demás usuarios (es decir, todos los usuarios, excepto el propietario y el grupo de archivos).

En este caso, si el bit correspondiente tiene un valor de 1, entonces se concede el derecho, y si es igual a 0, no se concede el derecho. En la notación simbólica de derechos, uno se reemplaza por el símbolo correspondiente (r, w o x) y 0 se representa con un guión.

El derecho a leer (r) un archivo significa que el usuario puede ver el contenido del archivo usando varios comandos de visualización, como el comando más o usando cualquier editor de texto. Pero al editar el contenido del archivo en un editor de texto, no podrá guardar los cambios en el archivo en el disco si no tiene permiso de escritura (w) en este archivo. El permiso de ejecución (x) significa que puede cargar un archivo en la memoria e intentar ejecutarlo como un programa ejecutable. Por supuesto, si en realidad el archivo no es un programa (o un script de shell), entonces no será posible lanzar este archivo para su ejecución, pero, por otro lado, incluso si el archivo es realmente un programa, pero el el permiso de ejecución para él no está establecido, entonces tampoco se iniciará.

¡Así que descubrimos qué archivos son ejecutables en Linux! Como puede ver, la extensión del nombre del archivo no tiene nada que ver con eso, todo se determina configurando el atributo "ejecutable", ¡y es posible que el derecho de ejecución no se otorgue a todos!

Si ejecuta el mismo comando ls -l, pero como último argumento, especifique no el nombre del archivo, sino el nombre del directorio, veremos que los permisos también están definidos para los directorios, y están especificados por los mismos símbolos rwx. Por ejemplo, ejecutando el comando ls -l /, veremos que la línea corresponde al directorio bin:

Naturalmente, en relación con los directorios, la interpretación de los conceptos "leer correctamente", "escribir correctamente" y "ejecutar correctamente" cambia un poco. El acceso de lectura a los directorios es fácil de entender cuando recuerda que un directorio es simplemente un archivo que contiene una lista de archivos en un directorio determinado. Por lo tanto, si tiene derecho a leer el directorio, puede ver su contenido (esta misma lista de archivos en el directorio). El derecho a escribir también es comprensible: con este derecho, puede crear y eliminar archivos en este directorio, es decir, puede simplemente agregar o eliminar una entrada en el directorio que contiene el nombre de un archivo y los enlaces correspondientes. El derecho a ejecutar es menos intuitivo. En este caso, significa el derecho a ir a este directorio. Si usted, como propietario, desea dar acceso a otros usuarios para ver un archivo en su directorio, debe darles acceso al directorio, es decir, darles "el derecho de ejecutar el directorio". Además, el usuario debe tener permiso de ejecución para todos los directorios por encima de este directorio en el árbol. Por lo tanto, en principio, para todos los directorios, el derecho de ejecución está establecido de forma predeterminada, tanto para el propietario y el grupo, como para todos los demás usuarios. Y, si desea cerrar el acceso al directorio, privar a todos los usuarios (incluido el grupo) del derecho a ingresar a este directorio. ¡No se prive de este derecho, de lo contrario tendrá que ponerse en contacto con el superusuario! (Nota 11)

Después de leer el párrafo anterior, puede parecer que el derecho a leer el directorio no es nada nuevo en comparación con el derecho a ejecutar. Sin embargo, todavía existe una diferencia en estos derechos. Si solo establece el derecho de ejecución, podrá ingresar al directorio, pero no verá un solo archivo allí (este efecto es especialmente evidente si usa algún tipo de administrador de archivos, por ejemplo, el programa Midnight Commander) . Si tiene derecho a acceder en cualquiera de los subdirectorios de este directorio, puede acceder a él (con el comando CD), pero, como dicen "a ciegas", de la memoria, porque no verá una lista de archivos y subdirectorios del directorio actual.

El algoritmo para verificar los derechos de los usuarios cuando acceden a un archivo se puede describir de la siguiente manera. El sistema primero verifica si el nombre de usuario es el mismo que el propietario del archivo. Si estos nombres coinciden (es decir, el propietario está accediendo a su archivo), se verifica si el propietario tiene los derechos de acceso adecuados: leer, escribir o ejecutar (no se sorprenda, el superusuario puede revocar algunos de los derechos y el propietario del archivo). Si existe tal derecho, entonces se permite la operación correspondiente. Si el propietario no tiene los derechos requeridos, la verificación de los derechos otorgados a través del grupo o mediante el grupo de atributos de acceso para otros usuarios ni siquiera se verifica, y el usuario recibe un mensaje de que la acción solicitada no se puede realizar (generalmente algo como "Permiso denegado").

Si el nombre del usuario que accede al archivo no coincide con el nombre del propietario, entonces el sistema verifica si el propietario pertenece al grupo que está asociado a este archivo (de aquí en adelante simplemente lo llamaremos el grupo del archivo). Si pertenece, los atributos del grupo se utilizan para determinar si se puede acceder al archivo y se ignoran los atributos del propietario y de todos los demás usuarios. Si el usuario no es el propietario del archivo y no es miembro del grupo de archivos, sus derechos están determinados por los atributos de otros usuarios. Por lo tanto, el tercer grupo de atributos que determina los permisos de archivos se aplica a todos los usuarios excepto al propietario del archivo y a los usuarios del grupo de archivos.

Para cambiar los derechos de acceso a un archivo, use el comando chmod... Se puede utilizar de dos formas. En la primera opción, debes indicar explícitamente a quién le estás dando qué derecho o a quién estás privando de este derecho:

$ chmod wXp nombre de archivo

donde en lugar del símbolo w sustituido

    o el símbolo tu(es decir, el usuario propietario);

    o gramo(Grupo);

    o o(todos los usuarios no incluidos en el grupo al que pertenece este archivo);

    o a(todos los usuarios del sistema, es decir, el propietario, el grupo y todos los demás).

En lugar de X se pone:

    o + (otorgamos el derecho);

    o - (privamos del derecho correspondiente);

    o = (establezca los derechos especificados en lugar de los existentes),

En lugar de pag- un símbolo que denota el derecho correspondiente:

    r(leyendo);

    w(grabación);

    X(rendimiento).

A continuación, se muestran algunos ejemplos del uso del comando chmod:

$ chmod a + x nombre_archivo

concede a todos los usuarios del sistema el derecho a ejecutar este archivo.

$ chmod go-rw nombre_archivo

elimina el permiso de lectura y escritura para todos excepto para el propietario del archivo.

$ chmod ugo + rwx nombre_archivo

otorga a todos permisos de lectura, escritura y ejecución.

Si omitimos la indicación de a quién se le concede este derecho, significa que estamos hablando de todos los usuarios en general, es decir, en lugar de $ chmod a + x nombre_archivo

se puede escribir simplemente

$ chmod + x nombre_archivo

La segunda opción para configurar el comando. chmod(se usa con más frecuencia) se basa en la representación digital de derechos. Para hacer esto, codificamos el carácter r con el número 4, el carácter w con el número 2 y el carácter x con el número 1. Para otorgar a los usuarios un cierto conjunto de derechos, es necesario agregar los números correspondientes. . Habiendo obtenido así los valores digitales necesarios para el propietario del archivo, para el grupo de archivos y para todos los demás usuarios, configuramos estos tres dígitos como argumento para el comando chmod(colocamos estos números después del nombre del comando antes del segundo argumento, que especifica el nombre del archivo). Por ejemplo, si necesita ceder todos los derechos al propietario (4 + 2 + 1 = 7), el derecho a leer y escribir al grupo (4 + 2 = 6), y no ceder ningún derecho al resto, entonces deberías dar el siguiente comando:

$ chmod 760 nombre_archivo

Si está familiarizado con la codificación binaria de dígitos octales, entonces comprenderá que los dígitos después del nombre del comando en esta forma de su representación no son más que la notación octal de los mismos 9 bits que establecen los derechos para el propietario del archivo. grupo de archivos y para todos los usuarios.

Cambiar los permisos de archivo usando el comando chmod solo puede ser el propietario del archivo o el superusuario. Para poder cambiar los derechos de un grupo, el propietario debe ser además miembro del grupo al que quiere ceder derechos sobre este archivo.

Para completar la historia sobre los permisos de archivo, necesitamos hablar sobre tres atributos de archivo más posibles, configurados con el mismo comando chmod... Estos son los mismos atributos para los archivos ejecutables que ocupan las posiciones 5-7 en el inodo del archivo en la estructura de dos bytes que define los permisos del archivo, justo después del código de tipo de archivo.

El primero de estos atributos es el denominado "bit de cambio de ID de usuario". El significado de este bit es el siguiente.

Por lo general, cuando un usuario inicia un programa para su ejecución, este programa obtiene los mismos permisos para los archivos y directorios que tiene el usuario que inició el programa. Si se establece el "bit de cambio de ID de usuario", entonces el programa obtendrá derechos de acceso a los archivos y directorios que tiene el propietario del archivo de programa (por lo tanto, el atributo en cuestión se llama mejor el "bit de cambio de ID de propietario"). Esto permite algunas tareas que de otro modo serían difíciles de realizar. El ejemplo más típico es el comando de cambio de contraseña passwd... Todas las contraseñas de los usuarios se almacenan en el archivo / etc / passwd, que es propiedad del superusuario. raíz... Por lo tanto, los programas lanzados por usuarios comunes, incluido el comando passwd, no se puede escribir en este archivo. Esto significa que el usuario no puede, por así decirlo, cambiar su propia contraseña. Pero para el archivo / usr / bin / passwd se establece el "bit de identificación de cambio de propietario", que es el usuario raíz... Por lo tanto, el cambiador de contraseñas passwd corre con derechos raíz y obtiene el derecho de escribir en el archivo / etc / passwd (mediante el programa mismo se asegura que el usuario puede cambiar solo una línea en este archivo).

El superusuario puede establecer el "bit de identificador de cambio de propietario" mediante el comando

# chmod + s nombre_archivo

El "bit de cambio de ID de grupo" funciona de manera similar.

Otro atributo posible de un archivo ejecutable es el "bit pegajoso" o "bit pegajoso". Este bit le dice al sistema que lo guarde en la RAM después de que finalice el programa. Es conveniente habilitar este bit para tareas que a menudo se llaman para su ejecución, ya que en este caso se ahorra tiempo al cargar el programa con cada nuevo inicio. Este atributo era obligatorio en modelos de computadora más antiguos. Rara vez se utiliza en sistemas modernos de alta velocidad.

Si usa la opción numérica para especificar atributos en el comando chmod, el valor numérico de estos atributos debe preceder a los dígitos que especifican los derechos del usuario:

# chmod 4775 nombre_archivo

En este caso, los pesos de estos bits para obtener el resultado total deseado se establecen de la siguiente manera:

    4 - "bit de cambio de ID de usuario",

    2 - "bit de cambio de identificador de grupo",

    1 - "pedacito pegajoso".

Si alguno de estos tres bits se establece en 1, la salida del comando cambia ligeramente. ls -l en términos de mostrar los atributos establecidos de los derechos de acceso. Si el "bit de cambio de ID de usuario" se establece en 1, entonces el carácter "x" en el grupo que define los derechos del propietario del archivo se reemplaza por el carácter "s". Además, si el propietario tiene derecho a ejecutar el archivo, el carácter "x" se reemplaza por una "s" pequeña, y si el propietario no tiene derecho a ejecutar el archivo (por ejemplo, el archivo no es ejecutable en absoluto), entonces se pone "S" en lugar de "x". Se producen sustituciones similares cuando se especifica el "bit de cambio de identificador de grupo", pero el carácter "x" se reemplaza en el grupo de atributos que definen los derechos del grupo. Si el "bit pegajoso" es 1, entonces se reemplaza el carácter "x" en el grupo de atributos que define los derechos para todos los demás usuarios, y "x" se reemplaza con el carácter "t" si todos los usuarios pueden ejecutar el archivo, y con una "T" si no tienen este derecho.

Por lo tanto, aunque en la salida del comando ls -l no se proporcionan posiciones separadas para mostrar los valores de los bits de cambio de identificador y el bit de guardado de la tarea, se muestra la información correspondiente. Aquí hay un pequeño ejemplo de cómo se vería esto:

# ls -l prim1

V. Kostromin (kos en rus-linux dot net) - 4.5. Permisos de archivos y directorios

Supongamos que soy un nuevo usuario de Ubuntu Linux 16.04.xx LTS. Es posible que tenga varias preguntas de inmediato. ¿Cómo creo un nuevo usuario sudo en mi servidor? ¿Cómo agregar un nuevo usuario al archivo sudoer usando la opción de línea de comando en Ubuntu?

Linux (y Unix en general) tiene un superusuario llamado root. El usuario root puede hacer cualquier cosa y todo, por lo que el uso normal del sistema puede volverse muy peligroso. Puede ingresar el comando incorrectamente y destruir el sistema. El comando sudo permite a un usuario autorizado ejecutar el comando como superusuario (usuario root) u otro usuario como se especifica en la política de seguridad. A menudo, sudo se utiliza en servidores para proporcionar derechos y privilegios de administrador a los usuarios habituales. En este tutorial rápido, aprenderá a crear un usuario sudo en Ubuntu.

Algunos pasos a seguir para crear un usuario sudo en Ubuntu

Más sobre el grupo de administración y el grupo sudo en el servidor Ubuntu

Los miembros del grupo administrativo pueden recibir privilegios de root. Todos los miembros del grupo sudo ejecutan cualquier comando en el servidor Ubuntu. Así que simplemente agregue el usuario al grupo sudo en el servidor de Ubuntu. El grupo de administración se ha reducido significativamente desde Ubuntu 12.04 en adelante. En consecuencia, el grupo de administración ya no existe o simplemente se usa en Ubuntu 12.04 o superior. La razón por la que funciona:

# grep -B1 -i "^% sudo" / etc / sudoers

$ sudo grep -B1 -i "^% sudo" / etc / sudoers

# Permitir que los miembros del grupo sudo ejecuten cualquier comando% sudo ALL = (ALL: ALL) ALL

Echemos un vistazo a algunos ejemplos prácticos.

¿Cómo puedo agregar un nuevo usuario llamado vivek a sudo usando la línea de comando?

Abra una terminal o inicie sesión en su servidor remoto:

$ ssh [correo electrónico protegido]$ ssh [correo electrónico protegido] { [correo electrónico protegido]: / raíz) #

# adduser vivek

$ sudo adduser vivek

Figura 01: Cómo agregar un nuevo usuario en Ubuntu

Ejemplos de posibles salidas de datos:

Cómo crear un usuario sudo en Ubuntu para la cuenta vivek

Ingrese el siguiente comando:

# adduser vivek sudo

O use el comando usermod para agregar un usuario a un grupo en Linux:

# usermod -aG sudo vivek

$ sudo usermod -aG sudo vivek

$ sudo adduser vivek sudo

Ejemplos de posibles salidas de datos:

Figura 02: Agregue un usuario de vivek a sudo para obtener derechos de administrador

Confirme el nuevo usuario y miembro del grupo con:

$ id vivek

Ejemplos de posibles salidas de datos:

Figura 03: Mostrar información de usuarios y grupos

El usuario de vivek ahora puede iniciar sesión usando el comando ssh como este:

$ ssh [correo electrónico protegido]

Asegúrese de que vivek pueda usar el comando sudo:

$ sudo cat / etc / sudoers

La primera vez que use el comando sudo, se le pedirá la contraseña de su cuenta vivek. Así que ingrese la contraseña de vivek para obtener acceso de root. Cualquier tipo de comando con sudo debe ejecutarse con privilegios de root para la cuenta vivek. Para obtener un shell de root, ingrese:

$ sudo –s

Ejemplos de posibles salidas de datos:

Figura 03: Prueba de acceso a sudo para la cuenta de usuario vivek

Y así lo hiciste. Ahora puede permitir que otros usuarios ejecuten sudo en el servidor Ubuntu y otorgar derechos de administrador a los usuarios.