Blog
Como Windows o MacOS, Ubuntu puede gestionar diferentes usuarios en la misma máquina. Para evitar que algunos usuarios malintencionados dañen un servidor en funcionamiento, es importante conocer todo sobre usuarios y permisos en Linux y Bash. Te lo explicamos a continuación,
Usuarios y permisos:
Linux es un sistema operativo multiusuario al que pueden acceder muchos usuarios simultáneamente. Linux también puede utilizarse en mainframes y servidores sin ninguna modificación (éste suele ser el caso de la mayoría de servidores web, en los que cada sitio pertenece a un usuario. Cada usuario puede conectarse a distancia para mantener su sitio).
Pero esto plantea problemas de seguridad, ya que un usuario no solicitado o malintencionado puede corromper, modificar o borrar datos cruciales. Para una seguridad eficaz, Linux divide la autorización en 2 niveles: propiedad (usuarios) y permisos (derechos). El concepto de permiso y propiedad de archivos es crucial en Linux. Aquí explicaremos estos niveles. Empecemos por la propiedad.
Propiedad
Usuarios
Un usuario es el propietario de un fichero. Por defecto, el usuario que ha creado un fichero se convierte en su propietario. Por lo tanto, a veces también se hace referencia a un usuario como propietario.
Grupos
Un grupo de usuarios puede contener varios usuarios. Todos los usuarios que pertenezcan a un grupo tendrán el mismo acceso al fichero con los permisos del grupo Linux. Supongamos que tienes un proyecto en el que varias personas necesitan acceder a un archivo. En lugar de asignar manualmente permisos a cada usuario, puedes añadir a todos los usuarios a un grupo y asignar permisos de grupo a los archivos para que sólo los miembros de este grupo y nadie más puedan leer o modificar los archivos.
Otros
Cualquier otro usuario que tenga acceso a un fichero. Este usuario no ha creado el fichero y no pertenece a un grupo de usuarios que pueda ser propietario del fichero. En la práctica, esto significa todo el mundo. Por lo tanto, cuando se define la autorización para otros, también se habla de autorización para todo el mundo.
Superusuario y sudo.
Como hemos visto, a veces se deniegan ciertos permisos. Para volver a adquirir estos derechos, nos conectamos como superusuario, también conocido como root. Podemos utilizar este rol de superusuario de varias maneras diferentes:
Inicia sesión como root utilizando el comando sudo su.
Observaremos que el símbolo del sistema ha cambiado: el habitual $ se ha cambiado por #. Además, notaremos que el comando cd ya no vuelve a /home/ubuntu sino a /root. Salimos de este modo superusuario usando el comando exit.
Si usamos derechos de superusuario para un solo comando, podemos usar la cláusula sudo para introducir el comando. Aquí, nuestro usuario ubuntu no tiene contraseña, pero este comando debería generar un prompt de contraseña.
Permisos en Linux y Bash
Todos los archivos y carpetas de su sistema tienen definidos los 3 permisos siguientes para los 3 propietarios mencionados anteriormente.
- Permisos de lectura:
Esta autorización te da derecho a abrir y leer un fichero. La autorización de lectura sobre un directorio te permite listar su contenido.
- Permisos de escritura:
La autorización de escritura te da derecho a modificar el contenido de un fichero. La autorización de escritura en un directorio te da el poder de añadir, borrar y renombrar archivos almacenados en el directorio. Imagina que tienes derecho a escribir en un fichero, pero no en el directorio en el que está almacenado. Podrás modificar el contenido del fichero. Pero no podrás renombrar, mover o eliminar el archivo del directorio.
- Permisos de ejecución:
No puedes ejecutar un programa si no se ha establecido el permiso de ejecución. Si no tienes permiso de ejecución, podrás ver/modificar el código del programa (siempre que se hayan establecido permisos de lectura y escritura), pero no ejecutarlo.
Manos a la obra
Ahora que sabemos más sobre cómo y quién puede gestionar archivos y carpetas, vamos a ver de forma práctica cómo gestionar estas funciones.
Lista los elementos disponibles en la raíz / utilizando el argumento -l:
ls -l /
Los resultados deberían tener este aspecto:
-rw-rw-r-- 1 ubuntu ubuntu 133 Apr 12 11:10 file
Se pueden ver diferentes partes.
-rw-rw-r–: lista los permisos del objeto;
1: número de enlaces a este objeto;
ubuntu: nombre de usuario del propietario;
ubuntu: nombre del grupo de usuarios del propietario;
133: tamaño del objeto ;
12 Abr 11:10`: Fecha de última modificación;
file: nombre del objeto.
La primera parte indica los derechos sobre el objeto. Encontramos el primer carácter y luego 3 cadenas de tres caracteres.
–: Esta primera parte corresponde a la naturaleza del objeto: d para una carpeta, – para un fichero, l para un enlace…;
rw-: corresponde a los permisos concedidos al propietario del objeto;
rw-: corresponde a los permisos concedidos a los usuarios que pertenecen al mismo grupo que el propietario del objeto;
r–: corresponde a los permisos concedidos a otros usuarios.
Estos permisos parecen un poco complicados, pero en realidad, las letras indican que el permiso está concedido, mientras que – indica que el permiso no está concedido. Por ejemplo, puede tener las siguientes letras
- Derechos de lectura: r;
- Derechos de escritura: w;
- Derechos en ejecución: x;
- Información sobre si se trata de un fichero o no: d.
El uso de grupos de usuarios es interesante porque permite dar derechos a un grupo de personas a la vez.
Cambio de permisos
Para cambiar los permisos de un fichero, utiliza el comando chmod.
chmod 777 file chmod a+rwx file
La primera forma es utilizar una representación binaria de los permisos: cada número corresponde a un grupo de usuarios, como se ha visto anteriormente al leer los derechos.
0 : —
1 : –x
2 : -w-
3 : -wx
4 : r–
5 : `r-x
6 : rw-
7: rwx
La segunda forma consiste en designar el grupo o grupos a los que desea asignar o suprimir derechos:
- a: usuarios afectados por la modificación a para todos (all), u para el propietario, g para el grupo del usuario y ` para otros usuarios ;
- +: damos o quitamos derechos: + para dar y – para quitar. quitar ;
- rwx: Derechos a añadir o quitar.
Por último, ten en cuenta que para modificar los derechos de un fichero, debes ser el propietario o utilizar el superusuario.