miércoles, 22 de agosto de 2012

Comando chmod (Permisos), chgrp and Chown


Un archivo tiene los siguientes permisos
d  -
rwx
rwx
rwx
d = directorio
-  =  archivo
Permisos para el usuario
Permisos para el grupo
Permisos para el resto de usuario

#    ls –l
#    drw-rw-rw-               cristo                    
Nos indica que es un directorio y tiene permisos de lectura y escritura Para el usuario, grupo y otros usuarios

#    -rwxrwxrwx              comando            
Nos indica que es un archivo y tiene permisos de lectura, escritura y ejecución para todo mundo

Tipo de objetos
u
Usuario, propietario del archivo, se trata del usuario que inicio cesión
g
Grupo, Se trata del grupo al que pertenece el usuario
o
Todos los demás usuarios, excepto el propietario del archivo
a
Todos los usuarios incluso el propietario del archivo

Tipo de Permiso
r
Lectura
4
w
Escritura
2
x
Ejecución
1
                              

Permisos con archivos

chmod u + rwx archi      Lectura, escritura y ejecución para el usuario

chmod g + rx     archi      Lectura, ejecución para el grupo

chmod o + rx     archi     Lectura, ejecución para el resto de usuarios

chmod a + x       archi     Lejecución para todos los usuarios

cgmod a – rw    archi      Quita los permisos de lectura y escritura a todos los usuarios

chmod ugo+rwx archivo              dar permisos de lectura, escritora y ejecución a todos

chmod ugo+rwx archivo  = chmod a+rwx archive    (ugo = a)

Permisos con directorios

chmod u + rx –R/home/cristo   Permiso de lectura y ejecución para el usuario
chmod g + rx –R/home/cristo   Permiso de lectura y ejecución para el grupo

Otra de dar permisos es sumando el numero que tiene asociado cada permiso
r=4, w=2, x=1
chmod (u+r+w+x)(g+r+w+x)(o+r+w+x) archivo

chmod XYZ nombre archivo

Donde X será un numero que especifique los permisos que le daremos al propietario, Y especificara los permisos que le damos al grupo y Z especificara los permisos que le damos al resto de usuariossobre el archivo. Esos números pueden ser:

0  no le doy permisos 
1 permisos de ejecución (x) 
3 permisos de ejecución y escritura (PERO NO LEER!) (rx) 
4 permiso de lectura (r) 
5 permisos de lectura y ejecución (rx) 
6 permiso de lectura y escritura (rw) 
7 permiso de lectura, ejecución y escritura (rwx)


cdmod 700 archivo         permisos de lectura, escritura y ejecución para el usuario

chmod 550 archivo         permiso de lectura y ejecución para el usuario y el grupo

chmod 777 archivo         todos los permisos para todos el mundo

Cambiar de grupo a los archivos o directorios

#    chgrp nombre_grupo  archivo_directorio
#    chgrp fica /var/www/http/fica



Chown
Cambiar de propietario a los archivos o directorios

Descripción: =change owner. Cambia los permisos de usuario:grupo de ficheros/directorios.
Ejemplos: chown usuario:grupo fichero,
#    chown pello:usuarios directorio -R          ß Para Directorios
#    chown nombre_usuario  archivo_directorio       ß Para archivos
#    chown root /var/www/http/fica

Comando sed


Reemplazar cadenas en archivos con sed



sed, sustitución y eliminación de patrones

El programa sed puede realizar sustituciones y eliminación de patrones de texto utilizando expresiones regulares, como lo que utilizamos con el comando grep.



Comandos del Editor
a\ Append text below current line.
c\ Change text in the current line with new text.
d Delete text.
i\ Insert text above current line.
p Print text.
r Read a file.
s Search and replace text.
w Write to a file.

Presentar el archivo example
bash$ cat -n example
1 Esto es la primera línea de este un texto de ejemplo.
2 Es un texto con erores.
3 Muchos erores.
4 Tantos erores, que con todos los erores estoy poniendo enfermo!
5 Este línea no contiene errores.
6 Este por fin es la ultima línea.

El archivo contienen palabras mal escrita eror, erores 

Imprimir líneas que contiene un patrón
bash$ sed -n '/erores/p' example
La salida será solo las líneas que tengan el patrón “erores”
Es un texto con erores.
Muchos erores.
Tantos erores, que con todos los erores estoy poniendo enfermo!

Borrando líneas de entrada que contiene un patrón:
bash$ sed '/erores/d' example                  <<== El comando d excluye las líneas en la salida
Esto es la primera línea de este un texto de ejemplo.
Este línea no contiene errores.
Este por fin es la ultima línea.

Utilizando expresiones regulares, podemos buscar líneas que comienza con un patrón en particular y terminando con otra patrón:
bash$ sed -n '/^Esto.*errores.$/p' example
Este línea no contiene errores.

Rangos de líneas
Quitar líneas
bash$ sed '2,4d' example
Esto es la primera línea de este un texto de ejemplo.
Este línea no contiene errores.
Este por fin es la ultima línea.

Quitar todas las línea de la 3 a hasta el final del archivo
Bash$ sed '3,$d' example
Esto es la primera línea de este un texto de ejemplo.
Es un texto con erores.

Rangos
Imprime la primera línea que contiene el patrón "un texto", hasta e incluyendo la siguiente línea que contiene el patrón “Este”
bash$ sed -n '/un texto/,/Este/p' example
Es un texto con erores.
Muchos erores.
Tantos erores, que con todos los erores estoy poniendo enfermo!
Estelínea no contiene errores.

Buscar y sustituir con sed
En el fichero de ejemplo, ahora vamos a buscar 'erores' y sustituir por 'errores'
bash$ sed 's/erores/errores/' example
Esto es la primera línea de este un texto de ejemplo.
Es un texto con errores.
Muchos errores.
Tantos errores, que con todos los erores estoy poniendo enfermo!
Este línea no contiene errores.
Este por fin es la ultima línea.

Sustitución global
Aún hay una problema: in línea 4, solo la primer ocurrencia del patrón esta sustituido (El primero esta cambiado, pero el segundo no).
Utilice el comando con g para indicar a sed que debe examinar todos los ocurrencias del patrón y no para con la primera en cada línea.
bash$ sed 's/erors/errors/g' example
Esto es la primera línea de este un texto de ejemplo.
Es un texto con errores.
Muchos errores.
Tantos errores, que con todos los errores estoy poniendo enfermo!
Este línea no contiene errores.
Este por fin es la ultima línea.

Otro Ejemplo
$ cat saludo.txt
hola
maldito
mundo

$ sed ‘s/maldito/bendito/’ saludo.txt
hola
bendito
mundo

Sabiendo que “sed -i ‘/s/palabra-vieja/palabra-nueva/g’ *.txt” reemplaza todas las ocurrencias de la palabra vieja por palabra nueva en todos los archivos:

sed -i ‘s/Pepe/Jose/g’ *.txt
sed -i ‘s/Manolo/Manuel/g’ *.txt
sed -i ‘s/Nacho/Ignacio/g’ *.txt
sed -i ‘s/Inma/Inmaculada/g’ *.txt

Inserción
Para insertar una cadena utilice el s
Ejemplo: insertar un carácter (>) al principio de cada línea en el texto: (Combinar con expresiones regulares)
bash$ sed 's/^/> /' example
> Esto es la primera línea de este un texto de ejemplo.
> Es un texto con erores.
> Muchos erores.
> Tantos erores, que con todos los erores estoy poniendo enfermo!
> Este línea no contiene errores.
> Este por fin es la ultima línea.

Ejemplo: Insertar una cadena (EOL) al final de cada línea:
bash$ sed 's/$/EOL/' example
Esto es la primera línea de este un texto de ejemplo.EOL
Es un texto con erores.EOL
Muchos erores.EOL
Tantos erores, que con todos los erores estoy poniendo enfermo! EOL
Este línea no contiene errores.EOL
Este por fin es la ultima lineaEOL

Múltiples sustituciones
Múltiplesbúsqueda y sustituciones están separada con la opción ­e individualmente:
bash$ sed -e 's/erors/errors/g' -e 's/ultima/final/g' example
Esto es la primera línea de este un texto de ejemplo.
Es un texto con errores.
Muchos errores.
Tantos errores, que con todos los errores estoy poniendo enfermo!
Este línea no contiene errores.
Este por fin es la final línea.

Por defecto, sed imprime su resultado al standard output (impresión en pantalla), Utilice redirección para almacenar la salida a un fichero:
sed opción 'expresión' fichero_leer > fichero_salida

Existe muchas ejemplos de sed en los scripts de inicialización de Linux.
– En directorios /etc/init.d ó /etc/rc.d/init.d.
– Par verlos: grep sed *

Sed no-interactivo (scripts)
Se puede leer los comandos de sed desde un fichero con la opción ­f, Se puede guardar múltiples comandos de sed en un fichero. Se debe tener en cuenta la siguiente:
  • No se puede tener espacios en blanco al principio ni al final
  • Cuotaciones no están permitidos.
  • Cuando introduciendo texto para añadir o sustituir, todoexcepto la últimalínea termina con un backslash.

Escribiendo ficheros. En este ejemplo, utilizamos sed para escribir un fichero sencillo de html
bash$ cat script.sed      
1i\
<html>\
<head>\
<title>sed generatedhtml</title>\
</head>\
<body bgcolor="#ffffff">\
<pre>$a\
</pre>\
</body>\
</html>
El programa sed es estupendo para hacer sustituciones automáticas en texto. Un uso muy simple sería:

Cambia la cadena "tomate" por "pera" en el texto a.txt y lo guarda en b.txt, si no lo redireccionamos a otro archivo el cambio no tendrá efecto
# sed s/tomate/pera/g a.txt > b.txt

En este ejemplo "&" es un comodín, pero hay que poner antes \ (escape) para que bash no lo intente interpretar.
sed  s/solo/\&mente/g  (cambia "solo" por "solamente")

Borrará la tercera línea del archivo
$ sed '3d' archivo

Substituye el carácter e por # en las líneas del 2 a la 4 inclusive.
$ sed '2,4s/e/#/' fichero

Cambia todas las minúsculas a mayúsculas de archivo.
sed '1,$ s/[a-z]/[A-Z]/g' archivo

Añade una línea con el contenido "Línea insertada" después de cada línea del archivo.
sed 'a\Línea insertada' archivo

Cambiar, en el fichero /home/pepito/.profile , la expresión TERM=vt100 por TERM=vt220
sed s/TERM=vt100/TERM=vt220/g /home/pepito/.profile >/tmp/j && mv /tmp/j /home/pepito/.profile

comando at


Ejecutando temporizadores
# at 16:45 (enter)
at > ls -l > archi_xyz
at > (Ctrl d)

En caso que no exista el archivo ‘archi_xyz’ se enviara al correo el resultado del comando


Eliminando temporizadores
# atrm numero_at (Borra el trabajo con ese identificador asignado al lanzar el at)

Visualizando temporizadores
# atq                           (Muestra los trabajos en la cola para ser ejecutados)

comando ps, jobs

ps, jobs, Trabajos secundarios (en segundo plano)

&
Ejecuta un comando en segundo plano
fg  %número trabajo
Trae un comando del segundo al primer plano o reanuda la ejecución de un programa interrumpido
bg
Coloca en segundo plano un comando que esté ejecutándose en primer plano
ctrl.  z
Interrumpe y detiene un programa que se este ejecutando en ese momento. El programa continúa detenido en segundo plano a la espera de que sea reanudado.
notify %número de trabajo
Notifica cuando termina un trabajo
kill  %número de trabajo
kill  número de proceso

sudo kill -9 XXXX
Cancela y finaliza un trabajo que se este ejecutando en segundo plano


Finaliza forzosamente  un proceso 
jobs
Lista todos los trabajos que se estén ejecutando en segundo plano
ps
Lista todos los procesos que estén siendo ejecutados actualmente, incluidos los trabajos en segundo plano.
at hora y fecha
Ejecuta comandos en una fecha y hora determinadas.

# find / -name cristo –print &               ßRealizar una búsqueda en segundo plano
# jobs                                              ß Lista todos los trabajos
# fg %2                                           ß Trae a primer plano la tarea 2 que esta en segundo plano


Especialistas en sistemas Operativos Linux

Sistematizan a empresas Sistematización a empresas, Agilidad, Seguridad y confianza