Documente Academic
Documente Profesional
Documente Cultură
1 of 12
http://www.linux-es.org/node/127
Inicio
Contenidos
Principal
Sobre Linux
Mi cuenta
Blogs/Bitcoras
Primeros pasos
Foros
Distribuciones
Distribuciones
LiveCD
Documentacin
Mi Rincn
Encuestas
Patrocinadores
Noticias
Artculos tcnicos
Kernel/Ncleo
Lo primero que hay que decir es que para conseguir toda la informacin sobre los
comandos involucrados en el tema de permisos podeis consultar los comandos
man chown
man chmod,
man chgrp
Utilidades
Enlaces
Informacin de un fichero/directorio
Busquedas locales
Busquedas Google
Logos ERL
ls,
existen
Anuncios sobre
Ejemplo:
Linux
[user@localhost]# ls -l
-rwxr-x--1 pepito depart1
Enlzanos
Tenemos disponibles
logos, banners y botones
de El Rincn de Linux.
En la primera columna se pueden ver una serie de letras y guiones
Buscar
Buscar en este sitio:
-rwxr-x---,
estas letras
test.
Estas letras estn agrupadas en tres grupos con tres posiciones cada uno, ms una primera
posicin que nos dice de que clase de archivo se trata (los mas normales (d) directorios, o
(-) archivos de datos). En nuestro ejemplo la primera posicin es (-) con lo cual el archivo
test, es un archivo de datos (binario/ejecutable en este ejemplo).
Inicio de
sesin
El primer grupo de tres (rwx en nuestro caso) nos dice que clase de permisos tiene el dueo
Usuario: *
del fichero
(u)(user/owner)
El segundo grupo de tres (r-x en nuestro caso) nos dice que clase de permisos tiene el
(g)(group).
Ayuda a difundir
informacin sobre Linux.
Enlzanos !!
Y el ltimo grupo de tres (--- en nuestro caso) nos dice que clase de permisos tienen todos
Contrasea: *
(o)(others).
PostgreSQL
Qu cdigo ves en la
imagen?: *
La segunda columna
La tercera columna
pepito,
depart1,
La cuarta columna
4348,
La quinta columna
Nov 24 16:19,
La sexta columna
test,
16/03/2015 15:08
2 of 12
Entrar usando
http://www.linux-es.org/node/127
Asi pues, el fichero test de nuestro ejemplo tiene los siguientes permisos:
OpenID
contrasea
escribir/modificar.
Los dems usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni
ejecutarlo.
Anuncios
Asi podriamos continuar con todas las posibles combinaciones de letras, es cuestin de
usar la imaginacin ;-)
Existe otro metodo que utiliza numeros, en vez de letras para asignar permisos, la
siguiente tabla nos puede ayudar un poco a comprender esta manera:
r w x
VALOR DECIMAL
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Esto es todo por hoy, esperamos que tengais un poco mas claro lo de los permisos de
ficheros en Linux y que le vayais perdiendo el miedo a la linea de comandos
431451 lecturas Inicie sesin para enviar comentarios articulos
sistema
Comentarios
Opciones de visualizacin de comentarios
Seleccione la forma que prefiera para mostrar los comentarios y haga clic en Guardar las
opciones para activar los cambios.
Duda
16/03/2015 15:08
3 of 12
http://www.linux-es.org/node/127
Duda
Vie, 29/05/2009 - 03:17 Annimo
Significa que eres usuario normal (no root), cuando aparece # eres root.
Inicie sesin para enviar comentarios
RESPUESTA
Jue, 25/06/2009 - 22:00 Annimo
significa que a partir de $ ya puedes escribir los comandos que deseas ejecutar
Inicie sesin para enviar comentarios
Dudas +
Mi, 09/09/2009 - 16:23 Annimo
Hola
Como hago para cambiar los permisos de un directorio que a su vez tiene dentro de l
subdirectorios de distintas profundidaes?
Salu2.
Inicie sesin para enviar comentarios
Poniendo como opcin -R en el comando chmod, ordenas que los permisos se cambien
en todos los subdirectorios.
Inicie sesin para enviar comentarios
Gracias
Mar, 06/10/2009 - 03:05 Annimo
al fin pude editar/cambiar los tag de mi coleccion este post fue de mucha ayuda
Inicie sesin para enviar comentarios
Hola, necesito copiar todos los archivos que comiencen con "a" existentes en etc a una
carpeta del escritorio, pero no los puedo copiar todos x q tengo permiso denegado como
hago?, la linea que estoy utilizando es luego de estar en usuario privilegiado cp a* + la
ruta, en este caso es cp *a /home/sfd2009/Escritorio/Sist
16/03/2015 15:08
4 of 12
http://www.linux-es.org/node/127
Prueba con:
cp -a /etc/a* /home/sfd2009/Escritorio/Sist
Gracias!!!!
Vie, 13/11/2009 - 19:56 Annimo
signo pesos
Vie, 27/11/2009 - 04:08 Annimo
Hola tengo un prolema con la restrincion del "OPEN_BASEDIR" entro en la consola SSH
y cuando voy a acrear el archivo:" vhost.conf"
Me proibe entrar, les pido por favor si podeis ayudarme con alguna respuesta a esto por
favor.
Tengo un servdior dedicado, que tiene plesk 9, hace un mes que no e podido usarlo asi
que si podeis ayudarme, vale.
mi mail: pagosdhi@gmail.com
Inicie sesin para enviar comentarios
16/03/2015 15:08
5 of 12
http://www.linux-es.org/node/127
Si ejecuto eso, me cambia los permisos de Archivos, bien es lo que busco; pero tambin
me cambia los permisos de los directorios y eso no lo quiero.
Tampoco me vale que luego se apliquen de nuevo a las carpetas, porque lo que quiero
es que queden como estn, con los permisos que tengan... no que a todas las carpetas
se les quite/otorgue permiso de escritura (fijaros bien en los permisos de los directorios,
no deben ser cambiados).
Tampoco me vale que en algn momento mientras se est recorriendo el rbol para
aplicar los permisos a los archivos, se alteren los de las carpetas...
Dicho de otro modo, cmo hago para que chmod slo vea archivos y no carpetas?
16/03/2015 15:08
6 of 12
http://www.linux-es.org/node/127
Espero alguien sepa la solucin, porque no veo manera alguna... ya me fastidia mucho
tener que tener todo como root:root y ms an tener que acordarme cada vez que
agrego algo al disco desde Linux de hacer lo siguiente:
etc... pero encima con cuidado de no equivocarme, porque no todas las carpetas tienen
que tener a+w, unas sera a+w, otras u+w, otras uo+w, ... etc.
Vamos una verdadera pesadilla.
El muy cabrito del media player, al copiar ficheros los copia sin el permiso 'w', de forma
que son de slo lectura,... pero si le indicas que los borre, vaya que si te los borra,..
borra rboles enteritos... por eso en algunas carpetas las tengo sin 'w' y cuando en el
PC con Linux necesito modificar su contenido,.. crear archivos, renombrar, borrar, etc...
activo el permiso y cuando acabo lo desactivo... para que as el media player no pueda
borrarla aunque s acceder a su contenido, pero sin que tampoco pueda alterarlo,... y
funciona...
Pero necesito una manera de alterar los permisos selectivamente slo a archivos, sin
que se alteren los de las carpetas y ha de ser recursivamente por todo el rbol,... ms
de diez mil archivos de texto y fotos, organizados en ms de quinientas carpetas,... por
lo que a mano ni de coa.
Alguna solucin?
Se me ocurre que podra servir algo del estilo:
$sudo chmod a-w `Comando que liste todos los archivos y ninguna carpeta`
Per como se lista slo los Archivos, para que las carpetas no salgan? Me refiero a
todos los archivos que cuelgan de una determinada ruta, incluyendo todos los que estn
en cualquier subcarpeta... ojo a los enlaces simblicos porque tengo algunos que
crearan cliclos, por lo que ese comando no debera seguirlos...
Se que find sirve para recorrer todo, pero no s como decirle que slo muestre archivos,
ni tampoco que no sigua enlces simblicos.
Una ayudita, por favor... Si claro, por supuesto -> man find ... (rar vez saco algo en
claro del maldito man,... comandos de ejemplos brillan por su ausencia), pero esta vez
s que s...
Para que find no sigua enlaces simblicos hay que agragar -P,... osea un ejemplo:
$
$ cd /media/MiEjemplo/
...@...:/media/Miejemplo$ find -P .
Pero todava queda, cmo se evita que salgan listados los directorios... y ojo porque
-readable no vale, algunos archivos deben ser listados aunque no se puedan leer...
Oh, s! parace que hay un ejemplo en el que viene el parmetro "-type f",...
Y parece que s, que s puede valer... veamos como:
$
$ cd /media/MiEjemplo/
...@...:/media/Miejemplo$ find -P . -type f
16/03/2015 15:08
7 of 12
http://www.linux-es.org/node/127
Da la lista de archivos que hay en todos los subdirectorios... parece que vamos bien
encaminados.
Probemos ahora a meterlo como subcomando de un echo, antes de como subcomando
para el chmod...
$
$ cd /media/MiEjemplo/
...@...:/media/Miejemplo$ echo `find -P . -type f`
Parece que s, que funciona... pues ala a crear el script que haga lo pedido, cambiar
permisos slo a archivos sin tocar los de las carpetas...
$
$ cd /media/MiEjemplo/
...@...:/media/Miejemplo$ sudo chmod a-w `find -P . -type f`
Y putada ... los dichos espacios en los nombres de los archivos nos hacen polvo, porque
causan que se vean como nombres separados de archivos.
Ceamos cmo solventarlo, pero esto ya se empieza a complicar algo, as que prestad
cuidado... por partes, primero:
`find -P . -type f`
nos devuelve la lista de archivos a los que les queremos cambiar los
permisos, pero si lo ponemos como parmetro de otro comando los espacios nos dan
por saco... por lo que no nos servira, como se puede ver con:
for linea in `find -P . -type f`; do echo $linea; done;
Pero la solucin viene de camino... cambiar el valor de IF$, por el salto de lnea, para
que el separador de campos del for sea el salto de lnea, no los espacios,... pero luego
habr que recuperarlo... por tanto esto:
oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo $linea; done;
IFS=$oldIFS;
Casi nos vale, pero falta algo, agregar las comillas dobles al inico y final de cada lnea...
veamos cmo queda modificado lo anterior a tal efecto:
oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo \"$linea\"; done;
IFS=$oldIFS;
Ahora que ya tenemos la mitad resuelto parece ms sencillo que podamos llegar a la
solucin... efectivamente, aqu est, ahora ya podemos pasar como parmetro todo ese
cdigo a chmod, pero hay dos maneras, ... una eficiente y otra no...
Veamos la no eficiente, pero ms fcil de entender... en lugar de hacer el echo hacer el
chmod... pero eso es ineficiente porque el chmo lo ejecutamos tantas veces como
archivos haya y son decenas, cientos de miles o millones,... eso puede ser eterno...
pero veamos cmo quedara el cdigo:
oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do chmod a-w \"$linea\"; done;
IFS=$oldIFS;
Obviamente la manera correcta de proceder es que sudo y chmod sean ejecutados una
nica vez, pero cmo lo hacemos? ...
Ahora le toca el turno a las shells embebidas una dentro de otras,... es decir a que
16/03/2015 15:08
8 of 12
http://www.linux-es.org/node/127
usemos el poder de la shell de ejecutar algo dentro de algo... mejor veamos el comando
que quedar ms claro:
echo $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo \"$linea\"; done;
IFS=$oldIFS;)
Fijaros en el primer echo, es para poder ver que vamos bien, es decir ver el resultado
obtenido,... y luego est la llamada a la subshell con '$()'...
Ahora el resultado es una nica lnea con un montn de cadenas entre comillas dobles y
separadas por un espacio, justo lo que requiere chmod ...
Por lo que el comando final que lo hace todo simplemente parecera ser sustituir el echo
por el chmod, es decir:
chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo \"$linea\";
done; IFS=$oldIFS;)
Pero no, otra vez los dichosos espacios nos vuelven a jugar otra mala pasada... as que
podramos usar 'sed' para cambiar los espacios, por "\ " de este modo:
echo $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo \"$linea\" | sed
's/ /\\ /g'; done; IFS=$oldIFS;)
Pero esto es muy ineficiente, el sed se invoca tantas veces como archivos haya... y an
as cuando se lo passemos a chmod, ste se quejar... por lo que:
chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do echo \"$linea\" |
sed 's/ /\\ /g'; done; IFS=$oldIFS;)
No nos vale, no funcionara. Pero hay otra posible alternativa... hacer que no se trate el
espacio como especial,.. vuelta a cambiar $IFS, de forma que:
oldIFS=$IFS; IFS=$'\n'; chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type
f`; do echo \"$linea\"; done; IFS=$oldIFS;); IFS=$oldIFS;
Ahora, si parece que chmod recibe el nombre completo de los archivos, ... pero dice que
no los encuentra, cmo, que no estn? pero si los ha localizado find... si pero la ruta es
parcial, relativa y quizs el directorio ... bueno intentemos solucionarlo poniendo una
ruta absoluta:
oldIFS=$IFS; IFS=$'\n'; chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type
f`; do echo \"$PWD/$linea\"; done; IFS=$oldIFS;); IFS=$oldIFS;
Fijarse en el $PWD, da la ruta actual, por lo que se la agregamos a todos los ficheros
que se localizen... sin ejecutar ningn comando por cada archivo, de manera eficiente.
Y que nada, que tampoco, que nos vuelve a decir que esa ruta no existe... que pesadito
est... probemos algo absurdo,... quitar las comillas dobles, es decir quitarlas de:
\"$PWD/$linea\"
De forma que el comando queda as:
oldIFS=$IFS; IFS=$'\n'; chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type
f`; do echo $PWD/$linea; done; IFS=$oldIFS;); IFS=$oldIFS;
Y listo, ahora s, ahora ya dice que intenta cambiar los permisos, luego funciona?; si
pero no, nos dice que no tiene permisos, nos da error porque todava nos faltara el
dichoso 'sudo' para que tenga permisos (recordemos que todo debe ser de root:root)...
o sea que queda as:
oldIFS=$IFS; IFS=$'\n'; sudo chmod a-w $(oldIFS=$IFS; IFS=$'\n'; for linea in `find -P .
-type f`; do echo $PWD/$linea; done; IFS=$oldIFS;); IFS=$oldIFS;
Y ahora s que s... Este comando le quita el permiso de escritura a todos los archivos,
para todos los usuarios, grupo, otros, de todas las subcarpetas de la ruta activa, por lo
que si ahora creamos un simple bash shell script (Fichero.sh) de mi ejemplo... con
simplemente hacer doble click en l ... truco logrado... bueno casi, porque sigue
16/03/2015 15:08
9 of 12
http://www.linux-es.org/node/127
faltando lo otro, que todo sea de root:root,... pero eso si que es fcil -> Todo es todo...
por lo tanto nos vale el comando:
Y ya est, terminamos, ya lo tenemos listo... pero vaya tocho comando,.. con lo fcil
que hubiera resultado si chmod incluyera un parmetro para diferenciar permisos de
archivos de los de las carpetas... a ver si algn da lo incluyen, que este tocho comando,
es largo de narices, eficiente si, pero tan largo que mejor tenerlo guardado como un
archivo a teclearlo... por no decir de si nos equivocamos al teclearlo.
Espero os sea de ayuda como a m...
La utilidad es hacer que los Media Player puedan grabar en los directorios del disco
externo archivos, crear carpetas, etc... pero sabiendo que no van a alterar el contenido
de nuestros preciosos archivos... cuando queramos alterar alguno en el PC, pues
simplemente le damos permiso a ese y listo, al acabar volvemos a ejecutar este tocho
comando para asegurarnos que no se nos olvida proteger alguno contra escritura.
Pero, vaya siempre ha de haber un pero, si, lo hay... que yo sepa de momento en los
sistemas de ficheros tipo Linux (ext2/3/4/...) no hay manera de impedir que un archivo
cualquiera de una carpeta concreta no pueda ser borrado si dicha carpeta a de permitir
que se creen nuevos archivos y/o carpetas en ella... la carpeta tiene 'w' -> los archivos
de ella se pueden borrar...
Y ah ya no tengo solucin, lo siento mucho, la desconozco...
Para que no tener que estar buscando en este post el comando, lo repito aqu, justo al
final...
Comando para dado un rbol extenso de directorios y archivos, poner todos los
directorios y archivos del rbol como pertenecientes a root:root y acto seguido quitar el
permiso de escritura a todos los archivos del rbol entero, sin alterar en ningn
momento los permisos de los directorios, sin seguir enlaces simblicos para evitar
posibles ciclos:
sudo chown -R root:root ./*; oldIFS=$IFS; IFS=$'\n'; sudo chmod a-w $(oldIFS=$IFS;
IFS=$'\n'; for linea in `find -P . -type f`; do echo $PWD/$linea; done; IFS=$oldIFS;);
IFS=$oldIFS;
permisos
Dom, 20/12/2009 - 12:48 Annimo
que metodo hay que utilizar para dar permisos en directorios y cual en ficheros? el
numrico o el nemotcnico?
Inicie sesin para enviar comentarios
16/03/2015 15:08
10 of 12
http://www.linux-es.org/node/127
#pvs
ni con #fdisk -l
y es visto porque en Sabayon 5.1 aparece en lugares equipo. Con Utilidad de Discos lo
pude formatear, poner etiqueta y aparece como unidad y montada, pero no me deja
escribir en ella, esto es, guardar data en l.
Me dice : La carpeta etc.....no se puede copiar porque no tiene permisos para crearla en
el destino.
Es de nombre en /dev : sde1
Prob con los chown (para mi usuario) y chmod 777, y nada.
Un saludo.
Inicie sesin para enviar comentarios
duda
Vie, 12/02/2010 - 01:36 Annimo
reproductor mp3
Lun, 22/03/2010 - 01:34 Annimo
Resp
Mar, 23/03/2010 - 21:51 Annimo
16/03/2015 15:08
11 of 12
http://www.linux-es.org/node/127
file system
Vie, 09/04/2010 - 15:27 Annimo
Hola a todos queria saber que puede ser que hice mal ... cree un file system el cual lo
monte pero dentro de estos file se crearon un arbol pero al montar el file system se me
borra este arbol y luego al desmontarlo lo veo nuevamente puede ser un tema de
permisos??...
Inicie sesin para enviar comentarios
respuesta
Mar, 13/04/2010 - 20:58 Annimo
yo tambien lo uso, use wine para correrlo, pero reinstale todo, y ahora no me deja...
pero trata.. no esta de mas
Inicie sesin para enviar comentarios
dar permisos
Mi, 05/05/2010 - 23:14 Annimo
deseo dar permisos al directorio /home/msch y todos sus subdirectorios que contengan
este que debo realizar
Inicie sesin para enviar comentarios
joder, clases de Teologa, que coazo... Es un programa especfico para las clases de
teologa? Qu hace? Est creado por Dios o qu? Es broma... Espero no haber herido
tu sensibilidad, simplemente me ha hecho gracia.
Inicie sesin para enviar comentarios
16/03/2015 15:08
12 of 12
http://www.linux-es.org/node/127
Ayuda
Mar, 10/08/2010 - 17:30 Annimo
siguiente
ltima
16/03/2015 15:08