Esta es la continuación del blog del curso intensivo de Bash, para resumir, Bash es un Shell de algunos que puede ser instalado en Linux, se trata del Shell mas usado dentro de las distribuciones Linux y aunque hay un montón de comandos con sus instrucciones que cada uno daría para un blog de cada uno. Pero el objetivo de estos dos blogs es servir como resumen recordatorio para que puedas moverte dentro de Linux a través del Shell con cierta soltura.
Esta vez voy a abordar el manejo de usuarios, grupos y permisos, quizás en el siguiente aborde el tema de la administración de software.
Administración de usuarios.
Los sistemas operativos para poder ser usado entre varios usuarios, cuentan con ciertas configuraciones que permite una carpeta personal, privada y aislada de los demás usuarios en que dicho dueño puede guardar sus archivos personales, pero también dichos usuarios tienen privilegios unos mas que otros para poder hacer con el equipo lo que desee, desde instalar software hasta eliminar la cuenta de otros usuarios.
La mas común de las acciones es al momento de instalar algún programa o paquete, en ese momento nos pide escribir nuestra contraseña si somos un "superusuario" o administrador.
sudo = antecede alguna acción para la que necesitas ser administrador
su = superusuario, permite controlar cuentas
Si cuentas una versión Linux basado de Debian, lo mas seguro te suene el comando "sudo", pero para todos las distribuciones, el comando "su" está para subir los privilegios y poder realizar un montón de acciones sin estar esclavo de poner una y otra vez la contraseña. Cabe resaltar que el modo superusuario es el mas peligroso, así que úsalo sabiendo lo que estás haciendo.
sudo apt-get install python3
// Acción para instalar un paquete
su = accede al usuario root directamente y pide su contraseña
su [usuario] = accede al usuario en cuestión y pide contraseña
Aunque Bash me dice todo el tiempo que usuario es el que usa la terminal, hay comandos redundantes que me dicen eso mismo.
who = me indica que usuario, que terminal estoy usando y la fecha y hora de último acceso.
whoami = me dice que usuario soy
Cada cuenta de usuario en Linux debe pertenecer al menos a un grupo y según los privilegios del grupo, también son los privilegios de los usuarios, es decir que si un usuario es técnico y a la vez abogado solo por poner un ejemplo, este usuario cuenta con los mismos privilegios de acceder a la información de los técnicos y como también es abogado, también tiene acceso a la información de los abogados. Espero que se haya entendido que los privilegios se suman.
groups = me dice a que grupos pertenece el usuario actual
groups [usuario] = me dice a que grupos pertenece dicho usuario
Si te fijas en los nombres de los grupos, algunos tienen nombres de accesorios de un PC, como fax, scanner, cdrom, dialout, floppy, audio, video. Esto da una idea de que un usuario puede usar un fax, pero posiblemente no un escáner, puede escuchar audio y video, pero no tener acceso a internet.
Un comando similar a "groups" es "id":
id = devuelve un número de identidad del usuario y de los grupos al que pertenece
id [usuario] = devuelve los números id del usuario y los grupos a los que pertenece.
Los comandos siguientes modifican o crean usuarios y grupos, para usarlos debes ser un usuario administrador.
adduser [nuevo usuario] = crea un usuario nuevo, con contraseña, grupos y datos administrativos.
addgroup [nuevo grupo] = crea un nuevo grupo.
usermod -g [Grupo] [usuario] = modifica el grupo principal al que pertenece un usuario.
passwd [usuario] = modifica la contraseña de un usuario.
adduser: Crea un usuario nuevo, totalmente completo, con su contraseña, grupo principal, y datos personales, esto también le crea una carpeta personal al nuevo usuario, así que yo evitaría usar este comando a menos que sea necesario o si no habría un infierno de carpetas vacías o llenas de cosas ocultas que no es necesario que esté.
addgroup: agrega un nuevo grupo, también es un comando que usaría con cautela.
usermod: Este es un comando que puede hacer prácticamente de todo con un usuario y que daría para un blog completo, pero no me pondré a hacer nada de eso, este sí que es peligroso.
Es capaz de crear un usuario con fecha de expiración y después de dicha fecha deshabilitar la cuenta. Puede crear cuentas que expiren al tiempo de no volver a ingresar la contraseña, puede bloquear una cuenta, puede encriptar la carpeta de personal, puede cambiar la ruta de destino de la carpeta personal y muchísimo mas.
passwd: cambia la contraseña de un usuario y esta solo puede ser cambiada por el mismo usuario o por el usuario root.
Administración de permisos.
Cuando usamos el comando ls -l, que sirve para listar ficheros y -l, para dar detalles de cada fichero, podemos notar algunas columnas, la primera columna refiere a los permisos, la segunda al usuario, la tercera al grupo, la cuarta a la fecha de creación y la última al nombre de los archivos.
Vamos a fijarnos un momento en esas letras de la primera columna, en total tiene 10 caracteres y en dichos caracteres hay cuatro grupos de letras.
// el primer caractér
- = indica que es un fichero común y corriente o archivo.
d = indica que es un directorio.
l = indica que es un link o acceso directo.
// los siguientes 3 caracteres son los permisos de usuario.
- = indica que no tiene ningún permiso
r = permiso para leer el archivo.
w = permiso para ser escrito.
x = permiso para ser ejecutado.
// los siguientes 3 caracteres son los permisos del grupo principal.
rxw = funciona al igual que los permisos mencionados arriba.
// los últimos 3 caracteres son los permisos de otros grupos.
rxw = funciona igual.
Esto quiere decir que cada fichero puede ser leído, escrito o ejecutado dependiendo del usuario que seamos y del grupo al que pertenezcamos. Por ejemplo un usuario puede crear un fichero al que solo él puede ejecutar leer y escribir, pero que a los grupos a los que pertenece no tenga acceso.
Puede ser también que el usuario pertenece a un grupo, pero que dicho fichero solo le permite leer la información, pero no puede ejecutarla ni modificarla.
// En directorios las letras -rwx tienen otro significado, pero básicamente puede hacer lo mismo.
- = sin permiso
r = permiso de listar el contenido dentro de la carpeta.
w = permiso de crear o eliminar ficheros dentro de la carpeta.
x = permiso de acceder a la carpeta.
Existe un comando que nos permite controlar los permisos de los ficheros, es "chmod".
chmod [permisos] [fichero] = modifica los permisos de los ficheros.
+ = agrega un permiso.
- = quita un permiso.
r = acceso a lectura.
w = acceso a escritura.
x = acceso a ejecución.
u = refiere al usuario.
g = refiere al grupo.
o = refiere a otros.
Vamos a ver dos ejemplos para ver su uso:
chmod +r -w = permite leer, pero no escribir en todos los grupos.
chmod u-x, g+w, o-r = no permite ejecutar al usuario, permite escribir al grupo, no permite leer a los demás.
Conclusiones.
Esto ha sido todo por ahora, creo que ya se hizo bastante largo y espero que se haya entendido bien el uso de estos comando, a pesar de que no toqué ninguno a profundidad, realmente es mucho lo que se puede hacer y lo que se puede controlar desde la terminal, incluso mas allá de lo que puede hacer el sistema desde la interfaz gráfica.
Aún falta un último tema que tratar de Bash, pero aún me falta algo de práctica y documentarme mejor antes de hacer un último tutorial de este tema. No siendo mas nos vemos en un próximo blog.
Comments