lunes, 25 de abril de 2011

Permisos de Archivos y Directorios

Permisos de Archivos y Directorios



En Linux cada recurso pertenece a un usuario, y a un grupo de usuarios.
La columna permisos, consta de 10 caracteres y se divide de la siguiente manera:
1er. carácter: Nos indica que tipo de fichero es, los valores posibles para este carácter son:

d : directorio
l : enlace simbólico
b : dispositivo de bloque
c : dispositivo de caracteres
s : socket
p : tubería
- : fichero regular
2do 3ro 4to carácter. Es el primer trío de permisos, y nos indican los permisos que el usuario (U) tiene sobre ese fichero.
5to 6to 7mo carácter. Es el segundo trío de permisos, y nos indica los permisos que el grupo (G) tiene sobre ese fichero.
8vo 9no 10mo carácter. Es el tercer trío de permisos, y nos indica los permisos que los otros (O) tienen sobre ese fichero. Otros se refiere a cualquier usuario que no sea el usuario del fichero (U) ni pertenezca al grupo del fichero (G).


Tipos de permisos fundamentales:
r: read (lectura). El usuario que tenga este permiso podrá si es un directorio listar los recursos almacenados en él, y si es cualquier otro tipo de fichero podrá leer su contenido.
w: write (escritura). Todo usuario que posea este permiso para un fichero podrá modificarlo. Si se posee para un directorio se podrán crear y borrar ficheros en su interior.
x: execute (ejecución). Este permiso para el caso de los ficheros permitirá ejecutarlos desde la línea de comandos y para los directorios, el usuario que lo posea tendrá acceso para realizar el resto de las funciones permitidas mediante los otros permisos (lectura y/o escritura). Si un usuario no tiene permiso de ejecución en un directorio, directamente no podrá entrar en el mismo, ni pasar por el.

Los tres tipos de permisos mencionados poseen una representación numérica basada en el sistema octal que parte de representar como ``1'' los bits de los permisos otorgados y ``0'' para los negados. Luego se transforma la representación binaria así obtenida en octal. De esta forma se obtienen para cada tipo de permiso los siguientes valores:

TIPOUSUARIO (u)GRUPO (g)OTROS (o)
-rwxrwxrwx

read write execread write execread write exec


Para cada uno de estos tres tríos vemos que existen tres tipos de permisos fundamentales:

La combinación de los tres tipos de permisos para un tipo de usuario oscila desde cero (ningún permiso) hasta siete (todos los permisos).


Ejemplos más comunes:

644: El propietario con permisiòn de lectura y escritura, grupo con permisión solamente de lectura, otros con permisión solamente de lectura.
755: El propietario con permisión total, grupo com permisión de lectura e ejecución, otros com permiso de lectura e ejecución.
777: El propietario con permisión total, grupo com permisión total, otros con permiso total.


Permisos
Los comandos a continuación pueden ser combinados dependiendo de la necesidad que se presente.

Comando u Opción Ejecución
Chmod Cambia los permisos de un archivo o directorio
Opciones

+ Agrega un permiso
- Quita un permiso
r Establece permisos de lectura para un archivo o directorio
w Establece permisos de escritura para un archivo o directorio
x Establece permisos de ejecución para un archivo o directorio
u Establece permisos para el usuario que creo y es propietario del archivo o directorio
g Establece permisos para acceso de grupo a un archivo o directorio
o Establece permisos para acceder a un archivo o directorio por todos los usuarios del sistema
a Establece permisos de acceso a propietario, grupo y todos los demás usuarios
s Configura permisos de ID de usuario e ID de grupo; el programa pertenece al propietario y al grupo
t Configura permisos sticky bit; el programa pertenece en la memoria
Comandos

chgrp Cambia el grupo para un archivo o archivos
chown Cambia el propietario para un archivo o archivos
ls -l Presenta el nombre del archivo con sus permisos
ls -ld Presenta el nombre del directorio con sus permisos
ls -l Despliega todos los archivos de un directorio con sus permisos










Comandos mas usados en el terminal de linux

En esta sección encontraras como usar los comandos mas importantes dentro del terminal con los que podrás hacer cualquier cosa....
por mi parte prefiero usar el terminal y no la interface gráfica 




Comando cd (change directory)
Cambiar de directorio.

$ cd Musica (relativa)
$ cd /home/jorgitoluis/Musica (absoluta)
$ cd ~tux1/doc (home)
$ cd (Cambia a tu home)
$ cd .. (Sube un nivel)
$ cd - (Cambia al directorio anterior)

Comando mkdir (make directory)
Crea un directorio

$ mkdir /home/jorgitoluis/Musica (absoluta)
$ cd /home/jorgitoluis$ mkdir Musica (relativa)

Comando rmdir (remove directory)
Borra un directorio

$ pwd
/home/jorgitoluis$ rmdir Musica

Trabajar con múltiples directorios

Crear y borrar varios directorios con la bandera -p

$ mkdir -p dir1/dir2/dir3
$ rmdir -p dir1/dir2/dir3

Comando ls
Lista el contenido de un directorio.

$ ls /home/jorgitoluis
opciones importantes:
-l lista larga (más opciones)
-a lista todos los archivos incluído los ocultos
-t listan los archivos por cambio de fecha
-R lista contenido recursivo

Comando touch
Este comenado permite crerar un archivo vacío o cmabiar la fecha de modificación.

$ ls -l
-rw-rw-r-- 1 jorgitoluis jorgitoluis 512 Jan 1 11:10 Musica
$ touch Musica
$ ls -l
-rw-rw-r-- 1 jorgitoluis jorgitoluis 512 Jan 1 15:37 Musica
$ touch new
$ ls -l
-rw-rw-r-- 1 jorgitoluis jorgitoluis 512 Jan 1 15:37 Musica
-rw-rw-r-- 1 jorgitoluis jorgitoluis 0 Jan 1 15:38 new

Comando cp

Permite copiar archivos y carpetas

Sintaxis:

cp origen(s) destino

Ejemplo:


Copiando un archivo a otro
$ cp .bashrc bashrc.old

Copiando múltiples archivos a un directorio
$ cp /home/jorgitoluis/doc1 /home/jorgitoluis/doc2 /tmp

Copiando un directorio a otro
$cp -R /home/jorgitoluis/tmp

Comando mv

Permite mover un archivo, si la carpeta de destino es la misma, la función sería renombrar el archivo.
Este comando es por su naturaleza recursivo.

Sintaxis:
mv origen(s) destino

Ejemplo:

Para mover un archivo a otro directorio
$ mv jorgitoluis/doc1 ../../tmp

Para renombrar
$ mv doc1 doc2

Comando cat (concatenate)
Permite ver el contenido de un archivo, es muy ultil por ejemplo puedes hacer un cat del history o de alguna configuración y examinar su contenido sin modificarlo.

cat yp.conf yum.conf

Comando more y less
Permite presentar el contenido de un archivo página por página.

[jorgitoluis@jorge:~etc]$ less /etc/httpd/conf/httpd.conf (archivo de configuracion del apache)

[jorgitoluis@jorge:~ etc]$ more /etc/httpd/conf/httpd.conf

Comando od y strings
Despliega el contenido de archivos binarios.

[jorgitoluis@jorge:~ etc]$ od /usr/bin/passwd

Comando rm
Borra archivos y carpetas.

rm /home/jorgitoluis/doc1.txt

rm -Rf /home/jorgitoluis/documentos

Comando split
Tu puedes dividir un archivo en pequeños pedazos utilizando split.

Sintaxis:
split -b<Bytes> file <prefix>

Ejemplo:

$ split -b 1024k doc1 doc1

Conceptos y Comandos Básicos sobre el terminal de linux


Esta es la forma normal por el cual se presenta el terminal con el usuario normal

para acceder a super usuario es decir a ejecutar comandos como root escribimos en el terminal:

sudo su -
y escribimos el password 
de esta manera tenemos acceso.

SIGNIFICADO DE LOS SÍMBOLOS EN EL EL TERMINAL 
El $ usualmente indica que está autenticado un usuario regular.
El # usualmente indica que está autenticado el superusuario (root)
El ~ indica que se encuentra en la carpeta personal del usuario.

Algunos de los comandos Linux Básicos
passwd: Cambia el password del usuario con que estas logeado
date: Busca la fecha de hoy 
cal: presenta un calendario
who, finger: Busca que usuarios se encuentran activos en el sistema
clear: Limpia la pantalla
echo: Escribe un mensaje para si mismo
write: Escribe un mensaje para otras pantallas
wall: Escribe un mensaje para todos
talk: Se comuncia con otros susuarios del sistema
mesg: Activa y/n la recepción de los mensajes de write, wall, and talk 


Tips del Teclado
<backspace>, <Ctrl-h> Borrar caracter hacia la izquierda.
<Ctrl-c> Terminar la ejecución de un comando y regresar a shell
<Ctrl-d> Fin de la transmisión
<Ctrl-w> Borrar la palabra hacia la izquierda
<Ctrl-u> Borra toda la línea
<tab> Completa el comando o el nombre del archivo
<Flecha arriba> Anterior comando.
<Flecha abajo> Siguiente comando.
<Flecha izquierda> Recorre un caracter hacia la izquierda.
<Flecha derecha> Recorre un caracter hacia la derecha.
<shift page-up> Presenta la salida del comando anterior
<Ctrl-r> Busca un comando dentro del history

Comando history
Guarda los últimos 1000 comandos ejecutados, este comando es muy importante ya que con el podemos ver las acciones que se hicieron y los configuraciones que se han realizado sobre el sistema operativo.


Tips del Mouse dentro de la consola
<Botón izquierdo del mouse>
Click: Marca start de selección
Drag: Marca selección
<Botón central del mouse>
Click: Pega selección
<Botón derecha dl mouse>
Click: Marca el fin de la selección