Sei sulla pagina 1di 12

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

1 of 12

http://www.linux-es.org/node/127

Sirviendo informacin sobre Linux desde 1998


Sobre ERL

Inicio

Contenidos
Principal
Sobre Linux

Cmo se cambian los permisos de ficheros y


directorios en Linux?

Mi cuenta
Blogs/Bitcoras

Vie, 25/08/2006 - 21:56 ralfm

Primeros pasos

Foros

Distribuciones

En este corto articulo tratamos el tema de como cambiar los permisos de

Distribuciones

ficheros y directorios en nuestro sistema Linux. Todo los comandos y ejemplos

LiveCD

que se citan deben ejecutarse desde la linea de comandos en una terminal.

Documentacin

Mi Rincn

Tambien decir que existen programas en modo grafico donde se puede


conseguir lo mismo que aqui se explica a golpe de raton.

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

Cuando obtienes informacin sobre un fichero/directorio con el comando

ls,

existen

diferentes campos que te dicen que clase de permisos el fichero/directorio tiene.

Anuncios sobre

Ejemplo:

Linux

[user@localhost]# ls -l
-rwxr-x--1 pepito depart1

Enlzanos
Tenemos disponibles
logos, banners y botones

4348 Nov 24 16:19 test

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---,

nos dicen quien en el sistema, y que clases de permisos tiene el fichero

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: *

grupo del fichero

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: *

los dems usuarios del sistema sobre este


fichero

(o)(others).

PostgreSQL

r :significa permiso para leer


w :significa permiso para escribir
x :significa permiso para ejecutar

Qu cdigo ves en la
imagen?: *

La segunda columna
La tercera columna

Enter the characters shown in


the image.

pepito,

depart1,

nos dice quien es el dueo del fichero,(pepito en este caso).


nos dice cual es el grupo del fichero (depart1 en este caso).

La cuarta columna

4348,

La quinta columna

Nov 24 16:19,

La sexta columna

test,

nos dice el tamao del fichero.


nos dice cual es la fecha y hora de la ltima modificacin.

nos dice cual es el nombre del fichero/directorio.

16/03/2015 15:08

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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

pepito puede leer, escribir/modificar, y ejecutar el fichero test.

Solicitar una nueva

Los usuarios pertenecientes al grupo depart1 puede leer, y ejecutar pero no

contrasea

escribir/modificar.
Los dems usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni
ejecutarlo.

Anuncios

Como cambiar los permisos/dueo/grupo de un


fichero/directorio?
Para cambiar el dueo del fichero se utiliza el comando :
Para cambiar el grupo del fichero se utiliza el comando:
Para cambiar los permisos se utiliza el comando:

chown usuario fichero

chgrp grupo fichero

chmod permisos fichero

Los permisos se pueden especificar de diferentes maneras, una serie de ejemplos, es lo


mejor para comprenderlo:
chmod
chmod
chmod
chmod

ugo+rwx test (da permisos rwx a todos, user,group,others)


ugo-x test (quita permiso x (ejecucion) a todos, user,group,others)
o-rwx test (quita permisos rwx a others)
u=rwx,g=rx test (da permisos rwx a user, rx a group y ninguno a others)

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 (000 binario es 0 en decimal)


1 .........
2 .........
3 .........
4 (100 binario es 4 en decimal)
5 .........
6 .........
7 (111 binario es 7 en decimal)

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

1 significa activado y 0 desactivado, o sea 101, activa r y x, y desactiva w. Sabiendo esto


solo tenemos que usar el valor decimal para dar solo permisos de lectura y ejecucion, un
ejemplo aclarara esto.
chmod 750 test
da permisos rwx al usuario (7=111)
da permisos r-x al grupo (5=101)
da permisos --- a los demas (0=000)

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.

Como Instalar Programas en Limpus


Vie, 24/04/2009 - 22:28 Maximino

Alguien puede me informar como consigo instalar un programa


especifico para estudios y preparar clases de teologia cuyo nombre es
"e-word". funciona bien e windows xp, mi duda es si funciona en Linux. Gracias a quien
pueda ayudarme.
Inicie sesin para enviar comentarios

Duda

16/03/2015 15:08

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

3 of 12

http://www.linux-es.org/node/127

Dom, 10/05/2009 - 21:17 Annimo

Podria alguien decirme que signifa el signo $ en la primera posicion de un archivo


Inicie sesin para enviar comentarios

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

de modo que cuando eres ROOT aparece # ?


Inicie sesin para enviar comentarios

Como cambiar los permisos para un directorio y


subdirectorios
Vie, 11/09/2009 - 10:01 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


Jue, 17/09/2009 - 17:40 Annimo

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

Cmo copiar los archivos q comienzan con "a" y estan


en /etc ?
Vie, 06/11/2009 - 20:00 Annimo

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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

4 of 12

http://www.linux-es.org/node/127

Inicie sesin para enviar comentarios

Re: Cmo copiar los archivos q comienzan con "a" y


estan en /et
Vie, 06/11/2009 - 22:12 Annimo

Prueba con:

cp -a /etc/a* /home/sfd2009/Escritorio/Sist

Inicie sesin para enviar comentarios

Gracias!!!!
Vie, 13/11/2009 - 19:56 Annimo

Gracias por tu ayuda me sirvi de mucho!!!


Gracias!!!
Inicie sesin para enviar comentarios

signo pesos
Vie, 27/11/2009 - 04:08 Annimo

corresponde al usuatio normal si te sale numeral es superusuario


Inicie sesin para enviar comentarios

COMO HAGO PARA INSTALAR EL


Vie, 27/11/2009 - 04:10 Annimo

COMO HAGO PARA INSTALAR EL PROGRAM DE SLE PRA LINUX NO L HE PODDIDO


INSATLAR ?
Inicie sesin para enviar comentarios

COMO DOY PERMISOS POR SSH A CARPETAS?


Lun, 30/11/2009 - 13:44 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

chmod a todos los ficheros de un rbol sin tocar los


directorios
Vie, 18/12/2009 - 04:08 Annimo

Pondr un ejemplo que dejar mi duda mucho ms clara...


Tengo todo un rbol de directorios muy complejo, con muchos subdirectorios y
ficheros... pongamos por ejemplo que cuelga de /media/MiEjemplo/
Cmo hago desde la lnea de comandos bash para que se quite el permiso de escritura
a todos (propietario/usuario, grupo y otros), pero slo a los archivos?
Dicho de otro modo,.. quiero que todos los archivos dejen de tener 'w', pero sin tocar
los permisos de las carpetas ni otros permisos de los archivos...

16/03/2015 15:08

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

5 of 12

http://www.linux-es.org/node/127

Un breve rbol de ejemplo:

drwxrwxrwx 7 root root 4096 2009-12-18 01:03 .


drwxr-xr-x 11 root root 4096 2009-12-18 00:54 ..
drwxrwxr-x 2 root root 4096 2009-12-07 17:09 A
drwxr-xrwx 2 root root 4096 2009-12-07 17:15 B
drwxr-xr-x 3 root root 4096 2009-12-07 16:54 D
-rwxrwxrwx 1 root root 59 2009-12-18 00:54 H.sh
drwxrwx--- 8 root root 4096 2009-12-08 10:06 S

... para no extenderme ... dentro de A hay muchos directorios, subdirectorios y


archivos; idem en B, D y S...
Lo que quiero es que quede as:

drwxrwxrwx 7 root root 4096 2009-12-18 01:03 .


drwxrwxrwx 11 root root 4096 2009-12-18 00:54 ..
drwxrwxr-x 2 root root 4096 2009-12-07 17:09 A
drwxr-xrwx 2 root root 4096 2009-12-07 17:15 B
drwxr-xr-x 3 root root 4096 2009-12-07 16:54 D
-r-xr-xr-x 1 root root 59 2009-12-18 00:54 Fichero.txt
drwxrwx--- 8 root root 4096 2009-12-08 10:06 S

... para no extenderme ... dentro de A hay muchos directorios, subdirectorios y


archivos; idem en B, D y S...y tambin quiero que se modifiquen en ellos.
En otras palabras, que todos los ficheros pasen a ser de slo lectura para todos, es decir
que nadie pueda escribir en ellos...
Y si pudiera ser, que tambin se prohibiera su borrado...
Pero, manteniendo siempre y en todo momento el permiso a todo el mundo para crear
nuevas carpetas y archivos (hasta que el script se lance de nuevo), momento en el que
todos los archivos que existan queden bloqueados contra modificaciones...
Concretamente el problema me lo plantea justamente eso: cmo hago que chmod slo
toque los permisos de los archivos, pero no de las carpetas?
El otro problema sera impedir el borrado de archivos, manteniendo el permiso de crear
nuevos archivos en todas las carpetas.
Por cierto, observares que tanto el usuario como el grupo son root, eso es
imprescindible que sea as (en mi caso), pues el disco en donde est alojado es extreno
y si no en un MediaPlayer no me deja escribir ni leer de l...
Concretamente, cualquier carpeta que no sea de root:root directamente no es accesible;
por lo que las carpetas han de ser de root:root; para los archivo idem de idem, han de
ser de root:root o no los podr leer... etc.
En resumen: Cmo se hace para que chmod distinga si es fichero o directorio y slo
aplique los cambios a los ficheros?
En concreto: cmo he de modificar la siguiente sentencia?
$ sudo chmod -R a-w /media/MiEjemplo/*

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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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:

$ sudo chown -R root:root /media/MiEjemplo/*


$ sudo chmod -R a-w /media/MiEjemplo/*

y luego ir carpeta por carpeta ejecutando:


$ sudo chmod -R a+w /media/MiEjemplo/Carpeta

y luego ir subcarpeta por subcarpeta ejecutando:


$ sudo chmod -R a+w /media/MiEjemplo/Carpeta/SubCarpeta

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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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;

Problema: el chmod requiere privilegios de root (recordemos que todo ha de ser de


root:root),... por lo que hay que anteponerle un sudo... lo que lo hace todava ms
ineficiente... veamos ese cdigo tan ineficiente:
oldIFS=$IFS; IFS=$'\n'; for linea in `find -P . -type f`; do sudo 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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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:

sudo chown -R root:root ./*

En otras palabras nuestro tocho comando quedara as (aprovechemos algo que ya


hemos usado, concatenar comandos en una nica sentencia con el cararcter separador
del punto y coma ';')... veamos el cfigo:
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;

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;

Espero os sea til; a la hora de ejecutar en mi PC tarda menos de cinco segundos en


ejecutarse para el disco USB de 750GB que tengo casi lleno con millones de archivos y
cientos de miles de carpetas.
Inicie sesin para enviar comentarios

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

Un disco externo SATA


Lun, 18/01/2010 - 01:22 Annimo

Un disco externo SATA, conectado por USB


formateado en NTFS no aparece reconocido con

16/03/2015 15:08

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

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

Permisos Sobre ficheros para recurso compartido


Mar, 09/02/2010 - 20:55 Annimo

Hola a toda la comunidad, les comento, mi problema es el que sigue:


En la organizacion para la que trabajo tenemos un servidor win2003 server que sirve
para almacenamiento masivo, en esta plataforma pusimos permisos para que el usuario
cree lo que desee pero no pueda borrar nada, para evitar equivocaciones y cosas de ese
tipo.
En linux el problema es que no se si se pueda hacer un permiso del mismo tenor para
que el usuario pueda crear pero no borrar.
Agradezco de antemano el espacio...
saludos ...
Inicie sesin para enviar comentarios

duda
Vie, 12/02/2010 - 01:36 Annimo

nesecito algun Scripts para q a mi pc no se le pueda hacer ningun cambio, ya sea de


programas, ficheros o carpetas, es decir q nadie q use mi pc guarde nada en ella. O q se
borre todo lo q hagan cuando se reinicie la pc
Inicie sesin para enviar comentarios

reproductor mp3
Lun, 22/03/2010 - 01:34 Annimo

Hola, espero puedan ayudarme.


Mi problema es que tengo un reproductor mp3 y de forma grafica no me habilita la
opcion de eliminar tanto carpetas como archivos, ya intente cambiarle de permisos con
lo que lei aca y nada, siempre me muestra el siguiente mensaje cuanto intento eliminar
algun archivo o carpeta:
linux-227w:/media/Sansa e250 # rm tmp
rm: cannot remove `tmp': Read-only file system
Cualquier ayuda se los agradecere.
Inicie sesin para enviar comentarios

Resp
Mar, 23/03/2010 - 21:51 Annimo

16/03/2015 15:08

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

11 of 12

http://www.linux-es.org/node/127

chown usuario.grupo carpeta/ -R


ejemplo:
chown test:test carpetaPrueba/ -R
la opcin -R hace que la primera instruccin sea recursiva, eso quiere decir que todas
los archivos y sub-carpetas que esten dentro de carpetaPrueba, van a tener los mismos
permisos de usuario...
Inicie sesin para enviar comentarios

cambiar el propietario y el grupo de fichero


Mi, 24/03/2010 - 14:41 Annimo

Hay algn comando para cambiar el propietario y el grupo de fichero?


Inicie sesin para enviar comentarios

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

como hago para modificar un archivo y salvarlo en


linux
Mar, 04/05/2010 - 17:15 Annimo

tengo lo siguiente -bash-3.2$ escribo aqui ls y me da los subdiretorios , el subdiretorio


se llama ENTERPOL. dat este es el que quiero modificar , salvarlo y volver a lapantala
para mandarlo a calcular con la modificacion ?
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

Programa para preparar clases de teologa


Jue, 10/06/2010 - 16:25 Annimo

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

Cmo se cambian los permisos de ficheros y directorios en Linux? | El r...

12 of 12

http://www.linux-es.org/node/127

Ayuda
Mar, 10/08/2010 - 17:30 Annimo

-rwxr--r-- 1 root root 1516441 abr 1 2008 (SONY)VPL-PX40.pdf


-rwxr--r-- 1 root root 103842 abr 1 2008 (SONY)VPL-PX41.pdf
-rwxr--r-- 1 root root 1338401 abr 1 2008 (SONY)VPL-VW100.pdf
-rwxr--r-- 1 root root 948104 abr 1 2008 (SONY)VPL-VW12HT.pdf
-rwxr--r-- 1 root root 128119 abr 1 2008 (SONY)VPL-X1000.pdf
-rwxr--r-- 1 root root 128119 abr 1 2008 (SONY)VPL-X1000U.pdf
necesito borrar estos pdf pero cuando quiero darles permiso me dice que son solo de
lectura como puedo borrar estan localizados en /var/www/ para poder despleglar en
una pagina web
Inicie sesin para enviar comentarios

Problema para cambiar permisos


Jue, 19/08/2010 - 05:10 Annimo

Estoy intentado cambiar los permisos a un disco duro externo y al hacerle un ls -l me


arroja el siguinte error:
root@debian:/media/IOMEGA HDD# ls -l
ls: no se puede acceder a complete: Error de entrada/salida
ls: no se puede acceder a RECYCLER: Error de entrada/salida
total 0
d????????? ? ? ? ? ? complete
d????????? ? ? ? ? ? RECYCLER
root@debian:/media/IOMEGA HDD# cd /
root@debian:/# cfdisk /media/IOMEGA\ HDD/
Alguien me puede ayudar a interpretar el erro
La idea es poder cambiar los permisos para poder formatearlocon cfdisk
De ante mano gracias por la ayuda
Inicie sesin para enviar comentarios

No existe el archivo o directorio /home/usuario


/desktop...
Sb, 18/09/2010 - 06:04 Annimo

Nuevamente con un problemita en Ubuntu 10.04.1, a saber: Intente montar la carpeta


home de la versin Ubuntu 9.10 y arme un pequeo desastre. Cuando inicio el sistema
me aparece "No existe el archivo o directorio /home/usuario/desktop", y tambien "No
existe archivo o directorio /home/jorge/nautilus" La pantalla de inicio se queda fija y
puedo entrar por consola en modo seguro.
Mi pregunta es como hago que existan esos archivos y directorios.
Cualquier orientacin sera bienvenida, novato en Ubuntu, y hasta ahora no tenia
mayores problemas.
Inicie sesin para enviar comentarios
1

siguiente

ltima

Contenidos distribuidos bajo la Licencia Creative Commons


Reconocimiento-NoComercial-CompartirIgual 2.5 cuando no se especifique lo contrario
Copyright 1998-2014 El rincn de Linux - Rafael Martinez - Condiciones de uso

16/03/2015 15:08

Potrebbero piacerti anche