Cambiar grupo de un fichero o directorio – Comando CHGRP

El comando chgrp sirve para modificar el grupo (group) de un fichero o directorio. Está instalado en todas las distribuciones GNU/Linux, dentro del paquete coreutils.

Puedes consultar los grupos usando el comando:

cat /etc/group | cut -d ‘:’ -f1/

Sintaxis de chgrp

sudo chgrp {{opciones}} {{grupo}} {{fichero_o_carpeta}}

La sintaxis de chgrp es sencilla, tras el comando chgrp se escriben los modificaciones (opcionales), a continuación el nombre del grupo y para finalizar el nombre del fichero o carpeta.

Opciones de chgrp

-c, –changes Igual que la opción “verbose” pero solo si hay cambios
-f, –silent, –quiet Omite la mayoría de los mensajes de error
-v, –verbose Muestra el resultado de cada fichero procesado
–dereference Afecta a la referencia del enlace simbólico, en lugar del enlace simbólico en si (opción por defecto).
-h, –no-dereference Afecta al enlace simbólico, en lugar de la referencia a la que apunta.
–no-preserve-root No trata “/” de manera espacil (por defecto)
–preserve-root Falla al intentar operar recursivamente sobre “/”
–reference=RFILE use RFILE’s group rather than specifying a GROUP value
-R, –recursive Se ejecuta sobre ficheros y directorios recursivamente
-H Si es un enlace simbólico a un directorio, entra en el
-L Atraviesa todos los enlaces simbólicos a directorios que encuentre
-P No atravesar enlaces simbólicos (por defecto)
–help Muestra la ayuda
–version Muestra la versión y licencia

Cambiar el grupo de un fichero

sudo chgrp {{grupo}} {{fichero}}

sudo chgrp comerciales ventas.odt

*El fichero ventas pertenece ahora el grupo comerciales

Cambiar el grupo recursivamente

sudo chgrp -R {{grupo}} {{carpeta}}

sudo chgrp -R soporte /mnt/shared/software

*Todo el contenido de la carpeta /mnt/shared/software pertece ahora al grupo soporte

Cambiar el grupo a un fichero

sudo chgrp sistemas foto.jpg

*Estando dentro de la carpeta donde se encuentra el fichero “foto.jpg“, cambia el grupo a sistemas.

sudo chgrp comerciales /home/paco/documento.odt

*Independientemente del directorio actual, cambia el dueño de “documento.odt” a comerciales.

sudo chgrp admins “/home/juan/Música/Barón Rojo – Tierra de nadie.ogg”

*Independientemente del directorio actual, cambia el dueño del audio (que contiene espacios en el nombre) a admins.

 

sudo chgrp consultores /home/juan/Documentos -Rv

 *Cambia el grupo de la carpeta y todo su contenido de forma recursiva (-R), mostrando los detalles de cada fichero procesado (-v)

sudo chgrp -RHc grupo carpeta/

 *Cambia el grupo recursivamente atravesando enlaces a carpetas y mostrando los cambios.

sudo find . -name “*.txt” -exec sh -c ‘chgrp -v aula3 “$0″‘ {} \;

*Busca todos los ficheros con extensión txt y les cambia el grupo a “aula3” mostrando los detalles de cada operación realizada

Diferencia entre ruta relativa y absoluta

Para acceder a un fichero o carpeta (ya sea en Windows, Linux o Mac) utilizamos lo que se llama una ruta, una ruta es algo así como la dirección de una casa.

Hay dos tipos de rutas:
– Relativas
– Absolutas

La diferencia entre una ruta relativa y una absoluta radica en que la relativa depende del directorio en el que te encuentras actualmente, mientras que la absoluta no.

Pongamos un ejemplo, imagina que estás en el directorio “F” y quieres llegar hasta el directorio “H”.

estructura

 

Hay dos modos de llegar a la carpeta destino:

Ruta relativa

– Desde tu posición actual (F), subir hasta “B”, luego subir al directorio “A”, luego bajar al directorio “D” y a continuación llegas a tu destino, el directorio “H”. El problema de seguir estas “indicaciones” es que solo sirven si estás en “F” o en “E”, si estás en otro directorio no llegarás a “tu destino” con las indicaciones recibidas.

relativa

Ruta absoluta

– Desde el directorio raíz entras en “D” y luego en “H”. En este caso la ruta absoluta es mas corta, si el origen fuera “G” y el destino “H” sería mas larga.

absoluta

 

Volvamos a Linux. Suponiendo que estás en tu carpeta home (cd ~) y que quieres mostrar el contenido de un fichero txt, puedes usar:

cat Documentos/informe.txt (relativo)
cat /home/bruno/Documentos/informe.txt (absoluto)

 

¿Cuando usar uno u otro? Depende de lo que estés haciendo.

Por ejemplo, tengo un script que ejecuto usando un alias que está en el fichero ~/.bashrc y que uso para compilar varios proyectos con maven.

El script lo ejecuto desde la primera terminal que tenga a mano, independientemente del directorio en el que esté la terminal en ese momento.

En este caso el script usa la ruta absoluta hacia la carpeta con el código, pues no puedo confiar en estar en el directorio correcto.

 

Otro ejemplo, estoy desarrollando una web en HTML y quiero enlazar una imagen.

En este caso tengo que usar una ruta relativa, ¿por que? Porque si uso una absoluta solo va a funcionar en mi ordenador, si le paso el código a otra persona la imagen no se verá a menos que tenga la imagen exactamente el mismo sitio.

Dentro del directorio hay una carpeta llamada imgs y dentro la foto. Es correcto.
<img src”imgs/foto.jpg” alt=”foto”>

En el directorio padre del actual (../) hay una carpeta llamada imágenes y dentro la foto. Correcto también.
<img src”../imagenes/foto.jpg” alt=”foto”>

En mi carpeta imgs que esta en mi home tengo la foto. Incorrecto.
<img src”/home/bruno/imgs/foto.jpg” alt=”foto”>

Yo me voy por mi izquierda…

chown

Comando chown – Cambiar el propietario

El comando chown (change owner) permite modificar el dueño de uno o varios ficheros o carpetas.

Está instalados en todas las distribuciones GNU/Linux, dentro del paquete coreutils.

Puedes consultar el listado de usuarios en el fichero /etc/passwd usando el siguiente comando:

 cat /etc/passwd | cut -d ':' -f1

 

chown

Sintaxis de chown

sudo chown {{dueño}}:{{grupo}} {{nuevodueño}} {{fichero-o-carpeta}}

Opciones de chown

-c, –changes Igual que la opción “verbose” pero solo si hay cambios
-f, –silent, –quiet Omite la mayoría de los mensajes de error
-v, –verbose Muestra el resultado de cada fichero procesado
–dereference Afecta a la referencia del enlace simbólico, en lugar del enlace simbólico en si (opción por defecto).
-h, –no-dereference Afecta al enlace simbólico, en lugar de la referencia a la que apunta.
–from=DUEÑO_ACTUAL:GRUPO_ACTUAL Cambia el dueño y/o grupo del fichero solo si el actual dueño y/o grupo coincide con el especificado.
Cualquiera de los dos puede ser omitido.
–no-preserve-root No trata “/” de manera especial (por defecto)
–preserve-root Falla al intentar operar recursivamente sobre “/”
–reference=RFILE Cambia la propiedad de file a la del fichero rfile.
-R, –recursive Se ejecuta sobre ficheros y directorios recursivamente
-H *Si es un enlace simbólico a un directorio, entra en el.
-L *Atraviesa todos los enlaces simbólicos a directorios que encuentre.
-P *No atravesar enlaces simbólicos (por defecto)
-v, –verbose Muestra el resultado de cada fichero procesado
–help Muestra la ayuda
–version Muestra la versión y licencia

* Se utiliza junto con el modificador -R

Cambiar el dueño de un fichero

Sintaxis

sudo chown {{usuario}} {{fichero}}

Ejemplos

sudo chown jose documento.txt

El fichero documento.txt que está dentro del directorio actual pasa ser propiedad del usuario jose.

sudo chown juan /home/bruno/Documentos/Reporte.pdf

El fichero Reporte.pdf pasa a ser propiedad del usuario juan, con independencia del directorio en el que te encuentres.

sudo chown pedro ~/Imágenes/foto.jpg

El fichero foto.jpg dentro de /home/TuUsuario/Imágenes pasa a ser propiedad de pedro.

sudo chown francisco “/home/bruno/Documentos/fichero con espacios.odt”

El fichero “fichero con espacios.odt” pasa a ser propiedad de francisco. Si el fichero o alguna carpeta tienen espacios debe estar entrecomillado.

Cambiar el dueño de todos los ficheros recursivamente

Sintaxis

sudo chown -R {{usuario}} {{carpeta}}

Ejemplos

sudo chown -R juan Imágenes

La carpeta Imágenes, y todos los ficheros/carpetas que están dentro (-R) pasan a ser propiedad de juan.

sudo chown -R jose “/home/bruno/Mis Imágenes”

La carpeta Mis Imágenes y todo su contenido pasa a ser propiedad de jose

sudo chown -R vicente ~/Imágenes

Mi carpeta /home/MiUsuario/Imágenes y todo su contenido pasa a ser propiedad de vicente.

Cambiar el dueño de todos los ficheros y carpetas del directorio actual que pertenecen a un determinado usuario.

Sintaxis

 sudo chown --from={{dueñoactual}} {{nuevodueño}} *

Ejemplos

sudo chown –from=jose bruno *

Todos el contenido del directorio actual que pertenezca a jose pasa a ser propiedad de bruno.

sudo chown –from=bruno fernando *

Todo con contenido del directorio actual propiedad de bruno pasa a ser propiedad de fernando.

Cambiar recursivamente el dueño de todos los ficheros y carpetas del directorio actual que pertenecen a un determinado usuario.

Sintaxis

 sudo chown -R --from={{dueñoactual}} {{nuevodueño}} {{carpeta}}

Ejemplos

sudo chown -R –from=jose bruno Documentos

Todos los fichero y directorios dentro de la carpeta Documentos (-R) que eran propiedad de jose pertenecen ahora a bruno.

sudo chown -R –from=juan bruno /home/juan/

Todos los ficheros y directorios dentro de /home/juan (-R) que eran propiedad de juan pertenecen ahora a bruno.

sudo chown -R –from=vicente jose .

Todos los ficheros y directorios del directorio actual (.) que eran propiedad de vicente pertenecen ahora a jose.

Cambia el dueño de todo el contenido de una carpeta si el actual dueño y grupo coincide con el especificado.

Sintaxis:

sudo chown -R --from={{dueño}}:{{grupo}} {{nuevodueño}} {{carpeta}}

Ejemplos:

sudo chown -R –from=juan:consultores javi Imágenes

La carpeta Imágenes y su contenido, cuyo dueño es juan y pertenece al grupo consultores es ahora propiedad de javi.

sudo chown -R –from=bruno:administradores paco ~

Tu carpeta /home/TuUsuario (~) y su contenido, propiedad del usuario bruno y que pertenece al grupo administradores pasa a ser propiedad de paco.

sudo chown -R –from=bruno:administradores jose /home/bruno

El directorio /home/bruno y su contenido,

Búsquedas complejas: find + chown

Para búsquedas mas complejas es posible usar el comando chown con find, ya que find permite realizar búsquedas por nombre, fecha, tipo, tamaño, etc

sudo find . -iname “*.txt” -exec chown bruno {} \;

Busca todos los archivos con extensión txt y les cambia el propietario a bruno.

sudo find . -type d -exec chown bruno {} \;

Busca todos los directorios (-type d) y les cambia el dueño a bruno.

Minientrada

Solución al mensaje “se ha detectado un problema en un programa del sistema”

Desde hace ya algún tiempo, Ubuntu arrastra un pequeño (aunque molesto) problema. Se titula “Se ha detectado un problema en un programa del sistema” y es cortesía del sistema de reporte de errores de Ubuntu (apport).

se-ha-detectado-un-problema-programa-sistema

Lo que ha ocurrido es que alguna aplicación se ha cerrado inesperadamente, el fallo se ha almacenado en /var/crash y apport insiste en reportarlo.

 

No es un problema excesivamente importante, aunque es bastante molesto y alarma a los nuevos usuarios, que creen que está fallando constantemente algo.

 

Hay dos soluciones: limpiar la carpeta donde se almacenan los informes de errores o desactivar la aplicación que reporta los errores (apport).

 

¿Como borro el log de los errores de Ubuntu?

Pues es sencillo, solo es necesario ejecutar el rm como root sobre el contenido de la carpeta.
sudo rm /var/crash/*

 

¿Como desactivo el reporte de errores en Ubuntu?

Editando el fichero [b]/etc/default/apport/b] con cualquier editor:
sudo nano /etc/default/apport
sudo gedit /etc/default/apport
sudo pluma /etc/default/apport
sudo kate /etc/default/apport
sudo vi /etc/default/apport

Y cambiando el valor de enabled a 0. Tal que así:
enabled=0

Ejecutar comando sudo sin contraseña

Como probablemente ya sabrás, GNU/Linux dispone de un sistema de gestión de permisos que permite establecer que acciones puede realizar un usuario, su grupo y otros usuarios sobre un fichero/carpeta/enlace simbólico/aplicación.

Mas allá de los permisos de usuario, existen determinadas acciones (crear usuarios, modificar ficheros del sistema, crear particiones, etc) que requieren permisos de root (superusuario/administrador), ahí es donde entra el comando sudo.

comando-sudo-sin-contraseña

El comando sudo permite realizar una escalada de privilegios, es decir, permite realizar acciones como si fueras root, logrando así el control total del sistema operativo.

Sigue leyendo

Applet para capturar región de pantalla

Hace algún tiempo un compañero de trabajo me preguntó si existía algún modo de capturar un área de la pantalla sin tener que abrir shutter.

La solución pasa por crear un pequeño script que capture el área seleccionada (usando el comando scrot) y copiarlo al portapeles (comando xclip).

El script se lanza desde un applet anclado a la barra de mate, aunque se puede hacer en otros escritorios de forma similar.

Sigue leyendo