Documentos de Académico
Documentos de Profesional
Documentos de Cultura
en Linux
Tabla de contenidos:
1. Como añadir, editar o eliminar usuarios
1. Añadir un nuevo usuario
2. Eliminar usuario
3. Cambiar la contraseña de una cuenta
4. Ver todos los usuarios del sistema
2. Como añadir, editar o eliminar grupos
1. Añadir un nuevo grupo
2. Eliminar un grupo
3. Añadir un usuario dentro de un grupo
4. Eliminar un usuario de un grupo
5. Ver todos los grupos del sistema
3. Cambiar el propietario de un fichero
1. Cambiar usuario propietario con Chown
2. Cambiar grupo propietario con Chgrp
4. Asignar permisos de lectura, escritura y ejecución
1. Usar Chmod en modo numérico u octal
2. Usar Chmod en modo texto
5. Esto continua en breve
Eliminar Usuario
Si para añadir una cuenta utilizamos adduser, para eliminar un usuario el comando a utilizar es
userdel. Ya verás que, al eliminar el usuario, si este estaba dentro de un grupo donde solo estaba él,
el grupo también se borrará.
Esto es lo que ocurre, por ejemplo, en una cuenta de usuario local, ya que, al momento de crearse,
se crea también un grupo en el que solamente está él.
Aquí te dejo la sentencia básica. En este caso, es solo aplicar el comando y la cuenta se borrará
automáticamente del sistema.
sudo userdel usuario
Añadir un Grupo
Para añadir un grupo, basta con abrir nuevamente una ventana de terminal, y siguiendo con la
misma lógica que en el caso de usuarios, teclear la siguiente sentencia:
sudo groupadd grupo
Eliminar un Grupo
Como te he explicado como crear un nuevo grupo, también vale la pena comentar como eliminar un
grupo existente, si bien esto es algo que difícilmente vas a tener que utilizar, a menos que
administres un sistema con una gran cantidad de usuarios y grupos creados.
Al igual que en el caso de los usuarios, te recomiendo NO borrar en ningún caso uno de los grupos
creados por el sistema en la instalación inicial, a no ser que sepas muy bien lo que haces.
sudo groupdel grupo
Un caso en el que esto puede serte de utilidad es si has creado un usuario nuevo y trabajas en una
distribución, como Ubuntu, en el que el usuario Root está deshabilitado. En este caso, si quieres que
el nuevo usuario pueda hacer uso “sudo”, necesitarás añadirlo al grupo:
sudo adduser usuario sudo
En caso de que se trate de un directorio, si quieres que la orden se aplique de forma recursiva para
todos los ficheros contenido en él, el comando será el siguiente. Si utilizas este mismo comando sin
el parámetro -R, el cambio que hayas especificado solo tendrá efecto sobre el directorio, pero no
sobre su contenido.
sudo chown -R usuario ruta-directorio
Otro ejemplo. Vamos a suponer que queremos cambiar el propietario del archivo hola.txt dentro de
la carpeta Documentos del usuario tom. El actual propietario es el usuario tom, y queremos que el
nuevo sea el usuario lisa.
sudo chown lisa /home/tom/Documentos/hola.txt
Cambiar Grupo Propietario con Chgrp
Para cambiar el grupo propietario de un fichero te puedes valer del comando chgrp, aunque más
adelante verás que también lo puedes hacer con chown. De forma análoga a lo que ocurre al
cambiar el propietario a nivel de usuario, en este caso el grupo propietario cambiaré, pero el usuario
seguirá siendo el mismo de antes. A continuación te dejo con la sintaxis básica:
sudo chgrp grupo ruta-archivo
En caso de que se trate de un directorio, si quieres que la orden se aplique de forma recursiva para
todos los ficheros contenido en él, el comando será el siguiente. Al igual que antes, si utilizas el
comando sin el parámetro -R, la orden solamente tendrá efecto sobre el directorio especificado, pero
NO sobre el contenido dentro de él.
sudo chgrp -R grupo ruta-directorio
Hay otra modalidad de funcionamiento del comando chown que sirve para cambiar el grupo
propietario de un fichero. Ello consiste en especificar un grupo, pero no indicar el usuario. En este
ultimo caso, la operación es la misma que realiza el comando chgrp. La sintaxis es la siguiente:
sudo chown :grupo ruta-archivo
Si quieres cambiar tanto el usuario como el grupo al que pertenece un determinado fichero, la
sintaxis de uso es la siguiente:
sudo chown usuario:grupo ruta-archivo
En esta representación, X se refiere a los permisos del usuario propietario, Y a los del grupo
propietario y Z a los del resto de usuarios. X, Y y Z pueden ser cualquier número entero del 0 al 7,
teniendo en cuenta la siguiente regla:
• 0 – Ningún permiso
• 1 – Dar permiso de ejecución
• 2 – Dar permiso de escritura
• 4 – Dar permiso de lectura
Cualquier combinación de los diferentes tipos de permisos que podemos tener se obtiene sumando
los números que lo representan. Así, nos salen las siguientes combinaciones:
• 0 – Ningún permiso
• 1 – Ejecución
• 2 – Escritura
• 3 – Escritura y ejecución
• 4 – Lectura
• 5 – Lectura y ejecución
• 6 – Lectura y escritura
• 7 – Lectura, escritura y ejecución
Como ves, la combinación 777 correspondería con el máximo nivel de privilegios que que pueden
asignar a un fichero.
Para cambiar los privilegios de un directorio, la sentencia es exactamente la misma, teniendo en
cuenta que, como tal, solamente aplicara al directorio en cuestión y no a su contenido. Si quieres
que se aplique de forma recursiva para todo el contenido, deberemos utilizar el comando así:
sudo chmod XYZ -R ruta-directorio
Te pongo debajo algunos ejemplos sobre esto, pero recuerda que si quieres hacer pruebas en tu
propio sistema a modo de aprendizaje, be carefull y piensa bien en los permisos que das o quitas y
en que archivos. A modo de testeo, lo mejor es que practiques sobre algún archivo de prueba).
Para el primer caso, supón que quieres cambiar los privilegios del fichero hola.txt (un archivo de
texto que he creado) dentro de la carpeta Documentos del usuario tom. Queremos dar permisos de
lectura y escritura al usuario y grupo propietarios, y solo de lectura al resto del mundo.
sudo chmod 664 /home/tom/Documentos/hola.txt
Esta estructura de permisos (lectura y escritura para usuario y grupo, y solo lectura para el resto de
usuarios) es la que suele ser habitual para todos los archivos de texto o imágenes dentro de la home
de un usuario, por lo que muy probablemente ya tendrá por defecto esos permisos.
Sobre el ejemplo anterior, imagina que quieres restringir los permisos de lectura y escritura solo al
usuario, y que tanto los usuarios dentro del grupo propietario como el resto del mundo solo tengan
permiso de lectura.
sudo chmod 644 /home/tom/Documentos/hola.txt
En este otro caso, imagina que has creado un script en Bash o en Python dentro de la carpeta
Documentos. Por defecto, lo habitual es que tenga la estructura de permisos 664. Si quieres poder
ejecutar el script, pero solo desde tu usuario, puedes modificar los permisos de esta manera:
sudo chmod 764 /home/tom/Documentos/script.py
En esta representación, el primer parámetro después del chmod expresa el nivel al que queremos
asociar un determinado permiso
• u : Usuario,
• g : Grupo,
• o : Otros
Seguidamente tenemos el modificador. Esto nos permite especificar un permiso de forma absoluta
(=) o bien de forma relativa al permiso actual (+, -)
• = : Asignar un permiso de forma absoluta,
• + : Añadir un permiso
• – : Quitar un permiso
Por ultimo, seguido del modificador tenemos el modo o tipo de permiso que queremos asignar, o
quitar, que básicamente son:
• r : Lectura
• w : Escritura
• x : Ejecución
Para cambiar los permisos de un directorio, la sentencia es exactamente la misma, teniendo en
cuenta que, como tal, solamente aplicara al directorio en cuestión y no a su contenido. Si quieres
que se aplique de forma recursiva para todo el contenido, deberemos utilizar el comando así:
sudo chmod [u,g,o][=,+,-][r,w,x] -R ruta-directorio
Veamos algunos ejemplos, porqué como habrás podido intuir, las opciones son varias y variadas:
En primer lugar, te muestro la sintaxis equivalente en modo texto, del primero ejemplo que te he
puesto para el modo octal, en el que hemos asignado permisos de lectura y escritura (6) para usuario
y grupo y de solo lectura para el resto (4) de un script de ejemplo.
sudo chmod u=rw,g=rw,o=r script.py
Sobre este mismo ejemplo, pongamos por caso que quieres añadir los permisos de ejecución a nivel
de usuario, pero mantener invariables los permisos a nivel de grupo y otros. En este caso, puedes
optar por utilizar el operador “+” y ahorrarte el volver a hacer una asignación absoluta.
sudo chmod u+x script.py
Hecho esto, tu script de ejemplo tendrá permisos de lectura, escritura y ejecución a nivel de usuario,
lo que equivaldría al bit 7 en octal. Si quieres realizar la operación inversa, es decir, quitar el
permito de ejecución a nivel de usuario, es tan simple como hacer esto:
sudo chmod u-x script.py
Otro caso simple sería quitar los permisos de escritura para el grupo (de modo que solo dejaríamos
los privilegios de escritura para el usuario propietario). Siguiendo la misma lógica de antes,
utilizaríamos la siguiente sentencia:
sudo chmod g-w script.py
Así podríamos ir siguiendo con muchas otras combinaciones, pero creo que con esto ya conoces
como modificar permisos tanto en modo numérico como en modo octal. A partir de ahí, decantarte
por uno u otro ya dependerá de lo intuitivo y practico que te resulte cada uno.