Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
Orden de arranque
En primer lugar, cuando enciendes el ordenador, arranca la BIOS. Esta se encarga
de leer los primeros 512bytes del dispositivo de arranque que tenga configurado.
Aquí, en el mbr, durante la instalación de linux, has instalado un el programa que
le indica a la bios que se vaya a leer el fichero de la partición que le hayas dicho en
la instalación. /boot/grub/grub.conf
Así pues, el siguiente proceso ya está en manos del gestor de arranque. En tu caso
es el grub que te dejará elegir entre los sistemas operativos que haya en el fichero
grub.conf.
En el caso de que elijas linux, el gestor de arranque buscará un fichero llamado
/boot/vmlinuz que es el kernel del sistema operativo y otro llamado /boot/initrd
que es una imagen comprimida de un sistema de archivos temporal. Se cargan en
memoria y se configuran los distintos dispositivos, procesadores, subsistemas de
entrada/salida, etc. Posteriormente, se inicia el programa: init que se encarga de
montar el sistema de archivos real y terminar el proceso de arranque, para lo cual,
lee el fichero /etc/inittab que es el que indica el nivel de ejecución.
Niveles de ejecución
Los niveles de ejecución son procesos que ejecuta un sistema para llegar a
un estado. Un sistema puede estar en distintos estados:
Cuando se inicia un estado, por ejemplo, tras arrancar, se ejecutan los scripts propios de ese
estado. Estos scripts o programas son los ubicados en el directorio: /etc/rc.d/rc?.d/ donde ? es
el nivel de ejecución establecido en /etc/inittab. En concreto, se ejecutarán todos los
programas que se empiecen por S (Start).
La orden de /etc/inittab que determina el nivel de arranque viene dada por la línea:
id:5:initdefault:
Cuando se apaga el ordenador, es decir, cuando se llama al estado 0, lo que se hace es ejecutar
todos los programas de la misma ruta (/etc/rc.d/rc?.d/) que empiezan por K (Kill). Así, pues,
cuando cambies de estado, p.ej. del estado 3 al 5, se ejecutarán primero los programas:
/etc/rc.d/rc3.d/K... y luego los programas: /etc/rc.d/rc5.d/S... O sea, primero se cierran los
programas propios del estado 3 y luego se arrrancan los programas propios del estado 5.
Puedes cambiar del nivel actual a otro, p.ej el 1 de la forma:
init 1
para volver:
init 5
Continuación de orden de arranque
Init, lee el archivo /etc/ttytab para ver cuantas terminales hay, y mediante fork crea un
proceso hijo para cada terminal. Cada proceso hijo ejecuta getty, que es quien imprime
el prompt del login y obtiene el nombre de usuario. Cuando el usuario entra al sistema,
se ejecuta login con el nombre como argumento y se ejecuta el Shell de ese usuario.
Si el nombre de usuario y la clave fueron correctos, arranca el proceso shell: éste
programa corre como cualquier otro proceso en el sistema.
El más conocido esel programa bash pero existen otros shells, por ejemplo csh(C Shell),
ksh(KornShell), sh(BourneShell), tcsh, zsh, ash.
El shell del usuario se especifica en el /etc/passwd, generalmente sh.
Es así, que el shell es hijo del init, los procesos de usuario los nietos, y todos los
procesos forman parte de un mismo árbol.
En los sistemas operativos GNU Linux, para visualizar ese arbol podemos hacerlo a
través del comando pstree. Por ejemplo, ejecutamos pstree -pl, donde los argumentos p
y l, respectivamente muestran los pid de los procesos y no truncan líneas largas.
EL FICHERO
/etc/profile, .bash_profile, .bashrc, .bash_logout
Existen tres ficheros en el directorio de un usuario que tienen un significado especial
para el shell Bash. Estos ficheros permiten al usuario configurar el entorno de su
cuenta automáticamente cuando entra en el sistema, cuando arranca un subshell o
ejecutar comandos cuando sale del sistema.
Los nombres de estos ficheros son .bash_profile, .bashrc y .bash_logout. Si ninguno
de estos ficheros existe en el directorio del usuario, /etc/profile es utilizado por el
sistema como fichero de configuracion de bash.
.bash_profile es el mas importante de los tres. Es leido y los comandos incluidos en
el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en
este fichero no tendrá efecto hasta que salgamos y entremos en el sistema de nuevo.
Una alternativa para no tener que salir del sistema es ejecutar el
comando:source .bash_source.
Bash permite dos sinónimos para este fichero, .bash_login (derivado del C
shell) y .profile (derivado del Bourne y Korn shell). Si .bash_profile no
existe, el sistema buscara primero .bash_login y luego .profile. Solamente
uno de estos ficheros es leído, en el caso que existan simultáneamente.
Éste fichero siempre se encuentra en el directorio HOME de cada usuario.
La otra forma de loguearnos es: su nombre_usuario De ésta manera
estaremos cambiando de usuario pero sin cargar el fichero .profile.
En definitiva, el archivo .profile permite realizar tareas que deseemos hacer
cada vez que nos logueemos y puede resultar extremadamente útil, pudiendo
llegar a hacer montones de cosas, simplemente sabiendo comandos de
Linux/UNIX.
Variables de entorno
Las variables de entorno son unos valores, etiquetados con un nombre (para
los que sepan programar: variables de las de toda la vida; el nombre de de
entorno es porque definen el entorno de trabajo, no por otra cosa).
Convencionalmente, los nombres de las variables se ponen en mayúsculas.
Variable PATH
EL PATH es una variable de entorno que contiene un grupo de directorios
predefinidos en los cuales el shell buscará el comando o programa a ejecutar. Esto
ahorra tiempo ya que el sistema no tendrá que buscar en todos los directorios el
programa a ejecutar. Por esto el sistema, en caso de que el directorio no figure en el
PATH, no podrá ejecutar el programa hasta que le demos la ruta exacta en donde se
encuentre.
Esta variable de entorno llamada PATH, es inicializada con un valor predeterminado
en el archivo /etc/profile que es sólo modificable por el "root" y funciona como una
referencia para todos los usuarios. Además cada usuario posee en un archivo oculto
denominado .bash_profile o .profile, donde se le asigna además del PATH inicial,
cualquier otra modificación exclusiva para él. También puede modificarse totalmente
esta variable.
Igualmente para poder ejecutar directamente un programa que
se encuentra en el directorio en que estamos parados
actualmente :
Para empezar tienes que comprobar si tu fichero tiene permiso de
ejecución y si no le tiene asignárselo. Una vez realizada esta
comprobación tienes dos formas de ejecutar tu fichero:
Utilizando la siguiente sintaxis: ./nombre donde nombre es el nombre
del fichero.
Variables exportadas
En el apartado anterior, veíamos que una subshell hereda parte de las variables definidas en la la
shell padre. Para que las shell hijas de una dterminada shell hereden una variable es necesario
indicarlo explícitamente con la orden export. Por ejemplo, si queremos que el valor de la
variable EDITOR pase a las subshell que sean hijas de la shell activa, tendremos que poner
$ export EDITOR o $ export EDITOR=vi
Ejemplos:
Asignar la palabra contenido a una variable llamada AA
$ AA=contenido
Mostrar el contenido de la variable en pantalla.
$ echo $AA
Abrir una shell hija de la anterior.
$ /bin/bash
Mostrar de nuevo el contenido de la variable
$ echo $AA
Salir de la subshell activa
$ exit
Mostrar de nuevo el contenido de la variable
$ echo $AA
Exportar la variable
$ export AA
Abrir una shell hija de la anterior.
$ /bin/bash
Mostrar de nuevo el contenido de la variable
$ echo $AA
Comillas
Este punto viene bien aclararlo antes de empezar a ver características de alias y script para no
tener complicaciones y confusiones. En GNU/Linux existen tres tipos de comillas: las dobles
("), comillas sencillas (') y comillas inversas o tics inversos (`). Empezaremos con las comillas
inversas. Estas indican al shell que tendrá que remplazar lo que esta encerrado entre ellas con
su resultado. Supongamos que quisiéramos ver solamente el día de hoy. Entonces teclearíamos
el comando
[shrek@pantano:~]$ date +%d
15
Ahora bien, cada vez que quisiéramos ver el día de hoy tendríamos que ingresar este comando
nuevamente. Si le asignamos a una variable de entorno el resultado, solo tendríamos que
mostrar esta variable.
[shrek@pantano:~]$ DIAHOY=`date +%d`
[shrek@pantano:~]$ echo $DIAHOY
15
Hay que tener en cuenta que para asignarle un valor a una variable tenemos que solo poner un
nombre seguido del signo "=" y luego lo que queramos ponerle dentro. En cambio para
mostrarla tendremos que anteponer el signo de dólar "$". Esto seria igual a poner
El otro tipo de comillas, la sencilla ('), le dice al sistema que no haga ninguna
expansión.
[shrek@pantano:~]$ DIAHOY='date +%d'
[shrek@pantano:~]$ echo $DIAHOY
date +%d
El ultimo tipo de comillas son las dobles, este tiene casi la misma
funcionalidad que las comillas simples pero con la salvedad de que lo que se
incluya dentro de estas estará sujeto a expansión por parte del shell, siendo los
caracteres con significado especial los tics inversos (`) el signo de dólar ($), la
diagonal (\) y las mismas comillas dobles ("). Por ejemplo podríamos ingresar
el siguiente comando
[shrek@pantano:~]$ echo "`date`"
Sat Apr 15 14:17:01 ART 2000
Alias
La utilización de alias nos da la capacidad de poder referenciar a un comando con otro
nombre. La diferencia sustancial que podemos encontrar con los script de shell, es que los
script para ejecutarse primero lanzaran a un subshell como un proceso hijo del shell que esta
ejecutando en ese momento. En cambio un alias funciona en el proceso del shell siendo
ejecutado en forma interna con la subsiguiente velocidad que esto otorga al no tener que
crearse un nuevo proceso o de buscar en el disco rígido.
Crear un "alias" al comando "date" con el modificador correspondiente:
[shrek@pantano:~]$ alias hora='date +%r'
[shrek@pantano:~]$ hora 02:45:04 PM
Ahora bien, esto funcionará mientras estemos en el sistema, ya que estos datos son cargados
en memoria y al salir del sistema se perderán. Para que cada vez que entremos al sistema los
alias sigan funcionando deberemos agregarlos a un archivo, que aparece en forma oculta en
el directorio de cada usuario, denominado .bashrc o en caso de que se requiera que el alias
funcione para todos los usuarios en el /etc/bashrc. Este archivo es leído por el /bin/bash cada
vez que se entra al sistema. En él se tendrá que poner la línea alias en igual forma que lo
haríamos en la interfaz de comandos.
Procesos
Control, Administración
y Monitorear los Jobs del
Shell, Procesos y
Prioridades
Job Control
Los shells ofrecen control job
La habilidad de parar, reiniciar, y enviar al segundo plano (background) los
procesos en ejecución
El shell te permite poner un & al final de la línea de comando para iniciarlo en el
segundo plano
También puedes presionar Ctrl+Z para suspender un trabajo ejecutándose en primer
plano
Trabajos suspendidos y enviados a segundo plano son asignados un número por el
shell
Estos números se pueden pasar como argumentos a comandos del shell de control de
trabajos
Estos comandos de Control-de-Trabajo incluyendo: jobs, fg, y bg
Los jobs
El comando del shell jobs imprime los trabajos activos, su estatus y número de
job:
$ jobs
[1]- Stopped vim index.html
[2] Running netscape &
[3]+ Stopped man ls
·Los números de los trabajos (Job) se dan en corchetes cuadrados
Al usarlo en combinación con otros controles de trabajos, necesitas
precederles con un símbolo de por ciento, por Ejemplo %1
Los trabajos marcados con + y - pueden ser accesados con %+ o %- y también por sus
números
%+ es como el shell denomina el trabajo actual - el trabajo más
recientemente activo
%- es el trabajo previo al trabajo actual
El Primer Plano: fg
Trae trabajos desde el (background) segundo plano al primer (foreground)
Reinicia un trabajo suspendido, ejecutando el el primer plano
fg %1 - Trae el trabajo número 1 al primer plano
fg sin argumentos opera sobre el trabajo actual
El Segundo Plano: bg
Reinicia un trabajo suspendido, ejecutándolo en segundo plano
bg %1 - Lleva el trabajo número 1 al segundo plano
bg sin argumentos opera sobre el trabajo actual
Ejemplo, después de ejecutar gimp y suspenderlo con Ctrl+Z, use bg para
ejecutarlo en background
Crear, Monitorear, y Eliminar (Kill)
Procesos
¿Que es un Proceso?
El kernel considera cada programa ejecutándose en el sistema
como un proceso
Un proceso ‘vive’ durante su ejecución, con un tiempo de vida que
puede ser corto o largo
Se dice que un proceso ‘murió’ cuando el termina
El kernel identifica cada proceso con un número conocido como un
id del proceso, o pid
El kernel mantiene un record de las propiedades de varios procesos
Propiedades de los Procesos
Un proceso tiene un id de usuario (uid) y uno de grupo (gid) cual juntos especifican
permisos que tienen.
Un proceso tiene un id de proceso padre (ppid) - cual es el pid del proceso que lo
creo
El kernel inicia el proceso init con el pid 1 al arranque
Todos los demás procesos son hijos del proceso con el pid 1
Cada proceso tiene su propio directorio de trabajo (working directory), inicialmente
heredado del proceso padre
Existe un ambiente (environment) para cada proceso - una colección de variables
de ambiente y sus valores asociados
El ambiente es normalmente heredado de su proceso padre
Monitoreando Procesos: ps
El comando ps nos da un vistazo a los procesos ejecutándose en el sistema en un
momento dado
Opciones de ps
Algunas de las más comunes son:
Opciones Descripción
• -a Muestra los procesos de otros usuarios
• -f Muestra los procesos en un formato de árbol ancestral
• -u Utiliza el formato de salida ‘usuario’, muestra nombres de
usuarios y tiempo de inicio delos procesos
• -w Usa un formato más ancho de salida. Normalmente se recorta
cada línea de la salida; cada uso de la opción w hace que la ventana
sea más ancha
• -x Incluir procesos que no poseen el terminal de control
• -e Muestra información de todos los procesos
• -l Usa el formato ‘largo’ de salida
• -f Usa el formato ‘completo’ de salida
• -C comando Muestra solo el proceso asociado con el comando
• -U usuario Muestra solo los procesos que usuario es el dueño
Monitorear Procesos: pstree
Despliega una vista de los procesos en ejecución
Siempre utiliza un desplegado tipo árbol, como ps -f
Por defecto solo muestra el nombre de cada comando
Normalmente muestra todos los procesos
Especifique un número pid como argumento para mostrar un proceso
en particular y sus descendientes
Especifique un nombre de usuario como argumento para mostrar el árbol
de procesos del usuario
Opciones pstree
-a Muestra los argumentos de los comandos
-c No compactar sub-árboles idénticos en contenido
-G Intenta utilizar caracteres de pantallas específicos al
terminal
-h Resalta los procesos ancestrales del proceso actual
-n Ordena numéricamente por pid, y no alfabéticamente por
nombre
-p Incluir pids en la salida
Monitorear Procesos: top
Muestra continuamente en pantalla completa, vista de actividad de los
procesos en ejecución
Espera un lapso de tiempo para refrescar la pantalla y así crear la
ilusión de ejecución en tiempo real
Los procesos se muestran en orden descendiente de su uso de recursos del
procesador
También muestra tiempo que el sistema esta en uso, average de carga,
estatus del CPU, y información de memoria
Opciones del comando top
-b Modo Batch - envía una vista (snapshots) a la salida estándar
-n número Sale después de mostrar número de vistas
-d número Espera número de segundos entre las vistas
-i Ignora los procesos inactivos (idle)
-s Deshabilita comandos interactivos, puede ser
peligroso si ejecuta como el root
Interactuando con el comando top
q Sale del Programa
Ctrl+L Redibuja la pantalla
h Muestra pantalla de ayuda
k Pide interactivamente un pid y una señal, y le
envía la señal al proceso
n Pide interactivamente por el número del
proceso para mostrar la información; 0 (el por
defecto) significa mostrar los que caben
R Cambiar la prioridad (niceness) de un proceso
s Cambia el número de segundos ha pausar
entre actualizaciones. Se puede incluir fracciones de
tiempo segundo (0.5, por ejemplo)
Enviar Señales a los Procesos
A un proceso se le puede enviar una señal por el kernel o otro
proceso
Cada señal es un mensaje muy simple:
Un número entero pequeño
Con un nombre de mnemónico
Los nombres de las señales se escriben todos capitalizados, ejemplo
INT ; a menudo se escriben con la parte SIG como parte del
nombre: SIGINT
Algunas señales son tratadas especialmente por el kernel; otras
tienen un significado convencional
Existen unas 30 señales disponibles, no todos son muy útiles
Señales Comunes Para Uso Interactivo
El comando kill -l lista todas las señales
La siguiente son las más usadas:
Enviar Señales: kill
El comando kill se usa para enviar una señal a un proceso
Es un comando ejecutable normal, pero muchas shells también lo
proveen como un comando interno
Sintaxis:
kill [# señal] <PID>
·Use kill -HUP pid o kill -s HUP pid para enviar un SIGHUP al
proceso con este pid. S
SIGHUP (1) : esta señal del comando kill provoca que el proceso vuelva a
leer sus archivos de configuración.
Si no incluyes el nombre de la señal, el comando kill enviara un SIGTERM
Puedes especificar más de un pid para enviarle señal a más de un proceso
Puede ponerse el número de señal en lugar de su nombre
Ejemplo: las tres siguientes órdenes son equivalentes
kill 19800
kill -15 19800
kill –SIGTERM 19800
Modificar Prioridades de Procesos:
No todas las tareas requieren el mismo monto de tiempo de ejecución
GNU/Linux tiene el concepto de prioridad de ejecución para esta
situación
La prioridad de los Procesos son dinámicamente alterado por el kernel
Puedes ver la prioridad actual de un proceso con top o ps -l y observar
la columna PRI
La prioridad pueden ser alteradas usando el comando nice
La asignación alterada por nice se ve en la columna NI
del comando top
El comando nice:
Inicia un programa con una prioridad alterada
Nombre extraño: procesos con ‘nice’ aplicado requieren menos recursos
El rango de nice es desde +19 (muy nice) a -20 (no muy nice)
Usuarios que no son root solo pueden especificar rangos desde 1 al 19;
el root tiene el rango completo
El valor por defecto de nice es 10
Para ejecutar un comando con su nice incrementada (prioridad
reducida):
$ nice -10 comando-de-ejecución-prolongada &
$ nice -n 10 comando-de-ejecución-prolongada &
Para ejecutar un comando con su nice reducida (prioridad más alta):
$ nice --15 comando-importante &
$ nice -n -15 comando-importante &
El Comando renice
El comando renice cambia el nivel de nice de un proceso
existente
Los usuarios no son permitidos incrementar el nivel de nice
de un proceso
Para ajustar el proceso con pid 2984 al máximo de nice de el
(reducir su prioridad):
$ renice 20 2984
Para ajustar el proceso con pid 3598 a un nice más bajo
(con prioridad más alta):
$ renice -15 3598
También puedes cambiar el nivel de nice de todos los
procesos de un usuario:
$ renice 15 -u miguel
Ejercicios
Ejercicio 1
1) Inicie un proceso ejecute man find y suspéndalo con Ctrl+Z.
2) Ejecute xclock en background, use &
3) Use jobs para listar los trabajos en segundo plano y los procesos
detenidos.
4) Use el comando fg para traer a man find al primer plano; salga de el
normalmente con "q"
5) Use fg para traer a xclock al foreground, y termínelo con Ctrl+C
6) Ejecute xclock nuevamente, pero esta vez sin el &. Debe estar
ejecutándose en el foreground
(no podrás utilizar el shell). Suspéndalo con Ctrl+Z y observe que sucede.
Para apropiadamente ejecutarlo en el background, use bg.
Ejercicio 2
1) Use top para mostrar los procesos en ejecución en su computador.
2) Ejecute a top para que ordene por el uso de la memoria, para que los
procesos que usan más
memoria estén arriba.
3) Restrinja para que solo se muestren los procesos que usted es el dueño.
4) Intente matar (kill) uno de sus procesos (asegúrese de no ser nada
importante).
5) Muestre una lista completa de los procesos ejecutándose en su maquina
utilizando ps.
6) Muestre la misma lista pero en forma de árbol, usando ambos ps y
pstree.
7) Logre que ps ordene la salida por el tiempo de uso del sistema.
Ejercicio 3
1) Cree el siguiente script shell, llámelo siempre, en su directorio home:
#!/bin/sh
n=1
while test $n –eq 1
do
echo hola todos...
done
Hazlo ejecutable y ejecútelo en el background así:
$ chmod a+rx siempre
$ ./siempre &
2) Use el comando ps -l para revisar el nivel de nice del archivo
3) Ejecuta el script con nice y asignarle un nivel de 15. Intenta ejecutarlo al lado de uno con
un nivel de nice menor, y ver la diferencia en top
4) Usando a nice o renice trate que el nivel de nice sea menos de 0, o sea negativo-
Mas comandos administrativos
l
DIAGNÓSTICO DE SISTEMA
Para diagnosticar el estado de un Linux de manera rápida:
Por consola: basta con utilizar 5 comandos básicos, en el
siguiente orden:
0. uname -a : nos dice la version de kernel, procesador, y nombre
de sistema
1. df : nos muestra la ocupación del disco duro.
2. free : nos muestra el uso de la memoria
3. ps -aux : nos muestra los procesos en curso
4. netstat -a : nos muestra las conexiones de red actuales
Otro programa muy útil para el diagnostico del sistema y las
conexiones de red sería IPTRAF que se ejecuta como iptraf o
/usr/bin/iptraf (en Ubuntu se encuentra en los backports, en
FEDORA esta en los repositorios Universe).
ESTADO DE DISCO: lo normal es que de un día para otro no aumente ni en un punto
porcentual, a no ser que tenga algún servicio concreto de estadísticas o BBDD. Si llega
al 90% hay que empezar a barrer el sistema de ficheros, localizar ficheros grandes, etc.
ESTADO DE PROCESOS: normalmente veremos una serie de procesos que van desde
el ID 1 al 600-700. Todos ellos son los iniciados al arrancar del sistema. El resto son
servidores iniciados posteriormente. El estado de los procesos en marcha suele mostrar
siempre el mismo aspecto, aunque cada servidor tendrá uno distinto. Conviene
conocerlo. En cuanto a la ocupación de la CPU ningún servicio suele ocupar mas de un
10% suele tener esos picos. Todo lo que tenga valores como 40% o mas se consideran
niveles anormales; puede tratarse de generadores de estadísticas. Un programa útil para
ver los porcentajes es top.
ESTADO DE MEMORIA: mientras quede RAM libre no hay problema. Un servidor
Linux incluso puede aguantar usando SWAP.
RESOLUCION DE PROBLEMAS
31/05/11
Adición de un usuario
El resultado, será un registro dentro del archivo /etc/passwd.
31/05/11
/etc/group, tiene la siguiente forma:
nombre de grupo:clave:GID:otros miembros
nombre de grupo: nombre del grupo
clave: contraseña para acceder a un grupo. Esto es raras veces necesario. Para
evitar el que los usuarios cambien a grupos privilegiados (con el comando
newgroup), se pone el campo de la clave a "*".
GID: número único para el grupo
otros miembros: usuarios que pertenecen al mismo grupo. Recuérdese que
en /etc/passwd cada usuario tiene un GID por defecto. Sin embargo, los
usuarios pueden pertenecer a mas de un grupo, añadiendo sus nombres de
usuario a otras líneas de grupo en /etc/group. El comando groups lista a qué
grupos se tiene acceso.
/ETC/GSHADOW
Este fichero consta de 4 campos separados por dos puntos.
Nombre del grupo:Contraseña: Administradores: Miembros
31/05/11
COMANDO USERADD
El comando useradd permite añadir nuevos usuarios al
sistema, además de establecer la información por defecto de
los nuevos usuarios que se añadan. Se encuentra enlazado
simbólicamente por el nombre adduser. Ambos nombres se
pueden emplear indistintamente.
Sintaxis: useradd [opciones] [login]
Ejemplos:
adduser pepe crea el usuario pepe con las propiedades por
defecto
useradd -D muestra las propiedades por defecto de los
nuevos usuarios
adduser -D -b /dir cambia el directorio base por defecto de los
nuevos usuarios (/home) a /dir. El directorio /dir debe existir
previamente
adduser pedro amigos añade a pedro al grupo amigos. Esto
es una opción que se le añadió a adduser para
31/05/11
poder añadir
usuarios a grupos rápidamente.
COMANDO USERDEL
El comando userdel permite eliminar definitivamente un usuario del sistema.
Sintaxis: userdel [opciones] <login>
Ejemplo:
userdel -r pepe elimina al usuario pepe y borra su directorio base. Por defecto
el directorio base se mantiene
COMANDO PASSWD
El comando passwd permite cambiar el password de un usuario. También
puede bloquear, desbloquear y deshabilitar una cuenta. Si se invoca sin
argumentos se asume el usuario actual.
Sintaxis: passwd [opciones] [login]
Ejemplos:
passwd pepe coloca una contraseña para pepe
passwd -d pepe deshabilita la cuenta del usuario pepe eliminando su password
passwd -l pepe bloquea la cuenta del usuario.
passwd -u pepe desbloquea la cuenta del usuario pepe
31/05/11
COMANDO USERMOD
El comando usermod se emplea para modificar algunas propiedades de los
usuarios como: el login, el directorio base, el shell que se inicia al conectarse, los
grupos a los que pertenece, la fecha de expiración de la cuenta, etc. También
bloquea y desbloquea una cuenta.
Sintaxis: usermod [opciones] <login>
Ejemplos:
usermod -s /bin/csh pepe coloca el shell csh para el usuario pepe
usermod -G users,disk pepe señala como grupos secundarios de pepe a users
y disk
usermod -e 2001-10-20 pepe indica que la cuenta de pepe expirará el 20 de
octubre de 2001
COMANDO USERMOD
El comando usermod se emplea para modificar algunas propiedades de los
usuarios como: el login, el directorio base, el shell que se inicia al conectarse, los
grupos a los que pertenece, la fecha de expiración de la cuenta, etc. También
bloquea y desbloquea una cuenta.
Sintaxis: usermod [opciones] <login>
Ejemplos:
usermod -s /bin/csh pepe coloca el shell csh para el usuario pepe
usermod -G users,disk pepe señala como grupos secundarios de pepe a users y
disk
usermod -e 2001-10-20 pepe indica que la cuenta de 31/05/11
pepe expirará el 20 de
octubre de 2001
COMANDOS GROUPADD Y GROUPDEL
Los comandos groupadd y groupdel añaden y eliminan un grupo en el sistema
respectivamente.
Sintaxis: groupadd [opciones] <grupo> groupdel <grupo>
Ejemplos:
groupadd admin
groupdel admin
COMANDO GROUPMOD
El comando groupmod permite modificar en un grupo su identificador y nombre.
Sintaxis: groupmod [opciones] <grupo>
Ejemplo:
groupmod -n usuarios users cambia el nombre del grupo users a usuarios
COMANDO GPASSWD
El comando gpasswd permite administrar los grupos. Se puede utilizar para añadir
y eliminar usuarios, señalar un administrador e indicar un password de grupo.
Sintaxis: gpasswd [opciones] <grupo>
Ejemplos:
gpasswd -A pepe admin señala como administrador del grupo admin al usuario
pepe
gpasswd admin cambia el passwd del grupo admin
gpasswd -a joe admin añade el usuario joe al grupo admin
31/05/11
COMANDO SU
El comando su permite ejecutar un shell (u otro comando) cambiando los
identificadores del grupo y del usuario actual. Si se le pasa - como primer argumento
ejecuta el shell como un login shell, o sea se creará un proceso de login tal y como
ocurre naturalmente cuando un usuario se conecta al sistema. Si no se especifica el
login del usuario se asume root.
Sintaxis: su [opciones] [login]
Ejemplos:
su -
su pepe ejecuta un shell haciéndonos pasar por el usuario pepe
su -c "cat /etc/shadow" ejecuta un comando con los privilegios de root en lugar de
un shell
31/05/11
COMANDO SUDO
El programa sudo es una utilidad de los sistemas operativos tipo Unix, como
GNU/Linux, BSD, o Mac OS X, que permite a los usuarios ejecutar programas con los
privilegios de seguridad de otro usuario (normalmente el usuario root) de manera
segura.
Los usuarios deben confirmar su identidad al ejecutar sudo dando su propia
contraseña antes de ejecutar el programa requerido. Una vez se ha autenticado el
usuario, y si el archivo de configuración /etc/sudoers permite dar al usuario acceso al
comando requerido, el sistema lo ejecuta y lo registra.
En un entorno gráfico, se usa gksudo.
El archivo de configuración /etc/sudoers especifica qué usuarios pueden ejecutar qué
comandos en nombre de qué otros usuarios. Como sudo es muy estricto con el
formato de este archivo, y cualquier error podría causar problemas serios, existe la
utilidad visudo; ésta permite al usuario root editar el archivo y luego revisar su
corrección antes de guardarlo.
31/05/11
COMANDO NEWGRP
El comando newgrp permite iniciar un nuevo shell cambiando el identificador
del grupo (gid) del usuario actual. Sólo podrán hacerlo los usuarios que
pertenezcan al grupo o en caso de que este tenga una contraseña, aquellos
que la conozcan.
Sintaxis: newgrp [grupo]
Ejemplo:
newgrp bin
COMANDO ID
El comando id, imprime dado un usuario, sus identificadores de usuario y de
grupo principal (gid y uid) así como del resto de los grupos a los que
pertenece. Sin argumentos se asume el usuario actual.
Sintaxis: id [opciones] [login]
Ejemplo:
id pepe
31/05/11
Otros comandos para la
administración de usuarios como
UBUNTU
31/05/11
Comandos adduser, addgroup
añade un usuario o grupo al sistema
31/05/11
EMPAQUETANDO Y COMPRIMIENDO
Comprimir Datos: consiste en la reducción del volumen de información tratable
(procesar, transmitir o grabar). En principio, con la compresión se pretende
transportar la misma información, pero empleando la menor cantidad de espacio.
El espacio que ocupa una información codificada (datos, señal digital, etc.) sin
compresión es el cociente entre la frecuencia de muestreo y la resolución. Por
tanto, cuantos más bits se empleen mayor será el tamaño del archivo. No obstante,
la resolución viene impuesta por el sistema digital con que se trabaja y no se puede
alterar el número de bits a voluntad; por ello, se utiliza la compresión, para
transmitir la misma cantidad de información que ocuparía una gran resolución en
un número inferior de bit.
Empaquetar Archivos: Juntar dos o más archivos en un solo archivo se le llama
paquete.
EL EMPAQUETADOR UNIVERSAL: TAR
Opciones
-d Descomprime un archivo comprimido con gzip.
-l Muestra información sobre el archivo comprimido que le
pasemos como parámetro.
-r A esta opción se le pasa como parámetro un directorio. Gzip
navegara por ese directorio de forma recursiva y comprimirá todos los
archivos que encuentre dentro de la estructura de directorios.
-t Comprueba que un archivo comprimido con gzip este correcto. Si se
encuentra bien no muestra ningún error y si lo encuentra nos informa de
cual es el problema.
-v Muestra el nombre y el porcentaje de reducción por cada fichero
comprimido o descomprimido. Muestra el número de versión, y las
opciones de compilación de este:1 ó 9. El 1 aumenta la velocidad pero
disminuye el total de compresión, así se puede ir subiendo hasta 9
donde la velocidad de compresión es lenta pero la cantidad de bytes
reducidos es mayor.
Ejemplos:
Comprimir: gzip -9 fichero
Descomprimir: gzip -d fichero.gz
(gzip solo comprime archivos, no directorios)
Ejemplos
gzip -9 archivo.tar El resultado será archivo.tar.gz.
Para comprimir, puedes poner gzip -d y el nombre del archivo gz
a descomprimir:
gzip -d archivo.tar.gz
En esta ocasión archivo.tar.gz será descomprimido y reemplazado
por archivo.tar. Un equivalente a gzip -d es el comando gunzip :
gunzip archivo.tar.gz
Ojo que puedes comprimir y descomprimir con esta herramienta ,
así como con la poderosa herramienta tar, ambas tienen las
mismas extensiones y son compatibles entre ambas. por ejemplo
puedes comprimirlo con tar y descomprimirlo con gzip y
viceversa. La diferencia esta en que tar también hace la función
de empaquetado.
TAR y GZIP JUNTOS (.tar.gz)