chmod --recursive en nautilus

Jose Luis Jiménez jljmarin en gmail.com
Mar Abr 18 17:27:36 BST 2006


On 4/18/06, Manuel Duran Moyano <mduran en ubiobio.cl> wrote:
> El mar, 18-04-2006 a las 10:54 +0200, Jose Luis Jiménez escribió:
> > On 4/18/06, Jose Luis Jiménez <jljmarin en gmail.com> wrote:
> > > On 4/18/06, Camilo Uribe <camilo.uribe en gmail.com> wrote:
> > > > Ahi alguna forma de hacer en nautilus lo mismo que hace el comando
> > > > chmod --recursive?
> > >
> > > [...]
>
> El problema es que normalmente para los directorios quieres un permiso
> 700 o 755 y para los archivos 600 o 644
>
> Una idea es ayudarse de find (pero cuando son muchos archivos y
> directorios no se puede).
>

Sí, pero ese problema lo tiene con independencia de si lo hace desde
consola o desde un script para Nautilus que es al fin y al cabo lo que
preguntaba.

Una solución al nuevo problema que planteas dependerá de lo que
interese a cada usuario, es decir si sabe que lo que tiene en un
directorio son todo ejecutables sí le interesarán los permisos del
tipo 755, si por el contrario tiene ficheros html entonces le
interesará distinguir entre los permisos del directorio y los de los
ficheros, si lo que tiene son mezcla de ejecutables y no ejecutables
le interesará distinguir entre los directorios, los ejecutables y los
no ejecutables, ...

Por ejemplo si quiere únicamente distinguir entre directorios y
archivos podría utilizar:

find $directorio -type d -exec chmod 755 {} \;
find $directorio -type f -exec chmod 644 {} \;

Se pone el permiso 755 a los directorios y el permiso 644 a los
ficheros de los directorios.

Un cutre-script (está sin probar) de partida utilizando lo anterior podría ser:


#!/bin/bash

  # Si no se ha seleccionado ningún directorio finaliza
  # el script con un mensaje de error
  if [ $# -lt 1 ]; then
     zenity --error --title="Error - Cambiando permisos" \
            --text="Debe seleccionar un directorio"
     exit 1
  fi

  permdirec=$(zenity --entry --text "Permisos para los directorios"
--entry-text "755" --title "Cambiando permisos")
  permarchi=$(zenity --entry --text "Permisos para los archivos"
--entry-text "644" --title "Cambiando permisos")

  while [ $# -gt 0 ]; do
    directorio=$1

    find $directorio -type d -exec chmod $permdirec {} \;
    find $directorio -type f -exec chmod $permarchi {} \;

    shift
  done




En cualquier caso para la pregunta que hace Camilo "¿Ahi alguna forma
de hacer en nautilus lo mismo que hace el comando chmod --recursive??"
la respuesta es la que le ha dado Víctor, es decir un script que
invoque desde Nautilus y que haga el mismo chmod -R que hace desde
consola.

Saludos

--
______________________________________________________________________
¿Jazztel? NO Gracias. A ver si te enteras -
http://zenon.wordpress.com/2006/02/08/los-tejemanejes-de-jazztel/

Jose Luis Jimenez (Getafe, Madrid, España)
Socio de Hispalinux: #1555
Usuario GNU/Linux: #187758
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=187758
______________________________________________________________________



Más información sobre la lista de distribución ubuntu-es