Usuarios y grupos de Linux

si usted es nuevo en Linux / Unix, entonces el concepto de permisos puede ser confuso. Esta guía le proporciona una explicación de qué son los permisos, cómo funcionan y cómo administrarlos. Se proporcionan varios ejemplos para ilustrar cómo establecer y cambiar permisos tanto para usuarios como para grupos.,

¿cuáles son Linux Permisos de Usuario y Grupo?

Los Sistemas Operativos Linux / Unix tienen la capacidad de realizar múltiples tareas de una manera similar a otros sistemas operativos. Sin embargo, la principal diferencia de Linux con respecto a otros sistemas operativos es su capacidad para tener múltiples usuarios., Linux fue diseñado para permitir a más de un usuario tener acceso al sistema al mismo tiempo. Para que este diseño multiusuario funcione correctamente, debe haber un método para proteger a los usuarios entre sí. Aquí es donde entran los permisos para jugar.

Read, Write, & Execute Permissions

Los permisos son los «derechos» para actuar sobre un archivo o directorio. Los derechos básicos son Leer, escribir y ejecutar.

  • Read: un permiso legible permite ver el contenido del archivo., Un permiso de lectura en un directorio le permite listar el contenido de un directorio.
  • Write: un permiso de escritura en un archivo le permite modificar el contenido de ese archivo. Para un directorio, el permiso de escritura le permite editar el contenido de un directorio (por ejemplo, Agregar/Eliminar archivos).
  • Ejecutar: para un archivo, el permiso ejecutable le permite ejecutar el archivo y ejecutar un programa o script. Para un directorio, el permiso de ejecución le permite cambiar a un directorio diferente y convertirlo en su directorio de trabajo actual., Los usuarios suelen tener un grupo predeterminado, pero pueden pertenecer a varios grupos adicionales.

Visualización de Permisos de Archivo

Para ver los permisos de un archivo o directorio, ejecute el comando ls -l <directory/file>. Recuerde reemplazar la información en el <directory/file> con el nombre real del archivo o directorio. A continuación se muestra una salida de muestra para el comando ls:

 -rw-r--r-- 1 root root 1031 Nov 18 09:22 /etc/passwd

los primeros diez caracteres muestran los permisos de acceso., El primer guión (-) indica el tipo de archivo (d directorio, s especial archivo, y - para un archivo regular). Los siguientes tres caracteres (rw-) definen el permiso del propietario para el archivo. En este ejemplo, el propietario del archivo solo tiene permisos de lectura y escritura. Los siguientes tres caracteres (r--) son los permisos para los miembros del mismo grupo que el propietario del archivo (que en este ejemplo es de solo lectura)., Los tres últimos caracteres (r--) muestran los permisos para todos los demás usuarios y en este ejemplo es de solo lectura.

trabajar con grupos, Usuarios y directorios de Linux

las siguientes secciones repasan los grupos de Linux y los comandos necesarios para crear, eliminar y modificar cuentas de usuario. Los comandos para crear y eliminar directorios también están cubiertos.

Linux Primary Groups

Un grupo primario es el grupo predeterminado al que pertenece una cuenta de usuario. Cada usuario en Linux pertenece a un grupo primario., El grupo principal de un usuario suele ser el grupo que se registra en el archivo /etc/passwd de su sistema Linux. Cuando un usuario de Linux inicia sesión en su sistema, el grupo principal suele ser el grupo predeterminado asociado con la cuenta iniciada.

Puede encontrar el ID de grupo principal de un usuario viendo el contenido del archivo /etc/passwd de su sistema.

 cat /etc/passwd

la cuarta columna contiene el ID de grupo principal de cada usuario., En la salida de ejemplo, el ID de grupo primario para example_useres 1001:

 postfix:x:106:113::/var/spool/postfix:/usr/sbin/nologinexample_user:x:1000:1001:,,,:/home/example_user:/bin/bash

También puede encontrar la información de grupo primario de un usuario mediante el comando id. Reemplace example_user con uno de los usuarios de su propio sistema.

id example_user

Su salida se asemeja al ejemplo, que muestra el grupo principal como example_group.,

 uid=1000(example_user) gid=1001(example_group) groups=1001(example_group),27(sudo)

Si desea una salida menos detallada que solo muestre el nombre de su grupo principal, ejecute el siguiente comando:

id -gn example_user

Su salida en este caso es la siguiente:

example_group

Linux Secondary Groups

una vez que se ha creado un usuario con su grupo primario, se puede agregar a los grupos secundarios. Los usuarios del sistema Linux pueden tener un máximo de 15 grupos secundarios. Los grupos de un sistema Linux se almacenan en el archivo /etc/group.,

para encontrar los grupos a los que pertenece un usuario, ejecute el siguiente comando:

groups example_user

la salida de ejemplo muestra los grupos primarios y secundarios de un usuario:

example_user : example_group sudo

para agregar un usuario a un grupo secundario, use el comando de ejemplo. Reemplace second_example_group con el nombre del grupo y example_user con el nombre del usuario que desee agregar al grupo.

sudo usermod -a -G second_example_group example_user

también puede agregar un usuario a varios grupos., El comando de ejemplo, se agrega el usuario example_user a los grupos de second_example_group, third_example_group y fourth_example_group. Las opciones -a y -G garantizan que el Usuario no se elimine de ningún grupo al que ya pertenezca.

sudo usermod -a -G second_example_group,third_example_group,fourth_example_group example_user

¿Cuál es la diferencia entre los grupos primario y secundario en Linux?

un grupo primario es el grupo al que pertenece un usuario de forma predeterminada. Cada usuario debe pertenecer a un grupo primario y un usuario sólo puede pertenecer a un grupo primario., Los nuevos directorios o archivos creados por un usuario se asocian automáticamente con el grupo principal de un usuario.

un grupo secundario es un grupo al que se agrega un usuario después de que se crea su cuenta de usuario. Un usuario puede pertenecer a cero o más grupos secundarios.

crear y eliminar cuentas de usuario

para crear un nuevo usuario estándar, utilice el comando useradd., La sintaxis es la siguiente:

useradd <name>

el comando useradd utiliza una variedad de variables, algunas de las cuales se muestran en la siguiente tabla:

debe establecer una contraseña para el nuevo usuario utilizando el comando passwd. Tenga en cuenta que necesita privilegios de root para cambiar una contraseña de usuario. La sintaxis es la siguiente:

passwd <username>

el usuario puede cambiar su contraseña en cualquier momento utilizando el comando passwd con la sintaxis., A continuación se muestra un ejemplo:

$ passwdChanging password for lmartin.(current) UNIX password:Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully

hay otra forma de crear cuentas de usuario que podría ser más fácil para los administradores por primera vez. Sin embargo, es posible que necesite instalar un nuevo paquete. El comando de instalación Para Debian/Ubuntu es el siguiente:

apt-get install adduser

el comando adduser crea automáticamente un directorio personal y establece el grupo predeterminado, shell, etc., Para crear un nuevo usuario estándar con el comando adduser la sintaxis es la siguiente:

adduser <name>

Una vez que ingrese el comando, recibirá una serie de indicaciones; la mayor parte de esta información es opcional. Sin embargo, debe incluir al menos el nombre del usuario (para este ejemplo el nombre de usuario es cjones) y una contraseña.

es importante tener en cuenta que la seguridad siempre debe tomarse muy en serio. Por lo tanto, se recomienda encarecidamente utilizar contraseñas únicas para cada cuenta. Nunca comparta ni dé su contraseña a otros usuarios.,

para eliminar una cuenta de usuario, introduzca el siguiente comando:

userdel <name>

Al emitir el comando anterior solo se elimina la cuenta del usuario. Sus archivos y directorio personal no se borran.

para eliminar al usuario, su carpeta de inicio y sus archivos, use este comando:

userdel -r <name>

entendiendo el grupo y usuario sudo Linux

root es el superusuario y tiene la capacidad de hacer cualquier cosa en un sistema., Por lo tanto, para tener una capa adicional de seguridad, generalmente se usa un usuario sudo en lugar de root. Mientras que sudo se usa para dar a otro usuario acceso limitado a la cuenta de otro usuario con el propósito de realizar tareas (en la mayoría de los casos el root usuario o el superusuario), sudo puede explicarse mejor como una herramienta que permite a los usuarios y grupos tener acceso a comandos que normalmente no podrían usar., sudo permite a un usuario tener privilegios de administración sin iniciar sesión directamente como root. Un ejemplo del comando sudo es el siguiente:

sudo apt-get install <package>

antes de usar sudo, es posible que deba instalarse si no forma parte de su distribución., El comando Para Debian es el siguiente:

apt-get install sudo

para CentOS, el comando es el siguiente:

yum install sudo

para proporcionar a un usuario la capacidad sudo, deben agregarse a un sudo grupo habilitado, o su nombre de usuario debe agregarse al archivo sudoers con un conjunto de permisos. Este archivo es sensible e importante como control de acceso y seguridad, y no debe editarse directamente con un editor de texto., Si el archivo sudoers se edita incorrectamente, podría impedir el acceso al sistema u otros cambios de permisos no deseados.

Nota

para obtener instrucciones sobre cómo agregar un usuario a un grupo habilitado por defecto sudo consulte nuestra guía Cómo proteger su servidor

el visudo comando se debe utilizar para editar el archivo sudoers. En una línea de comandos, inicie sesión en su sistema como root e ingrese el comando visudo.,

el siguiente sudoers excerpt permite a los usuarios listados ejecutar cualquier comando que deseen prefijándolo con sudo, lo que le da al usuario el control total de un sistema.

precaución

los usuarios nunca deben agregarse al archivo o grupo sudoers con permiso completo si no son de confianza. Opcionalmente, puede restringir lo que los usuarios pueden hacer con sudo como una capa adicional de seguridad; consulte los comandos whitelisting con Sudo para ver algunos ejemplos de sintaxis de uso restringido.,

después de haber dado a su cuenta de usuario privilegios sudo, guarde el archivo sudoers y cierre la sesión como root. Ahora inicie sesión como su usuario y pruebe los privilegios como su usuario con sudo access., Cuando un nuevo usuario necesita acceso a sudo, ahora puede editar el archivo sudoers con su propio inicio de sesión utilizando el siguiente comando:

sudo visudo

lista blanca de comandos con Sudo

en muchos casos, mientras desea que los usuarios tengan permisos elevados de sudo, también desea seguir el principio de privilegios mínimos y conceder a los usuarios de sudo acceso solo a los comandos que necesitan., En el siguiente ejemplo, el archivo sudoers se ha editado para limitar el uso de sudo a unos pocos comandos claramente definidos:

mientras que los usuarios root y sudousername todavía tienen permisos de superusuario completos, el usuario username se ha limitado a solo los top y apt-get comandos como usuario sudo. Además, todos los usuarios agregados al grupo sudoestán limitados por separado solo a los comandos less, lsy apt con permisos sudo., Si usted quería dar al usuario username sudo acceso a los 3 comandos de lista blanca para el sudo grupo, sólo se necesita agregar a la etiqueta sudo grupo y que aún conservan sus propias permisos únicos, dándoles sudo acceso a un total de 5 comandos. Este proceso se puede repetir para tantos usuarios y grupos como sea necesario.

Nota

al incluir comandos individuales en la lista blanca utilizando la sintaxis anterior, es importante utilizar la ruta absoluta al comando., El comando which se puede usar para encontrar esta ruta absoluta:

which command-name

trabajar con grupos

Linux usa grupos como una forma de organizar usuarios. Los grupos organizan colecciones de cuentas, principalmente como medida de seguridad. El Control de la pertenencia a un grupo se administra a través del archivo /etc/group, que muestra una lista de grupos y sus miembros. Cada usuario tiene un grupo predeterminado o primario. Cuando un usuario inicia sesión, la pertenencia al grupo se establece para su grupo principal., Esto significa que cuando un usuario inicia un programa o crea un archivo, tanto el archivo como el programa en ejecución se asocian con la pertenencia actual al grupo del usuario. Un usuario puede acceder a otros archivos de otros grupos, siempre y cuando también sea miembro de ese grupo y los permisos de acceso estén establecidos. Para ejecutar programas o crear un archivo en un grupo diferente, el Usuario debe ejecutar el comando newgrp para cambiar su grupo actual., Un ejemplo del comando newgrp es el siguiente:

$ newgrp <marketing>

si el usuario que ingresa el comando mencionado anteriormente es miembro del grupo de marketing en el archivo /etc/group, entonces la membresía actual del grupo cambia. Es importante tener en cuenta que los archivos creados ahora se asociarán con el grupo de marketing en lugar del grupo principal del usuario.,

crear y eliminar directorios

para crear un directorio use el comando:

mkdir <directory name>

para crear un directorio y establecer los permisos al mismo tiempo, use la siguiente opción y sintaxis:

mkdir -m a=rwx <directory name>

la opción-m es la abreviatura de mode, y a=rwx significa que todos los usuarios tener permisos de lectura, escritura y ejecución en el directorio. Para ver una lista completa de todas las opciones para el comando mkdir, ingrese man mkdir en un símbolo del sistema.,

Para eliminar un archivo, utilice el siguiente:

rm <file>

Para eliminar un directorio:

rm -r <directory name>

es importante tener en cuenta que si elimina un directorio de todos los archivos se eliminan también.

cambiar los permisos de directorio y archivo

para ver los permisos de archivo y la propiedad de archivos y directorios, utilice el comando ls -al. La opción a es para mostrar los archivos ocultos o todos los archivos, y la opción l es para la lista larga., La salida es similar a la siguiente:

la primera columna con las diez letras y guiones muestra los permisos del archivo o directorio. La segunda columna (con el número único) indica el número de archivos o directorios contenidos en el directorio. La siguiente columna indica el propietario, seguido del nombre del grupo, el tamaño, la fecha y la hora del último acceso y, finalmente, el nombre del archivo ., Por ejemplo, usando la primera línea de la salida anterior, los detalles son los siguientes:

Nota

dado que un directorio en sí es un archivo, cualquier directorio muestra 4096 como su tamaño. Esto no refleja el tamaño del contenido del directorio.

chmod Command

el comando chmod es la abreviatura de change mode. Chmod se utiliza para cambiar los permisos en archivos y directorios., El comando chmod se puede usar con letras o números (también conocidos como octal) para establecer los permisos.,/td>

u permisos del archivo para que el propietario g permisos del archivo para los usuarios en el mismo grupo o permisos Actuales el archivo tiene para los demás y no en el grupo

Es importante recordar que el primer carácter de la primera columna de una lista de archivos indica si es un directorio o un archivo., Los otros nueve caracteres son los permisos para el archivo/directorio. Los tres primeros caracteres son para el usuario, los tres siguientes son para el grupo, y los tres últimos son para los demás. El ejemplo drwxrw-r– se desglosa de la siguiente manera:

d es un directorio

rwx el usuario tiene permisos de lectura, escritura y ejecución

rw – el grupo tiene permisos de lectura y escritura

r– todos los demás tienen permisos de solo lectura

tenga en cuenta que el guión (-) indica que se han eliminado los permisos., Por lo tanto, con el grupo «todos los demás», R– translates a permiso de lectura solamente, se eliminaron los permisos de escritura y ejecución.

por el contrario, el signo más ( + ) es equivalente a otorgar permisos: chmod u+r,g+x <filename>

el ejemplo anterior se traduce como sigue:

u is for userr is for readg is for groupx is for execute

En otras palabras, al usuario se le dio permiso de lectura y al grupo se le dio permiso de ejecución para el archivo. Nota: cuando se establecen varios permisos para un conjunto, se requiere una coma entre los conjuntos.,

Chmod Octal Format

para usar el formato octal, debe calcular los permisos para cada parte del archivo o directorio. Los primeros diez caracteres mencionados anteriormente corresponden a un número de cuatro dígitos en octal. El permiso de ejecución es igual al número uno (1), el permiso de escritura es igual al número dos (2), y el permiso de lectura es igual al número cuatro (4). Por lo tanto, cuando se utiliza el formato octal, es necesario calcular un número entre 0 y 7 para cada parte del permiso. A continuación se presenta un cuadro para su aclaración.,

a Pesar de formato octal puede parecer difícil de entender, es fácil de usar una vez que usted consiga el quid de la cuestión. Sin embargo, establecer permisos con r, w Y x puede ser más fácil. A continuación se muestran ejemplos de cómo usar tanto letras como formato octal para establecer permisos en un archivo o directorio.,

sintaxis de ejemplo: chmod <octal or letters> <file/directory name>

Formato de letra: chmod go-rwx Work (denegar el permiso rwx para el grupo y otros)

de LS-Al después del comando chmod anterior se vería de la siguiente manera:

dr-------- 2 user user 4096 Dec 17 14:38 Work

formato octal: chmod 444 Work

la salida de LS-Al después del comando chmod anterior se vería de la siguiente manera:

dr--r--r-- 2 user user 4096 Dec 17 14:38 Work

a continuación se proporciona una tabla octal que muestra el equivalente numérico de los permisos.,

Adicional de Permisos de Archivo

además De los más comunes de lectura/escritura/ejecución de archivos con permisos, hay algunos modos adicionales que usted puede encontrar útil, específicamente el +en el modo t (sticky bit) y el +modo s (bit setuid). Estas funciones describen el comportamiento de archivos y ejecutables en situaciones multiusuario.,

cuando se establece en un directorio, el bit pegajoso, o modo +t, significa que solo el propietario (o root) puede eliminar o cambiar el nombre de los archivos dentro de ese directorio, independientemente de qué usuarios tienen acceso de escritura al directorio por medio de pertenencia o propiedad de grupo. Esto es útil cuando un directorio es propiedad de un grupo a través del cual un número de usuarios comparten el acceso de escritura a un conjunto dado de archivos.,

Es importante tener en cuenta que la configuración del bit adhesivo en un archivo no impide que un usuario con permisos de escritura en el directorio adjunto elimine o cambie el nombre del archivo; el bit adhesivo debe establecerse en el directorio adjunto. El bit pegajoso no tiene ninguna función en los sistemas Linux modernos cuando se establece en archivos.

Para establecer el bit pegajoso (sticky) en un directorio llamado /root/sticky, emita el siguiente comando:

chmod +t /root/sticky

quitar el bit pegajoso de un archivo o directorio, utilice el chmod -t comando., Nota, para cambiar el bit pegajoso, debe ser root o el propietario del archivo/directorio. El usuario root es capaz de eliminar directorios y archivos dentro de ellos independientemente del estado del bit pegajoso.

el bit setuid, o +s, cuando se establece en archivos permite a los usuarios con permisos para ejecutar un archivo dado la capacidad de ejecutar ese archivo con los permisos del propietario del archivo., Por ejemplo, si el archivo work era de propiedad del root usuario y el marketing grupo, los miembros de la etiqueta marketing grupo podría ejecutar el work programa como si fueran el usuario root. Esto puede plantear riesgos potenciales de seguridad en algunos casos y los ejecutables deben evaluarse correctamente antes de recibir el indicador +s., Para establecer el bit +s en un archivo llamado /usr/bin/work, ejecute el siguiente comando:

chmod g+s /usr/bin/work

a diferencia del modo +S para la propiedad de un archivo, el efecto del modo +s en un directorio es algo diferente. Los archivos creados en los directorios +s reciben la propiedad del usuario y grupo de ese directorio, en lugar de la propiedad del usuario que creó el archivo y su grupo predeterminado., Para establecer la opción setguid (ID de grupo) en un directorio, use el siguiente comando:

chmod g+s /var/doc-store/

para establecer el setuid (id de usuario) para un directorio llamado /var/doc-store, ejecute el siguiente comando:

chmod u+s /var/doc-store/

cambiar la propiedad del archivo

de forma predeterminada, todos los archivos son «propiedad» del usuario que los crea y del grupo predeterminado de ese usuario. Para cambiar la propiedad de un archivo, utilice el comando chown en el formato chown user:group /path/to/file. En el siguiente ejemplo, la propiedad de la «lista.,el archivo html «se cambia al usuario» cjones «en el grupo» marketing»:

chown cjones:marketing list.html

para cambiar la propiedad de un directorio y todos los archivos que contiene, use la opción recursiva con la bandera -R. En el siguiente ejemplo, cambie la propiedad de /srv/smb/leadership/ al usuario » cjones «en el grupo» marketing»:

chown -R cjones:marketing /srv/smb/leadership/

aprovechando usuarios y grupos Linux

en muchos casos, los permisos de usuario se utilizan para proporcionar a su sistema una mayor seguridad sin ninguna interacción directa., Muchos sistemas operativos crean cuentas de usuario específicas para diferentes paquetes durante el proceso de instalación.

la mejor práctica es dar a cada usuario su propio inicio de sesión en su sistema. Esto protege los archivos de cada usuario de todos los demás usuarios. Además, el uso de cuentas específicas para los usuarios permite un registro del sistema más preciso, especialmente cuando se combina con herramientas como sudo. Recomendamos evitar situaciones en las que más de una persona conozca la contraseña de una cuenta de usuario para obtener la máxima seguridad.,

por el contrario, los grupos son útiles para permitir que varias cuentas de usuario independientes colaboren y compartan archivos. Si crea grupos en una máquina para tareas comunes por tarea (por ejemplo, editores web, colaboradores, remitentes de contenido, soporte) y agrega usuarios relevantes a los grupos relevantes, todos estos usuarios pueden editar y ejecutar el mismo conjunto de archivos sin compartir estos archivos con el mundo. El uso del comando chown con permisos de archivo de 770 y 740 ayudaría a lograr este objetivo.

Author: admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *