Documentos de Académico
Documentos de Profesional
Documentos de Cultura
sto es un poco bsico pero s que es muy til conocerlo. Espero le sirva a ms de uno.
ls [opciones] [archivos];
(list) Lista el contenido de un directorio, mostrando todos los archivos que cumplan cierto patron,
ejemplo:
ls -a
muestra todos los archivos del directorio actual.
ls -l -h *.for muestra todos los atributos (-l) de todos (*) los archivos que terminan con .for mostrando
el tama~no (-h) en Bytes, KBytes, etc.
sort [opciones [archivo];
Ordena alfabeticamente el contenido de un archivo, si no se da un archivo, se ordena lo que se escribe
desde el teclado2 hasta dar la combinacion: ctrl+d, ejemplo:
sort -n -r milista.l Ordena el contenido del archivo milista.l numricamente (-n) y en orden inverso (r).
mkdir [opciones] directorio;
Crea un directorio.
rmdir [opciones] directorio;
Borra directorios.
cd [directorio];
Cambia de directorio, sin argumentos se llega a home.
tree [directorio];
Muestra la estructura de directorios y archivos en forma esquematica.
cp archivo1 ruta/[archivo2];
Copia el archivo1 en un directorio (ruta) y lo renombra (archivo2).
rm archivo;
borra archivos, la opcion -r hace el proceso recursivo para borrar todo un directorio. Ejemplo:
rm -r Documentos/*.c borra todos los archivos que terminan en .c an si son directorios o estnn
contenidos en otros directorios.
mv archivo1 archivo2;
Mueve archivos o directorios de archivo1 a archivo2, si el archivo permanece en el mismo directorio
equivale a
cambiar de nombre al archivo.
more archivo;
muestra el contenido de un archivo de texto por paginas.
less archivo;
similar a more (solo en sistemas GNU).
cat archivo1 archivo2
muestra el contenido de uno o varios archivos sin paginar.
touch archivo;
cambia la fecha de los archivos, si no existe crea un archivo vaco.
locate archivo;
localiza un archivo.
whereis programa;
muestra la ubicacin de un programa, debe estar en un directorio contenido en PATH^3
file archivo;
describe el tipo de archivo, por ejemplo: imagen, de texto, etc.
Nota: file identifica el tipo de archivo an si su extension no es la correcta.
whatis
comando muestra la descripcin de comando.
wc [opciones] [archivo];
word count, cuenta las palabras (-w), lineas (-l), caracteres (-m) o bytes (-c) en un archivo de texto.
head archivo;
muestra el inicio de un archivo
tail archivo;
muestra el final de un archivo
ln archivo link;
crea enlaces (links) a archivos o carpetas, la opcin -s hace un link simblico.
diff archivo1 archivo2;
muestra las diferencias entre dos archivos
tar [opciones] directorio.tar directorio;
empaqueta o desempaqueta archivos .tar, ejemplo:
tar -cvf mitar.tar [midirectorio] empaqueta midirectorio en el archivo mitar.tar, cambiando c por x y
omitiendo midirectorio se desempaqueta.
gzip archivo.[gzip];
comprime o descomprime (-d) archivos gz
9 Respuestas a Comandos bsicos Linux Manejo de archivos y directorios
Feed para esta Entrada Direccin de Trackback
1.
1 Dinosaurio
Noviembre 28, 2007 en 4:50 pm
Web
Bsqueda
Artculos ms vistos
Gua rpida para comprimir descomprimir archivos
Administracin de usuarios
Gua rpida de comandos Linux
Tipos de dispositivos
ADMINISTRACIN DE USUARIOS
Copyright 2005-2008 Sergio Gonzlez Durn
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y
cuando se cite al autor y la fuente de linuxtotal.com.mx y segn los trminos de la GNU
Free Documentation License, Versin 1.2 o cualquiera posterior publicada por la Free
Software Foundation.
autor: sergio.gonzalez.duran@gmail.com
[NDICE...]
Linux es un sistema multiusuario, por lo tanto, la tarea de aadir, modificar, eliminar y en general
administrar usuarios se convierte en algo no solo rutinario, sino importante, adems de ser un elemento
de seguridad que mal administrado o tomado a la ligera, puede convertirse en un enorme hoyo de
seguridad. En este manual aprenders todo lo necesario para administrar completamente tus usuarios en
GNU/Linux.
Tipos de usuarios
Los usuarios en Unix/Linux se identifican por un nmero nico de usuario, User ID, UID. Y pertenecen
a un grupo principal de usuario, identificado tambin por un nmero nico de grupo, Group ID, GID.
El usuario puede pertenecer a ms grupos adems del principal.
Aunque sujeto a cierta polmica, es posible identificar tres tipos de usuarios en Linux:
Usuario root
Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.
No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos
privilegios de root.
No tienen contraseas pues son cuentas que no estn diseadas para iniciar sesiones con ellas.
Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y
cuando se requiera hacer uso de comandos solo de root, utilizar el comando su.
En las distros actuales de Linux se les asigna generalmente un UID superior a 500.
/etc/passwd
Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de
configuracin 'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se crea
al momento de la instalacin con el usuario root y las cuentas especiales, ms las cuentas de usuarios
normales que se hayan indicado al momento de la instalacin.
El archivo /etc/passwd contiene una lnea para cada usuario, similar a las siguientes:
root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio Gonzlez:/home/sergio:/bin/bash
La informacin de cada usuario est dividida en 7 campos delimitados cada uno por ':' dos puntos.
Campo 1
Campo 2
Campo 3
Campo 4
Campo 5
Campo 6
Campo 7
/etc/passwd
Es el nombre del usuario, identificador de inicio de sesin (login). Tiene que ser nico.
La 'x' indica la contrasea encriptada del usuario, adems tambin indica que se est
haciendo uso del archivo /etc/shadow, si no se hace uso de este archivo, este campo se vera
algo as como: 'ghy675gjuXCc12r5gt78uuu6R'.
Nmero de identificacin del usuario (UID). Tiene que ser nico. 0 para root, generalmente
las cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario normal del 101 en
delante, en las distribuciones mas recientes esta numeracin comienza a partir del 500.
Numeracin de identificacin del grupo (GID). El que aparece es el nmero de grupo
principal del usuario, pero puede pertenecer a otros, esto se configura en /etc/groups.
Comentarios o el nombre completo del usuario.
Directorio de trabajo (Home) donde se sita al usuario despus del inicio de sesin.
Shell que va a utilizar el usuario de forma predeterminada.
/etc/shadow
Anteriormente (en sistemas Unix) las contraseas cifradas se almacenaban en el mismo /etc/passwd. El
problema es que 'passwd' es un archivo que puede ser ledo por cualquier usuario del sistema, aunque
solo puede ser modificado por root. Con cualquier computadora potente de hoy en da, un buen
programa de descifrado de contraseas y paciencia es posible "crackear" contraseas dbiles (por eso la
conveniencia de cambiar peridicamente la contrasea de root y de otras cuentas importantes). El
archivo 'shadow', resuelve el problema ya que solo puede ser leido por root. Considrese a 'shadow'
como una extensin de 'passwd' ya que no solo almacena la contrasea encriptada, sino que tiene otros
campos de control de contraseas.
El archivo /etc/shadow contiene una lnea para cada usuario, similar a las siguientes:
root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::
La informacin de cada usuario est dividida en 9 campos delimitados cada uno por ':' dos puntos.
/etc/shadow
Campo 1 Nombre de la cuenta del usuario.
Campo 2 Contrasea cifrada o encriptada, un '*' indica cuenta de 'nologin'.
Das transcurridos desde el 1/ene/1970 hasta la fecha en que la contrasea fue cambiada por
Campo 3
ltima vez.
Campo 4 Nmero de das que deben transcurrir hasta que la contrasea se pueda volver a cambiar.
Nmero de das tras los cuales hay que cambiar la contrasea. (-1 significa nunca). A partir
Campo 5
de este dato se obtiene la fecha de expiracin de la contrasea.
Nmero de das antes de la expiracin de la contrasea en que se le avisar al usuario al
Campo 6
inicio de la sesin.
Campo 7 Das despus de la expiracin en que la contrasea se inhabilitara, si es que no se cambio.
Fecha de caducidad de la cuenta. Se expresa en das transcurridos desde el 1/Enero/1970
Campo 8
(epoch).
Campo 9 Reservado.
/etc/group
Este archivo guarda la relacin de los grupos a los que pertenecen los usuarios del sistema, contiene
una lnea para cada usuario con tres o cuatro campos por usuario:
root:x:0:root
ana:x:501:
sergio:x:502:ventas,supervisores,produccion
cristina:x:503:ventas,sergio
El campo 2 'x' indica la contrasea del grupo, que no existe, si hubiera se mostrara un 'hash'
encriptado.
Actualmente al crear al usuario con useradd se crea tambin automticamente su grupo principal de
trabajo GID, con el mismo nombre del usuario. Es decir, si se aade el usuario 'sergio' tambin se crea
el /etc/group el grupo 'sergio'. Aun asi, existen comandos de administracin de grupos que se explicarn
ms adelante.
pwconv y pwunconv
El comportamiento por defecto de todas las distros modernas de GNU/Linux es activar la proteccin
extendida del archivo /etc/shadow, que (se insiste) oculta efectivamente el 'hash' cifrado de la
contrasea de /etc/passwd.
Pero si por alguna bizarra y extraa situacin de compatibilidad se requiriera tener las contraseas
cifradas en el mismo archivo de /etc/passwd se usara el comando pwunconv:
Se vuelve a crear el archivo shadow, adems ntese los permisos tan restrictivos (400) que tiene este
archivo, haciendo sumamente difcil (no me gusta usar imposible, ya que en informtica parece ser que
los imposibles 'casi' no existen) que cualquier usuario que no sea root lo lea.
/etc/login.defs
En el archivo de configuracin /etc/login.defs estn definidas las variables que controlan los aspectos
de la creacin de usuarios y de los campos de shadow usadas por defecto. Algunos de los aspectos que
controlan estas variables son:
Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y ajustarlas al
gusto. Recerdese que se usaran principalmente al momento de crear o modificar usuarios con los
comandos useradd y usermod que en breve se explicaran.
-G otros grupos a los que puede pertenecer el usuario, separados por comas.
-r crea una cuenta del sistema o especial, su UID ser menor al definido en /etc/login.defs en la
variable UID_MIN, adems no se crea el directorio de inicio.
-s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que
queda establecido.
Ahora bien, realmente no hay prcticamente necesidad de indicar ninguna opcin ya que si hacemos lo
siguiente:
#> useradd juan
Se crear el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd, /etc/shadow y
/etc/group. Tambin se crear el directorio de inicio o de trabajo: /home/juan y los archivos de
configuracin que van dentro de este directorio y que ms adelante se detallan.
Las fechas de expiracin de contrasea, etc. Quedan lo ms amplias posibles asi que no hay problema
que la cuenta caduque, asi que prcticamente lo nico que faltara sera aadir la contrasea del usuario
y algn comentario o identificacin de la cuenta. Como aadir el password o contrasea se estudiara en
un momento y viendo las opciones con '-c' es posible establecer el comentario, campo 5 de /etc/passwd:
#> useradd -c "Juan Perez Hernandez" juan
Siempre el nombre del usuario es el ltimo parmetro del comando. Asi por ejemplo, si queremos
salirnos del default, podemos establecer algo como lo siguiente:
#> useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan
Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y su UID ser el
800 en vez de que el sistema tome el siguiente nmero disponible.
-G establece otros grupos a los que puede pertenecer el usuario, separados por comas.
-L bloque la cuenta del usuario, no permitiendol que ingrese al sistema. No borra ni cambia
nada del usuario, solo lo deshabilita.
Casi seguro tambin cambiar el nombre del directorio de inicio o HOME en /home, pero si no fuera
as, entonces:
#> usermod -d /home/sego sego
Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn shell y su
grupo principal de usuario qued establecido al GID 505 y todo esto se aplic al usuario 'sego' que
como se observa debe ser el ltimo argumento del comando.
El usuario 'sego' sali de vacaciones y nos aseguramos de que nadie use su cuenta:
#> usermod -L sego
Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no elimina su
directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opcin, ya que elimina la
cuenta pero no la informacin de la misma.
#> userdel -r sergio
Al igual que lo anterior elimina la cuenta totalmente, pero con la opcin -r adems elimina su directorio
de trabajo y archivos y directorios contenidos en el mismo, asi como su buzn de correo, si es que
estuvieran configuradas las opciones de correo. La cuenta no se podr eliminar si el usuario esta
logueado o en el sistema al momento de ejecutar el comando.
La opcin -f es igual que la opcin -r, elimina todo lo del usuario, cuenta, directorios y archivos del
usuario, pero adems lo hace sin importar si el usuario esta actualmente en el sistema trabajando. Es
una opcin muy radical, adems de que podra causar inestabilidad en el sistema, asi que hay que usarla
solo en casos muy extremos.
El usuario root es el nico que puede indicar el cambio o asignacin de contraseas de cualquier
usuario. Usuarios normales pueden cambiar su contraea en cualquier momento con tan solo invocar
passwd sin argumentos, y podr de esta manera cambiar la contrasea cuantas veces lo requiera.
passwd tiene integrado validacin de contraseas comunes, cortas, de diccionario, etc. asi que si por
ejemplo intento como usuario normal cambiar mi contrasea a 'qwerty' el sistema me mostrar lo
siguiente:
$> passwd
Changing password for user prueba.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$>
Ntese que al ingresar 'qwerty' como contrasea se detect que es una secuencia ya conocida como
contrasea y me manda la advertencia: "BAD PASSWORD: it is based on a dictionary word", sin
embargo me permite continuar, al ingresar la verificacin. Es decir, passwd avisa de malas o dbiles
contraseas pero permite establecerlas si realmente se desea.
Resumiendo entonces, se podra decir que todo este tutorial se reduce a dos lneas de comandos para
crear y dejar listo para trabajar a un usuario en Linux:
#> useradd ana
#> passwd ana
Se crea el usuario 'ana', useradd hace todo el trabajo de establecer el shell, directorio de inicio, copiar
archivos iniciales de configuracin de la cuenta, etc. y despus passwd establece la contrasea. Asi de
simple.
passwd tiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y varias opciones
ms que controlan la vigencia de la contrasea, es decir, es otro modo de establecer los valores de la
cuenta en /etc/shadow. Para ms informacin consulta las pginas del manual:
$> man passwd
Archivos de configuracin
Los usuarios normales y root en sus directorios de inicio tienen varios archivos que comienzan con "."
es decir estn ocultos. Varan mucho dependiendo de la distribucin de Linux que se tenga, pero
seguramente se encontrarn los siguientes o similares:
#> ls -la
drwx-----drwxr-xr-x
-rw-r--r--rw-r--r--rw-r--r--
2
7
1
1
1
ana
root
ana
ana
ana
9
9
9
9
9
09:54
09:54
09:54
09:54
09:54
.
..
.bash_logout
.bash_profile
.bashrc
.bash_profile aqu podremos indicar alias, variables, configuracin del entorno, etc. que deseamos
iniciar al principio de la sesin.
.bash_logout aqu podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al
salirnos de la sesin.
.bashrc es igual que .bash_profile, se ejecuta al principio de la sesin, tradicionalmente en este archivo
se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura el entorno.
Lo anterior aplica para terminales de texto 100%.
Si deseamos configurar archivos de inicio o de salida de la sesin grfica entonces, en este caso, hay
que buscar en el men del ambiente grfico algn programa grfico que permita manipular que
programas se deben arrancar al iniciar la sesin en modo grfico. En la mayora de las distribuciones
existe un programa llamado "sesiones" o "sessions", generalmente esta ubicado dentro del men de
preferencias. En este programa es posible establecer programas o scripts que arranquen junto con el
ambiente grfico, sera equivalente a manipular 'bashrc'.
Adems Linux permite que el usuario decida que tipo de entorno Xwindow a utilizar, ya sea algn
entorno de escritorio como KDE o Gnome o algn manejador de ventanas como Xfce o Twm. Dentro
del Home del usuario, se crear un directorio o archivo escondido "." , por ejemplo '.gnome' o '.kde'
donde vendr la configuracin personalizada del usuario para ese entorno. Dentro de este directorio
suele haber varios directorios y archivos de configuracin. Estos son sumamente variados dependiendo
de la distribucin y del entorno. No es recomendable modificar manualmente (aunque es perfectamente
posible) estos archivos, es mucho mas sencillo modificar va las interfases grficas que permiten
cambiar el fondo, protector de pantalla, estilos de ventanas, tamaos de letras, etc.
chage
chpasswd
id
gpasswd
groupadd
groupdel
groupmod
groups
newusers
pwconv
pwunconv
useradd
userdel
usermod
.bash_logout
.bash_profile
.bashrc
/etc/group
/etc/gshadow
/etc/login.defs
/etc/passwd
/etc/shadow