Permisos
Comandos que van a manejar tipicamente root:
chown:
Sirve para cambiar el usuario (dueño) de un archivo o carpeta y el grupo.
$chown usuario:grupo fichero
¿para
que le sirve a un usuario normal cambiar el dueño de un archivo? No te
puedes apropiar de algo que no es tuyo, implica ceder el control del
fichero y no pueda cambiar nada de el.
Para el usuario root, es fundamental, ya que limita permisos de archivos de a quien pertenece el archivo.
Cada
proceso (ejecución de un programa) esta asociado a un usuario y a esa
ejecucion se le aplican los permisos del usuario que lo ejecuta.
Importante:
Un
servidor apache, si lo ejecuta un root, ese proceso tiene los mismos
permisos que el root. (en general todos los programas que ejecute root,
sus procesos tienen los permisos del root). Para evitar este problema,
mejor es crear un usuario “ficticio”, y que ese usuario ficticio se encargue de ejecutar ese proceso.
Argumentos:
-R:
lo hace de forma recursiva, lo aplica a todo lo que este dentro de un
directorio (subdirectorios y archivos). Mucho cuidado con esto...
$chown -R usuario:grupo /home/usario
chgrp:
Cambiar el grupo. Aplicado a ficheros y a directorios.
$chown -R grupo /home/usario
La gestion de usuario en gnu/linux se basa en 3 ficheros:
/etc/passwd
El archivo passwd, contiene la configuracion de los usuario.
(ejecuto $less /etc/passwd, para verlo)
la 1º columna es el nombre del usuario.
la 2º columna: es la contraseña que tiene el usuario. Pone x, antiguamente la ponia cifrada, pero para mejorar la seguridad pone x
la
3º y 4º son numeros (que suelen coincidir pero no tiene porque). El nº
3, indica un numero que identifica el usuario. El 4º indica el numero
del grupo al que pertenece dicho usuario. Los usuarios ficticios son los que tienen <1000 o el 65534
La
5º columna: descripción del usuario (normalmente esta vacia o coincide
con la primera columna), telefono, direccion, (separados por comas)
la
6º columna: el directorio domicilio de ese usuario. Los usuarios
ficticios no coinciden con los usuarios normales en estar en el
directorio /home. Por ejemplo www-data es el usuario que gestiona el
servidor apache.
Y la 7º columna: es el programa que usa el usuario como shell
en mi caso el usuario julio tiene /bin/bash
otros usuarios pueden tener es /bin/sh
/bin/false y /bin/nologin: para
que un usuario no pueda hacer login en el sistema (entrar como
usuario), porque no hay programa para ejecutar. El sentido que no le
puede hacer ataque de fuerza bruta a ese usuario. Tambien podemos
“desactivar” temporalmente a un usuario. Editandolo con un editor de
texto al archivo /etc/passwd
¿que es una shell? La shell es la interfaz del usuario, el programa que usa el usuario para comunicarse con el sistema operativo.
Aplicaciones:Entorno de escritorio (gnome), aplicaciones nuestras, etc..
|
Existe un 2º archivo que es el que tiene las contraseñas (encriptadas):
/etc/shadow
Te dice permiso denegado porque no eres root. Si escribes:
$sudo less /etc/shadow
El 3º archivo:
/etc/group
Cada linea te describe un grupo, separado por “:”
1º columna : nombre del grupo
2º columna: X, contraseña
3º columna: nº que identifica ese numero
4º columna: la lista de usuarios que pertenecen a ese grupo.
Al final del archivo nos veremos a nosotros:
julio:x:1000:
Por
pertenecer a ciertos grupos, tienen ciertos privilegios. Por ejemplo el
grupo cdrom, si no estamos no podemos acceder a dicho dispositivos.
Los usuario nomales siempre van de 1000 en adelante.
Nota:
usar nano
para editar ficheros en modo terminal, ya que no tendremos acceso a
herramientas graficas como gedit en entornos de accesos de servidores o
por internet.
Chmod:
Cambiar los permisos de los ficheros y/o directorios.
Formas de usarlo:
$chmod modo fichero
El modo se puede expresar de 2 formas:
1º con un numero de hasta 4 cifras en octal, (y es la más sencilla)
2º con símbolos
Explición de la 1º forma:
Los premisos eran
usuario
|
grupo
|
Otros (resto del mundo)
|
rwx
|
rwx
|
rwx
|
Tabla de valores
r → 4
w → 2
x → 1
Sumamos los numeros que quieres aplicar de los permisos:
Si queremos conserquir esto:
rw- r-- ---
6 4 0
luego:
$chmod 640 fichero
Buscar en goole estos permisos especiales, y buscar documentación
sti stiky pegajoso ( http://vampird.wordpress.com/2010/07/09/ajustar-permisos-especiales-en-ficheros-y-directorios-sticky-bit-suid-y-sgid/)
2º modo:
A base de símbolos, que se componen básicamente de combinaciones de 3 letras:
usuario
|
u
|
+ poner
|
r : lectura
|
grupo
|
g
|
- quitar
|
w : escritura
|
otros
|
o
|
= con este se queda igual que estaba
|
x: ejecución
|
todos
|
a
|
Por ejemplo:
permisos: rw- r-- ---
1º sistema: 6 4 0
2º sistema: u+r,u+w,a-w,g-w,o-w
Con el 1º método siempre tiene que inicar todo como va a quedar.
Pero con el 2º metodo, puedes indicar cambios
Por ejemplo:
Tenemos rw- r-- ---
Si tenemos: chmod 640 fichero
y cambiamos a rw- rw- ---
chmod 660 fichero
o poner solo lo que cambia: chmod g+w fichero
También tenemos el argumento -R, cambios recursivos al escritorio y a su contenido.
Mas información sobre permisos:
Copias de seguridad en gnu/linux.
Para copiar cosas de un sitio a otro con el comando cp
Crear carpeta mkdir.
¿Pero como podemos comprimir?
Formatos de compresión de programas hay infinitos, los más extendido es el formato:
zip : 3 opcion (en gnu/linux)
rar
:(a nivel de usuario), el rar comprime un poquitín más. (dependiendo
del fichero a comprimir) pero el algoritmo es mucho mas lento que el zip
y consume mas recursos del sistema.
7z :(ahora esta de moda) comprime más que el rar, pero es mas lento, y los recursos pide mucho más.
En gnu/linux, ademas de estos, están:
arj
lha
lz
zog
gzip:
1 opcion (comprime menos pero es muy rápido y tiene una gran ventaja
que es que admite entrada y salida standar, con lo cual puedes encadenar
procesos (tuberias)). Inconveniente que solo comprime un archivo. Se
puede saltar esto con otro comando que une los archivos tar.
bzip2
: 2 opcion, comprime mucho mas que gzip pero consume mucho. Solo lo
hace uno a uno y ventaja es que maneja entrada y salida standar.
El comando tar, que une (pega) archivos y lo empaquetas como un solo archivo, y este lo comprimes con gzip.
Usando gzip:
gzip fichero
el resultado es un fichero llamado fichero.gz (cuidadin: borra el fichero original)
El fichero comprimido respeta todos los permisos del fichero original.
Forma de descomprimir:
gzip -d fichero.gz
gunzip fichero.gz
Borrandote el comprimido y te restaura los permisos de los que tenia el archivo.
Usando tar:
tar ordenes archivo listaficheros
archivo: el archivo resultado de la unión
listaficheros: los archivos o directorios que quieras meter dentro separarados por espacios
ordenes:
cfv: unir todos estos ficheros/directorios en este archivo, y la v te va diciendo lo que esta haciendo
xfv: extraeme los ficheros y directorios en el directorio que estas, y la v te va diciendo lo que esta haciendo
tf: para ver los archivos que tenga el fichero .tar
tfv: te da mas informacion
tfvz: te das mas informacion (comrpimido con gz)
Por ejemplo: .tar no la pone, y es
$tar cfv programas.tar .codelite/workspace
Nota:
.tar no la pone, y es conveniente ponerselo.
El 2º paso seria comprimirlo con gzip, si le ponemos la opcion z, lo hace automaticamente el comprimido el tar:
$tar cfvz programas.tar.gz .codelite/workspace
Con tubería sería:
$tar cfv programas.tar .codelite/workspace | gzip
Para descomprimir y separar los archivos:
$tar xfvz programas tar.gz
Comparación entre los que ocupa un .tar y un .tar.gz
Uso del bzip2:
$bzip2 fichero
Y lo pone con la terminación .bz2
Comparación entre bz2 y gzip:
No hay comentarios:
Publicar un comentario