2. Unix (archivos)
2.1 Comandos comunes para la manipulación de archivos
|
file | Determina el tipo de archivo | ||||||||||||||||||||||||||||||||||||||||||||
chown | Cambia los id del dueño y del grupo de un archivo | ||||||||||||||||||||||||||||||||||||||||||||
chmod |
Descripción r,w,x para archivos
Modifica los permisos de un archivo o directorio Permiso adicional (visible en el bit the execute)
-rwsr-xr-x 1 carlos mail 932 Aug 24 20:23 script.sh (El script se correrá con permisos de 'carlos') *Actualmente sólo funciona para ejecutables binarios ej. chmod g+s script.sh ej. chmod o+wt directory
Modo Absoluto (Octal)
Por ejemplo si queremos modificar un archivo de manera que Para permisos adicionales (setuid + setgid) |
||||||||||||||||||||||||||||||||||||||||||||
grep | Busca expresiones regulares en la entrada | ||||||||||||||||||||||||||||||||||||||||||||
ln | Creación de ligas, simbólicas o duras | ||||||||||||||||||||||||||||||||||||||||||||
ls | Listado de archivos en un directorio | ||||||||||||||||||||||||||||||||||||||||||||
cp | Copiar archivos o directorios | ||||||||||||||||||||||||||||||||||||||||||||
mv | Mueve o renombra un archivo | ||||||||||||||||||||||||||||||||||||||||||||
more | Visualizador de un archivo hacia adelante | ||||||||||||||||||||||||||||||||||||||||||||
less | Visualizador de un archivo hacia adelante y hacia atrás | ||||||||||||||||||||||||||||||||||||||||||||
head | Ver el encabezado (primeras líneas de un archivo) | ||||||||||||||||||||||||||||||||||||||||||||
tail | Ver la cola (últimas líneas de un archivo) | ||||||||||||||||||||||||||||||||||||||||||||
find | Busca archivos con cierto criterio (nombre, fecha) en una ruta dada | ||||||||||||||||||||||||||||||||||||||||||||
> | Redireccionamiento hacia un archivo nuevo ej. ls > archivo.txt |
||||||||||||||||||||||||||||||||||||||||||||
>> | Redireccionamiento hacia un archivo existente (append) ej. ls >> archivo.txt |
Redireccionamiento:
1>filename
# Redirect stdout to file "filename".
1>>filename
# Redirect and append stdout to file "filename".
2>filename
# Redirect stderr to file "filename".
2>>filename
# Redirect and append stderr to file "filename".
&>filename
# Redirect both stdout and stderr to file "filename".
2>&1
# Redirects stderr to stdout.
# Error messages get sent to same place as standard output.
0< FILENAME
< FILENAME
# Accept input from a file.
Compartiendo los directorios de una máquina
Windows
En Windows esta actividad es gráfica y no requiere mayor
conocimiento, pero el operativo asume algunas cosas y esta restringido
en la capacidad de importar/montar sistemas de archivos externos
Para compartir basta con dar click derecho en el archivo/directorio deseado y seleccionar "compartir"
Unix
En unix (aunque ya existen ambientes graficos) tradicionalmente se realiza a través de archivos
Linux: /etc/exports
/home/carlos 192.168.0.1(rw) |
Solaris: /etc/dfs/dfstab
root:scanner:/etc/dfs>more dfstab
# Place share(1M) commands here for automatic execution |
Montando/importando directorios de otras máquinas
Conceptos Importantes:
Filesystem: tipo del sistema de archivos del directorio a importar
Device (dispositivo): dispositivo o directorio que se quiere importar.
ej. /dev/hda3 , /home/lolo, acadaplic:/home/carlosMount Point (punto de montaje): directorio donde vamos a ver los que estamos importando (de preferencia que NO sea el raíz)
Windows
Nuevamente la interfaz nos ayuda para realizar esta actividad
Existen varias opciones para montar un directorio de otra maquina:
1) Si las máquinas son parte de nuestra intranet podemos ir al Vecindario o Neighbourhood y buscar por grupo, máquina y directorios.
2) En otro caso podemos buscar la maquina desde el explorador de archivos o bien utilizar la opción "Conectar a unidad de Red" en el menú de "Herramientas".
Se nos pedirá la ruta o path a importar asi como el usuario y password respectivos
ej: \\192.168.0.23\directorio
username: abcde
password: xxxxxxx
Y opcionalmente podemos seleccionar si queremos importar ese directorio cada vez que entremos a la máquina
Unix (Linux y Solaris)
Existen 2 tipos de montaje en unix: los temporales y los permanentes
Para montar temporalmente (solo durante la sesión) se utilizan los comandos mount y umount
mount [-a] [ -t fstype] [-o options ] device dir
-a= monta todo lo que este en los archivos fstab (en Solaris existe el comando mountall)
fstype= ext2, ext3, ufs, nfs, smbfs, vfat, swap, etc
options (separadas por comas)= rw , ro, uid=value
device= dispositivo físico a montar
dir= directorio donde se localizará el filesystem (debe estar creado)
ej:
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -t nfs www.linux.com:/directorio /mnt/directorio
umount [-a] [-f] [-t fstype] mountpoint | device
-a desmonta todo lo que está definido en /etc/fstab o /etc/vfstab
-f forza el desmontaje, aún si está en uso el filesystem
ej.
umount -a -f
umount /mnt/cdrom
Para montar permanentemente tenemos que configurar algunos archivos
que permitan el montaje al arrancar la máquina:
Linux : /etc/fstab
[root@pcproal etc]# more fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 |
Contenido de cada línea:
Dispositivo a montar
Punto de Montaje
Tipo de sistema de archivos
Opciones de Montaje
Dump
fsck
Solaris : /etc/vfstab
root:scanner:/etc>more vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes - fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /tmp ufs 2 yes - /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /var/tmp ufs 2 yes - filer0:/vol/vol0/home - /scanner nfs - yes - superadminaplic:/home/34/vol301 - /archivos/vol301 nfs - yes - centia:/centia01 - /centia01 nfs - yes - centia:/centia03 - /centia03 nfs - yes - |
Contenido de cada línea:
Dispositivo a montar
Dispositivo donde se ejecutará el comando fsck
Punto de Montaje
Tipo de sistema de archivos
fsck pass (1 o -)
Mount at boot (bandera usada por mountall)
Opciones de Montaje
Montando con Automounter
El hecho de tener muchos sistemas de archivos, ya sean locales o externos implica un costo en el rendimiento de la máquina, por ello unix posee una variante a lovisto anteriormente que se conoce como Automounter, montar/importar sobre demanda.
Tenemos un archivo principal (auto.master o auto_master) el cual contiene las especificaciones del punto de montaje para lo que se quiere montar (ej. /misc) y que está especificado en otro archivo (ej. /etc/auto.misc)
[carlos@pcproal /etc]$ more auto.master # $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $ # Sample auto.master file # Format of this file: # mountpoint map options # For details of the format look at autofs(8). /misc /etc/auto.misc --timeout=60 |
En el archivo incluído por el automaster se definen los
montajes de manera muy similar a los archivos "tab" mencionados
anteriormente
[carlos@pcproal /etc]$ more auto.misc # $Id: auto.misc,v 1.2 1997/10/06 21:52:04 hpa Exp $ # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # Details may be found in the autofs(5) manpage #cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom # the following entries are samples to pique your imagination |
De manera que el montaje quedaría:
/misc/centia01
Nota: a diferencia de fstab y vfstab aqui el punto de montaje no debe ser creado por el administrador, se crea sobre demanda
Más información:
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch29_:_Remote_Disk_Access_with_NFS
Samba (www.samba.org)
Samba es una aplicación para unix que permite compartir archivos entre plataformas unix y windows a traves de la red
Nota: si lo que queremos es compartir una "partición" de algun
disco local, entonces se puede utilizar simplemente el mount
Dos componentes principales
Servidor de Samba
Interfaz web de administración Swat , (normalmente en el puerto 901)
# /etc/samba/smb.conf # Samba config file created using SWAT # from 127.0.0.1 (127.0.0.1) # Date: 2007/05/07 18:08:03 [global] obey pam restrictions = Yes passdb backend = tdbsam passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* . syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No panic action = /usr/share/samba/panic-action %d invalid users = root [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/printers [homes] comment = Home Directories path = /home/%u username = %u valid users = %S read only = No |