Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/10/2006, à 17:17

whynot

[nautilus-scripts] Restaurer des permissions user sur plusieurs objets

Hello,

Je mets à disposition ici un petit bout de script que j'ai trituré à partir de quelques autres scripts et qui restaure récursivement des permissions utilisateur sympatoches (rwX,o= ) ainsi que des propriétés tout aussi sympatoches ($whoami:users).
Ce script a été conçu après quelques problèmes de droits mal modifiés par http://www.fs-driver.org/, un driver Ext2 pour windows que j'utilise pour faire cohabiter au mieux Ubuntu et Windows. Il me sert aussi pour installer des applications pas vraiment "unix compliant" qui écrivent leurs fichiers de config dans le répertoire d'installation et que j'installe généralement dans /opt/$app.

Bien sûr, il ne s'agit PAS de lancer ce script sur /usr tongue ! Il peut être très dangereux de le lancer n'importe où, et est à réserver à quelques utilisations ponctuelles comme celle ci-dessus.

Je suis bien sûr ouvert à toute amélioration, proposition.

#!/bin/sh
# This script restores nice permissions on selected
# folder / file(s) or when clicked inside a folder
# Placed in the public domain by Ronan Jouchet
# Almost everything is from :
#   'open-terminal-here" script from Chris Picton
#   'root-nautilus-here' script from Shane T. Mueller
# Thanks a lot for their scripts !
#
# gksudo usage to provide popup password window if sudo has expired.
# Line only echos got root to std output.  But gksudo updates your
# sudo access privs, so running nautilus with sudo will succeed
# without asking for a password.

base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
buddy="`whoami`"
if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
     dir="$base"
else 
     while [ ! -z "$1" -a ! -d "$base/$1" ]; do shift; done
     dir="$base/$1"
fi

foo=`gksudo -u root -k -m "enter your password for nautilus root access" /bin/echo "got r00t?"`
sudo chmod -R ug=rwX,o= $dir
sudo chown -R $buddy:users $dir

Dernière modification par whynot (Le 04/10/2006, à 18:31)

Hors ligne

#2 Le 04/10/2006, à 13:43

newbeenul

Re : [nautilus-scripts] Restaurer des permissions user sur plusieurs objets

Bonjour,
Je cherche un script de ce genre mais qui marcherait sur des fichiers.
Si j'ai bien compris celui-ci change les droits du répertoire ( d'ou l'option -R ?).
Dans mon cas j'ai qulques problèmes de fichiers qui prennent les droits root lorsque je les enregistre en réseau (avec OoO, Evolution...) et que j'aimerais simplement remettre en user avec simple un clic droit... (la j'ouvre un nautilus en root a chaque fois, je navique , clic droit permissions etc... c'est un peu fastidieux)
Je n'ose pas modifier directement ce script car je ne comprends pas tout dedans quelqu'un pourrait m'aider?
Merci!

Hors ligne

#3 Le 04/10/2006, à 17:04

whynot

Re : [nautilus-scripts] Restaurer des permissions user sur plusieurs objets

Salut à toi,

Bonne nouvelle : ça marche aussi sur des fichiers wink (et j'en profite pour éditer la description dans le premier post)
J'ai même pas pensé à préciser étant donner que je m'en sers toujours sur des dossiers.
Petites explications :

base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
buddy="`whoami`"

> Génération des variables locales de chemin et nom d'utilisateur

if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
     dir="$base"
else 
     while [ ! -z "$1" -a ! -d "$base/$1" ]; do shift; done
     dir="$base/$1"
fi

> Répertoire ou fichiers ? Extrait de 'root-nautilus-here', et si un gourou du scripting bash pouvait l'expliquer précisément (les conditions notamment), ça m'arrangerait bien aussi hmm

foo=`gksudo -u root -k -m "enter your password for nautilus root access" /bin/echo "got r00t?"`

> Droits root

sudo chmod -R ug=rwX,o= $dir
sudo chown -R $buddy:users $dir

> Zou on effectue les modifs

Enfin, pour ceux qui ne sauraient pas,
1. Ce script est à mettre dans ~/.gnome2/nautilus-scripts
2. Il faut ensuite le rendre exécutable : chmod +x ~/.gnome2/nautilus/scripts/<nomduscript>
3. Clic droit sur l'élément (dossier, fichier(s) ou espace vide) > Scripts > <nomduscript>
Infos supplémentaires : http://planet.ubuntu-fr.org/index.php?q=nautilus-scripts

Dernière modification par whynot (Le 04/10/2006, à 20:07)

Hors ligne

#4 Le 04/10/2006, à 18:57

newbeenul

Re : [nautilus-scripts] Restaurer des permissions user sur plusieurs objets

Génial, merci!...

Hors ligne