Usuarios grupospermisos

4
Usuarios, grupos y permisos en GNU/Linux UNIX fue uno de los primeros sistemas operativos en incorporar el concepto de usuarios y permisos, para controlar el acceso a los archivos, procesos y otros recursos del sistema. La mayoría de los conceptos originales incorporados en UNIX siguen vigentes hoy en día en GNU/Linux y otros sistemas modernos tipo UNIX. 1. Usuarios en GNU/Linux Para el sistema operativo, un usuario se representa a través de un número, conocido como el UID (User ID). El UID almacenado en un inodo permite al sistema determinar a que usuario pertenece un archivo. De igual forma, cada proceso ejecutado en el sistema pertenece a un usuario determinado, identificado por su UID. El nombre de usuario asociado a cada UID, además de otra información importante es almacenada en el archivo /etc/passwd. Este archivo puede ser leído por cualquier usuario, debido a que la información almacenada acá es usada por muchos programas de uso común. En los sistemas modernos, la contraseña es almacenada en el archivo /etc/shadow, el cual solo puede ser leído por el superusuario. Las contraseñas se almacenan cifradas, usando un algoritmo de una sóla vía como MD5. Los algoritmos de cifrado de una sola vía imposibilitan la obtención de la contraseña original a partir de la versión cifrada, lo cual mejora la seguridad. Cuando un usuario se autentica, la contraseña es cifrada y comparada con la versión almacenada. Si coinciden la autenticación es exitosa. Hoy en día, GNU/Linux permite utilizar sistemas alternativos de autenticación, como LDAP o Microsoft Active Directory, lo que permite incrementar la seguridad y manejar la información de los usuarios de manera centralizada e interoperable con otros sistemas. 1.1. El superusuario El superusuario o root posee privilegios completos sobre un sistema UNIX. Puede tener acceso a cualquier archivo, proceso o dispositivo del sistema, puede controlar los medios de almacenamiento y puede fácilmente dañar el sistema de forma irreparable. Por esta razón es recomendable trabajar como el superusuario solamente cuando es indispensable. Si se comete un error como superusuario es posible dañar el sistema y afectar el trabajo de otros usuarios. Además, si se ejecuta código malicioso (virus, spyware, exploits, etc.) como superusuario, las consecuencias son mucho más graves que si se ejecuta como un usuario convencional. 1.2. Usuarios convencionales Los usuarios convencionales tienen privilegios limitados. Generalmente solo pueden modificar y crear archivos dentro de su directorio personal. Además no tienen permiso para ejecutar la mayoría de las herramientas de administración del sistema. Esto implica que cualquier acción dañina ejecutada por un usuario convencional tendrá un efecto limitado sobre el sistema. Este es uno de los puntos fuertes de los sistemas UNIX, en comparación con otros sistemas como Microsoft Windows. En los sistemas Debian y derivados, los usuarios convencionales tienen un UID mayor o igual a 1000. Normalmente estos usuarios corresponden a personas físicas que utilizan la máquina, por lo que tienen acceso al shell y a las aplica- ciones gráficas, local o remotamente. El directorio personal de un usuario se localiza normalmente dentro del directorio /home. 1

Transcript of Usuarios grupospermisos

Page 1: Usuarios grupospermisos

Usuarios, grupos y permisos en GNU/Linux

UNIX fue uno de los primeros sistemas operativos en incorporar el concepto de usuarios y permisos, para controlar el acceso a los archivos, procesos y otros recursos del sistema. La mayoría de los conceptos originales incorporados en UNIX siguen vigentes hoy en día en GNU/Linux y otros sistemas modernos tipo UNIX.

1. Usuarios en GNU/Linux

Para el sistema operativo, un usuario se representa a través de un número, conocido como el UID (User ID). El UID almacenado en un inodo permite al sistema determinar a que usuario pertenece un archivo. De igual forma, cada proceso ejecutado en el sistema pertenece a un usuario determinado, identificado por su UID.

El nombre de usuario asociado a cada UID, además de otra información importante es almacenada en el archivo /etc/passwd. Este archivo puede ser leído por cualquier usuario, debido a que la información almacenada acá es usada por muchos programas de uso común.

En los sistemas modernos, la contraseña es almacenada en el archivo /etc/shadow, el cual solo puede ser leído por el superusuario. Las contraseñas se almacenan cifradas, usando un algoritmo de una sóla vía como MD5. Los algoritmos de cifrado de una sola vía imposibilitan la obtención de la contraseña original a partir de la versión cifrada, lo cual mejora la seguridad. Cuando un usuario se autentica, la contraseña es cifrada y comparada con la versión almacenada. Si coinciden la autenticación es exitosa.

Hoy en día, GNU/Linux permite utilizar sistemas alternativos de autenticación, como LDAP o Microsoft Active Directory, lo que permite incrementar la seguridad y manejar la información de los usuarios de manera centralizada e interoperable con otros sistemas.

1.1. El superusuario

El superusuario o root posee privilegios completos sobre un sistema UNIX. Puede tener acceso a cualquier archivo, proceso o dispositivo del sistema, puede controlar los medios de almacenamiento y puede fácilmente dañar el sistema de forma irreparable. Por esta razón es recomendable trabajar como el superusuario solamente cuando es indispensable. Si se comete un error como superusuario es posible dañar el sistema y afectar el trabajo de otros usuarios. Además, si se ejecuta código malicioso (virus, spyware, exploits, etc.) como superusuario, las consecuencias son mucho más graves que si se ejecuta como un usuario convencional.

1.2. Usuarios convencionales

Los usuarios convencionales tienen privilegios limitados. Generalmente solo pueden modificar y crear archivos dentro de su directorio personal. Además no tienen permiso para ejecutar la mayoría de las herramientas de administración del sistema. Esto implica que cualquier acción dañina ejecutada por un usuario convencional tendrá un efecto limitado sobre el sistema. Este es uno de los puntos fuertes de los sistemas UNIX, en comparación con otros sistemas como Microsoft Windows.

En los sistemas Debian y derivados, los usuarios convencionales tienen un UID mayor o igual a 1000. Normalmente estos usuarios corresponden a personas físicas que utilizan la máquina, por lo que tienen acceso al shell y a las aplica-ciones gráficas, local o remotamente. El directorio personal de un usuario se localiza normalmente dentro del directorio

/home.

1

Page 2: Usuarios grupospermisos

1.3. Usuarios para aplicaciones específicas

Existen usuarios que se crean en un sistema con el fin de ejecutar aplicaciones específicas. Al igual que los usuarios convencionales, los privilegios de estos usuarios son limitados, pero no corresponden a personas físicas, por lo que no pueden iniciar sesiones interactivas en el sistema. En los sistemas Debian y derivados, estos usuarios generalmente tienen UID menores a 1000.

Los usuarios para aplicaciones específicas se utilizan generalmente para ejecutar servicios, como por ejemplo un servidor de páginas web o un servidor de bases de datos. Estos programas están corriendo permanentemente en un sistema y generalmente aceptan conexiones a través de la red, lo que los hace muy vulnerables a intrusiones. Como estos programas pertenecen a usuarios sin privilegios, las consecuencias de una intrusión generalmente son menos graves que si pertenecieran al superusuario.

1.4. Grupos

En ocasiones es necesario otorgar ciertos privilegios a varios usuarios. Debido a esto, los sistemas UNIX incorporan el concepto de grupo. De forma análoga a un usuario, cada grupo tiene un identificador numérico conocido como GID (Group ID). La información de los grupos (nombre, GID y usuarios miembro) se almacena en el archivo /etc/group. Un usuario

puede ser miembro de uno o varios grupos y solamente el superusuario puede llevar a cabo esta asignación.

2. Comandos para manipular usuarios y grupos

Los comandos para el manejo de usuarios varían de una distribución a otra. En esta sección se describen los comandos disponibles en Debian y Ubuntu GNU/Linux. En caso de usar otras distribuciones, debe consultarse la documentación específica para saber cuales son los comandos y su funcionamiento.

2.1. Creación de usuarios

adduser permite crear una nueva cuenta de usuario de forma interactiva.

useradd permite crear nuevas cuentas de usuario de forma no interactiva. Todos los parámetros de la cuenta deben pasarse a través de la línea de comandos.

2.2. Eliminación de usuarios

deluser permite eliminar una cuenta de usuario. El directorio personal no es eliminado a no ser que se incluya la opción --remove-home o --remove-all-files.

userdel también elimina una cuenta de usuario. Al igual que deluser, este comando no elimina el directorio personal a menos que se use la opción correspondiente.

2.3. Creación de grupos

addgroup y groupadd permiten crear nuevos grupos.

2.4. Eliminación de grupos

delgroup y groupdel permiten eliminar grupos del sistema.

2

Page 3: Usuarios grupospermisos

2.5. Asignación de usuarios a un grupo

adduser y useradd pueden usarse también para agregar un usuario a un grupo.

2.6. Información de un usuario

id muestra el UID de un usuario y los grupos a los cuales pertenece.

2.7. Cambio de contraseña

La contraseña de un usuario puede cambiarse usando el comando passwd.

3. Adquisición de privilegios

El comando su permite iniciar un sesión otro usuario sin necesidad de cerrar la sesión actual. Si no se especifica un nombre de usuario, se iniciará sesión como superusuario. Es necesario introducir la contraseña del otro usuario.

Otra opción es utilizar el comando sudo, que permite ejecutar un comando cualquiera como otro usuario. sudo ofrece la ventaja de que no es necesario conocer la contraseña del otro usuario sino solamente la propia. Para utilizar sudo, el usuario debe estar autorizado.

En Ubuntu, sudo es el sistema predeterminado para obtener privilegios de administración. El usuario que se crea durante la instalación está autorizado para usar sudo de forma predeterminada, lo que lo convierte en el administrador del sistema. Posteriormente puede dársele autorización a otros usuarios.

El acceso a sudo puede configurarse usando el comando visudo o editando el archivo de configuración /etc/sudoers.

4. Ar ivos y directorios

Todos los archivos y directorios pertenecen a un usuario y a un grupo. El usuario o el grupo al cual pertenece un archivo puede modificarse con el comando chown:

# chown USUARIO[:GRUPO] ARCHIVO

5. Permisos

Existen tres permisos básicos que pueden asignarse a un archivo o directorio: lectura (r), escritura (w) y ejecución (x). Estos permisos pueden asignarse de forma independiente al usuario al que pertenece el archivo, al grupo y a todos los demás usuarios del sistema.

El significado de estos permisos en un directorio es ligeramente al de un archivo. Lectura significa la capacidad de listar los contenidos del directorio. Escritura la capacidad de poder crear nuevos archivos en el directorio y ejecución la capacidad de poder entrar en el directorio.

Los tres grupos de permisos se conocen con el nombre de modo y se representan de la siguiente forma:

rwx r w x r w x

Usuario Grupo Otros3

Page 4: Usuarios grupospermisos

Cuando uno de los permisos no está asignado, se sustituye por un guión. Ej:

rwxr-xr– : Lectura, escritura y ejecución para el usuario, lectura y ejecución para el grupo y sólo lectura para los otros usuarios.

5.1. Asignación de permisos

Los permisos de un archivo o directorio pueden asignarse con el comando chmod. Este comando permite asignar permisos independientes o cambiar el modo completo de una sola vez.

Para cambiar permisos de forma independiente se usa la siguiente sintaxis:

$ chmod X±Y archivo

Donde X representa el grupo de permisos que se está modificando: usuario (u), grupo (g), otros usuarios (o) o todos (a). Y representa el permiso que se esta modificando: lectura (r), escritura (w) o ejecución (x). El signo más (+) otorga el permiso y el signo menos (-) lo retira. Por ejemplo, el comando

$ chmod a+x archivo

otorga permisos de ejecución al usuario, grupo y los otros usuarios, en tanto que el comando

$ chmod g-w archivo

retira los permisos de ejecución al grupo al cual pertenece el archivo.Para cambiar todos los permisos de una sola vez debe utilizarse el valor numérico del modo. Por ejemplo, el comando

$ chmod 755 archivo

otorga permiso de lectura, escritura y ejecución (rwx) al usuario, lectura y ejecución (r-x) al grupo y a los otros usuarios. El comando

$ chmod 640 archivo

otorga permisos de lectura y escritura (rw-) al usuario, lectura (r--) al grupo y ningún permiso (---) a los otros usuarios.

El valor numérico puede calcularse tomando cada grupo de permisos de forma separada, sustituyendo cada permiso por un uno si el permiso es otorgado o un cero si el permiso es retirado y convirtiendo el número binario resultante a decimal. En el primer ejemplo:

Usuario: rwx = 111 = 7

Grupo: r-x = 101 = 5

Otros: r-x = 101 = 5

Valor numérico para el modo: 755

En el segundo ejemplo:

Usuario: rw- = 110 = 6

Grupo: r-- = 100 = 4

Otros: --- = 000 = 0

Valor numérico para el modo: 6404