HowTo: Cambiar privilegios a archivos y carpetas en linux.

En general linux administra muy bien los privilegios de archivos y carpetas de acuerdo a los usuarios y grupos pero algunas ocasiones es necesario modificarlos. Por ejemplo, si acabamos de hacer o bajar algun script que queremos ejecutar para que realise una tarea determinada, al momento de querer ejecutarlo podemos encontrarnos con el problema de queno tiene permisos de ejecucion; O imaginen que estan migrando desde otro sistema operativo y estan accediendo a informacion que ya tenian, es muy probable que esta información se encuentre en particiones de tipo fat o ntfs y que no tengamos privilegios para crear, eliminar o modificar archivos o carpetas, incluso puede ser que no podamos leerlas.

Cual quiera que sea la razon, podemos recurrir a algunos comandos muy simples:

Cambiar de Propietario:

     

  • sudo chown <usuario> (archivo o carpeta)
  • sudo chown <usuario> -R <carpeta> (carpeta y todo su contenido)
  •  

Cambiar de Grupo:

     

  • sudo chgrp <grupo> <carpeta> (archivo o carpeta)
  • sudo chgrp <grupo> -R <carpeta> (carpeta y todo su contenido)
  •  

Cambiar de Usuario y Grupo:

Sí queremos cambiar el propietario y el grupo usamos el mismo comando pero en vez de poner únicamente el usuario ponemos “usuario:grupo”. Generalmente queremos cambiar el grupo a nuestro propio grupo (normalmente del mismo nombre que nuestro usuario) así que lo mas típico seria:

     

  • sudo chown usuario:grupo <carpeta> (archivo o carpeta)
  • sudo chown usuario:grupo -R <carpeta> (carpeta y todo su contenido)
  •  

Cambiar Privilegios :

     

  • sudo chmod <permisos> <opciones> <archivo o carpeta>
  • sudo chmod +x foo.sh (dar permisos de ejecución)
  •  

Los permisos se pueden expresar en forma numérica o en forma de letras de la siguiente forma:

Privilegios con Números:

     
      (0) no lectura ni escritura ni ejecución (4) solo lectura (6) escritura y lectura (7) escritura, lectura y ejecución.

      664, 777, 764, etc…

    1. El primer dígito da los privilegios para el propietario.
    2. El segundo dígito da los privilegios para el grupo al que pertenece el propietario.
    3. El tercer dígito para los usuarios fuera del grupo del propietario.

     

Ejemplos:

     

  • sudo chmod 664 foo.sh
  • sudo chmod 777 foo.sh
  • sudo chmod 764 foo.sh
  •  

Privilegios con Literales:

     

  • (-w-r-x) no lectura ni escritura ni ejecución.
  • (-w-x+r) solo lectura.
  • (+w+x+r) escritura y lectura.
  • (+w+x+r) escritura, lectura y ejecución.
  • (u) modificador de usuario (g) modificador de grupo (o) modificador para los "otros".
  •  


Ejemplos:

     

  • sudo chmod ugo+rwx (agregar permiso de todo para todos los usuarios)
  • sudo chmod ugo-xw+r (dar permisos de solo lectura para todos los usuarios)
  • sudo chmod g+r (dar permisos de solo lectura para todos los usuarios del grupo del propietario)
  • sudo chmod o+w (dar permisos de escritura para todos los usuarios)
  • chmod +x (dar permisos de ejecución para todos si se es propietario del archivo)
  • chmod +r (dar permisos de lectura para todos si se es propietario del archivo)
  • chmod +w (dar permisos de escritura para el propietario del archivo)
  •  

19 responses to this post.

  1. Posted by TavKeO on septiembre 2, 2008 at 2:03 am

    Buen tutorial me salvo de una,…
    wena web…
    SAludos!!

    Responder

  2. Posted by joel on octubre 21, 2010 at 7:47 am

    no emtiendo nada

    Responder

  3. muchas gracias !!!!!

    me ha servido mucho, todo su blog es muy útil!!!

    Responder

  4. gracias.

    Me ha ayudado, bien explicado.

    Responder

  5. Posted by Anónimo on marzo 12, 2012 at 10:41 am

    no entiendo nada

    Responder

  6. Posted by jesus on mayo 13, 2012 at 7:50 pm

    ola oie e echo toodo lo q se puede ya veo la csrpeta y puedo entrar a ella pero no puedo crear archivos ni nada!!!!!!!! q ago???

    Responder

    • Posted by cool2k on mayo 14, 2012 at 7:02 pm

      Puede ser que solo necesites reiniciar nautilus, si es que lo estas usando, para ello en una terminal usa el comando “nautilus -q” y vuelve a abrir una ventana de nautilus e intenta de nuevo crear un archivo o una carpeta.

      Si con eso no basta podrías proporcionarme mas detalles pues si ya probaste cambiando el propietario de la carpeta y los permisos ( chmod 777 -R /mi_carpeta ) deberías de poder escribir en ella.

      Espero tu respuesta.

      Saludos !!

      Responder

  7. Excelente apurte

    Responder

  8. Posted by Jaime Orlando Moncayo Palacios on octubre 19, 2012 at 5:50 am

    Para instalar linux particiono el disco duro en FAT32 o NTFS y como hago un disco de sistema?

    Responder

    • Posted by cool2k on octubre 21, 2012 at 12:06 am

      Al instalar ubuntu puedes optar porq use el espacio disponible y te lo particione solo, linux puede usar Fat y NTFS pero es mejor que use otro tipo de FS como EXT4.

      Para crear el disco de arranque (asumo que te refieres al de instalación de linux) bajas la iso del sitio oficial de la distro (ej http://www.ubuntu.com ) y puedes usar un programa como unetbootin ( unetbootin.sourceforge.net ) para generar una usb booteable o si prefieres quemar la iso en un cd o dvd y bootear desde ahi.

      Espero te sea de utilidad.

      Saludos !

      Responder

  9. exelente publicacion

    Responder

  10. Posted by Enrique on marzo 7, 2013 at 11:24 am

    Como puedo hacer para que el archivo solo tenga acceso un usuario unicamente y nadie mas? ya he intentado con chgrp chown chmod y nada que le de acceso al usuario, esto es de debian a windows

    Responder

    • Posted by cool2k on abril 8, 2013 at 9:45 am

      Que tal Enrique, disculpa la tardanza, si aún te es de utilidad te comento…

      Lo que necesitarias es cambiar los permisos para que solo el propietario tenga acceso al archivo, es decir algo tipo “chmod 700 /path/to/file” y cambiar el propietario al usuario que quieres “chown user:user /path/to/file” de esta forma se cambia el usuario y grupo propietario de archivo a “user” y en conjunto con el chmod queda solo accesible por ese usuario.

      Espero te sea de utilidad, saludos !!

      Responder

  11. Posted by agrelot on julio 12, 2013 at 3:26 pm

    Hola cool2k. Gracias por el tutorial. El problema que tengo es que una carpeta creada en un disco externo NO puedo cambiar los permisos y si quiero crear una subcarpeta dentro (en otro sistema distinto al que cree la carpata) NO me permite hacerlo (logicamente porque no tengo los permisos). Pero no puedo cambiarlos. Gracias

    Responder

    • Posted by cool2k on julio 20, 2013 at 1:52 pm

      Hola agrelot, disculpa la tardanza, podrías tratar usando “sudo” antes del comando chmod para hacerlo como superusuario, te pedirá tu password y después debería funcionar. Como mencionas que es un disco externo, podría ser que se este montando en modo de solo lectura o con un propietario distinto a tu usuario, valdría la pena checar como se esta montando.

      Saludos !!

      Responder

  12. Posted by agrelot on julio 13, 2013 at 8:41 am

    ¿Cómo lo podría hacer? ¿Que estaré haciendo mal?

    Responder

  13. tengo una carpeta con sub carpetas y archivos, le cambie de propietario ala carpeta contenedora y le di acceso de lectura a otro usuario, pero pasa que las carpetas y archivos que existían no heredan los permisos de acceso, que puedo hacer?

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: