Automatisations de commandes unix -> dans tous sous-repertoires...

obuchwal

Membre junior
19 Septembre 2001
29
0
hello,
j'aimerais changer les droits de mes fichiers sous osX avec chmod et chgrp....

mais j'aimerais faire automatiquement tous les sous-répertoires...car sinon ça prendre 2jours...

vous avez pas une idée de commandes unix..
merci
oli

[21 octobre 2001 : message édité par olioli]
 

benR

Membre d’élite
Club MacG
17 Juillet 2000
3 480
11
Paris
www.lasauce.eu
fais un man chmod

(man te donne les infos sur la commande). SI mes souvenirs sont exacts, en général -r permet d'indiquer que tu veux que la commande s'effecute sur le dossier et sur les éléments contenus dans le dossier.

chmod -r 777

(par exemple)
à tes risques et périls néanmoins
 

[MGZ]Toine

Membre d’élite
Club MacG
4 Décembre 2000
3 363
5
www.macgamezone.Com
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par benR:

(par exemple)
à tes risques et périls néanmoins
<HR></BLOCKQUOTE>

Encore une fois je comprens pas ce à tes risques et périls


(oui je sait, je commence à être chaint avec ca mais bon...)


D'accord, ca donne unl accès à tout le monde, et alors ?
Dans Os &lt; X, c'était toujours comme ca, et on a jamais dit ATTENTION tout le monde il a le droit de lire votre disque, alors pourquoi maintenant on le fait ?

je ne voit vraiment pas en quoi ca dérange sur un ordinateur personnelle....
 

obuchwal

Membre junior
19 Septembre 2001
29
0
alors ... g un peu cherché et je suis tombé sur la commande magique


find . -name '*' -type f -exec chmod a+r '{}' \;

et
find . -name '*' -type d -exec chmod a+rx '{}' \;

pour les dossiers...

pour changer le groupe c juste chgrp staff ... car il y avait plein d'admin..qui empèechait l'accès avec samba..

voila c bien pratique....et bon je ne pense pas que je risque grand chose ..de toute manière il n'y a que la lecture qui est autorisé..
 

Azrael

Membre émérite
13 Février 2001
505
1
Visiter le site
Pour info, il y a encore plus simple, et hors terminal...
Via le Finder, sélectionne ton dossier et fais apparaitre la fenêtre des infos (Pomme + I).
Tu choisis Accès dans le menu déroulant, tu configure les droits à ta guise et "Oh miracle " en dessous tu as un bouton "appliquer" pour modifier en fonction de tes réglages tous les sous dossiers inclus...


Bon ok pour changer le propriétaire faudra tjs aller dans le term, mais bon....
 

Bilbo

Vétéran
Club MacG
17 Octobre 2001
7 084
727
Strasbourg
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par benR:
chmod -r 777

à tes risques et périls néanmoins
<HR></BLOCKQUOTE>

Et c'est effectivement risqué parce-que tu rends exécutable des fichiers qui ne le sont pas forcément. Si tu veux rendre un fichier accessible à tout le monde, fais plutôt :

chmod -R a+rwX nomdurepertoireoudecequetuvoudras

Cette commande permet de faire de manière récursive (note le R majuscule) des fichiers lisibles, modifiables et exécutables (quand ils l'étaient déjà pour ce dernier point) pour tout le monde.

Bien sûr tout ça est expliqué par le menu dans la commande man chmod.


Bye

[21 octobre 2001 : message édité par Bilbo]
 

simon

Membre d’élite
Club MacG
18 Juin 2000
3 669
16
Singapore
www.simonganiere.ch
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR> Posté à l'origine par olioli:



find . -name '*' -type f -exec chmod a+r '{}' \;

et
find . -name '*' -type d -exec chmod a+rx '{}' \;

pour les dossiers...
<HR></BLOCKQUOTE>

Petite explication pour ceux qui ne maitrise pas la commande find:

le point . c'est pour le repertoire courant; -name '*' cela veut dire que le nom du fichier est n'importe quoi (l'étoile * remplace une chaine de caractère quelconque); -type -f ou -d c'est pour file et directory; -exec chmod a+rx c'est pour executer la commande chmod avec ces options. A noter que l'on peut executer n'importe quelle commande: exec rm {} \
Et on peut rajouter -print à la fin si on veut afficher à l'écran les fichiers modifier par la commande find:
find . -name '*' -type d -exec chmod a+rx '{}' \ -print

[21 octobre 2001 : message édité par Simon]
 

simon

Membre d’élite
Club MacG
18 Juin 2000
3 669
16
Singapore
www.simonganiere.ch
Ben cela dépend forcément de ce que tu veux faire, si c'est pour faire une recherche de fichier tu peux partir de la racine mais si c'est pour effacer ou modifier des fichiers partir de la racine me semble un peu gonflé...
 

simon

Membre d’élite
Club MacG
18 Juin 2000
3 669
16
Singapore
www.simonganiere.ch
Ok mais ça c'est vraiment gonflé, de toute façon tu ne pourras pas le faire à moins de passer en root vu que tu ne peux modifier que des fichiers dont tu es le propriétaire. Mais franchement je ne suis pas sur que cela soit un très bonne idée de modifier tout les droits d'accès de tout les fichiers et ce pour de simple et évidente raison de sécurité, cela t'évite simplement d'aller modifier n'importe quel fichier n'importe comment et de tout faire planter...en tout cas moi je ne le ferai pas
 

Bilbo

Vétéran
Club MacG
17 Octobre 2001
7 084
727
Strasbourg
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par [MGZ]Toine:
Oui, mais là c'est pour changer les droits de tous les répertoires et sous répertoires, donc autant partir de la racine
<HR></BLOCKQUOTE>

Je pense comme Simon que ça n'est pas une bonne idée. Si Apple a fait un répertoire /private, ils ont leurs raisons. De mon point de vue elles sont bonnes.

Si tu changes les droits des fichiers du système, je fais le pari que tu va devoir réinstaller ton OS X un jour ou l'autre parce-que tu ne sauras plus qui était à qui et qui faisait quoi. Des lignes dans les "ls -l" du genre :

-rw-r--r-- root admin nomFichier

sont intéressantes. C'est clairement un fichier sensible (seul root a le droit de le modifier). Et c'est bon à savoir.

UNIX est un système multi-utilisateurs. Et ce qui fait l'aspect multi-utilisateurs, ben c'est les droits.


Bye.

[21 octobre 2001 : message édité par Bilbo]
 

[MGZ]Toine

Membre d’élite
Club MacG
4 Décembre 2000
3 363
5
www.macgamezone.Com
Oui je suis d'accord..
Moi égélement je n'y touche pas pour cette raison..


Mais la personne qui n'a rien à faire du mutli-utilisateur et qui se retrouve seule sur son ordinateur, il peut très bien faire ca poru se retrouver avec tous les pleins pouvoir sur son ordinateur, parce que quand on est tous seul, c'est toujours frustrant de se retrouver avec un : "Vous n'avez pas le droit"....
ALors bon, quand on sait un peu ce qu'on fait, et qu'on a pas envie de vouloir faire du terminal à chaque fois que on veut faire une copie, bah moi je trouve que c'est une bonne solution franchement...

Ca fait 16 ans que le mac n'est pas multi-utilisateurs avec tous les droits de tout faire pour tout le monde (même de mettre le System à la poubelle) alors bon, je voit pas pourquoi d'un coup, le fait de pouvoir le faire devient risque
 

-anonyme-

Légende
26 Février 2001
66 286
2 670
Attention, si certains bundle, comme les kext n'ont pas les droits qui convienent, beaucoup de choses ne vont plus fonctionner, comme graver un cd par exemple. Le noyau mach charge dynamiquement les modules et extensions. si ils n'ont pas les bon droits, adieu les fonctions.
Pour les /dev faut pas toucher non plus. bref, faut pas trop jourer avec ca. Dans /Users/user tant que vous voulez mais ailleurs non.
Pour info, la derniere etape lors de l'installation de macos x, c'est le changement des droits des differents fichiers, et ca sert pas a rien!
Mon premier cd de mise a jour 10.1 etait mal grave. J'ai essayer de l'installer directement a partir de l'instaleur de la 10.0.4 en donnant comme destiation un autre 10.0.4. Ca a marche sauf la phase de changement des droits, il m'etait impossible de graver des CDs sauf sous root. bref, si les droits ne sont pas corrects, le systeme se met a avoir un comportement vraiment douteux...
Il n'y a jamais eu de problemes de droits sous 9, 8, etc, mais la c'est radicalement different, alors prudence...
 

-anonyme-

Légende
26 Février 2001
66 286
2 670
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par [MGZ]Toine:
Oui je suis d'accord..
Moi égélement je n'y touche pas pour cette raison..


Mais la personne qui n'a rien à faire du mutli-utilisateur et qui se retrouve seule sur son ordinateur, il peut très bien faire ca poru se retrouver avec tous les pleins pouvoir sur son ordinateur, parce que quand on est tous seul, c'est toujours frustrant de se retrouver avec un : "Vous n'avez pas le droit"....
ALors bon, quand on sait un peu ce qu'on fait, et qu'on a pas envie de vouloir faire du terminal à chaque fois que on veut faire une copie, bah moi je trouve que c'est une bonne solution franchement...

Ca fait 16 ans que le mac n'est pas multi-utilisateurs avec tous les droits de tout faire pour tout le monde (même de mettre le System à la poubelle) alors bon, je voit pas pourquoi d'un coup, le fait de pouvoir le faire devient risque
<HR></BLOCKQUOTE>

Je me permets de ne pas être du tout d'accord :
Il y a une très, très bonne raison de considérer que ce qui était bon pendant 16 ans ne l'est plus aujourd'hui... OS X est un Unix... donc :
- un OS dont le contrôle peut totalement être pris via le réseau, avec des tas de services qui tournent ou qui n'attendent que d'être lancés
- un OS qui motive bien plus les pirates que le MacOS classique, qui avait dégouté à peu près tous les pirates qui s'y sont lancés...

Ce qui arrivait aux petits copains sous Win95/98/Me et dont on riait peut parfaitement nous arriver demain si nous commençons à avoir une attitude aussi laxiste que les gars de Crimosoft...

Je pense que pour tout ce qui est applications, dossiers créés par OS X et fichiers de configs, il ne faut tripoter les droits que si l'on sait très bien ce que l'on fait.
 

nexxen

Membre junior
28 Juin 2001
68
0
Je viens juste de tomber sur la discussion, et j'ai fais un bond de 3 mètres quand j'ai entendu je sais plus qui qu'il voulais faire un chmod à partir de la racine :

IN-TER-DIT !!!!!!!

1) sous unix, certains démons (des programmes qui tournent en tache de fond) sont lancés au démarrage. Pas mal d'entre eux nécessitent des droits TRES PARTICULIER au niveau système : j'ai personnellement planté un RS6000 en faisant un chmod -R a+rw sur la racine (c'était il y a longtemps) : on a du repartir d'une sauvegarde système !

Je ne peux pas dire quelles vont etre les conséquences d'un tel acte sur BSD, mais de toute facon, c'est extrèmement dangeureux !! Ca risque d'etre ré-install obligatoire, ou divers dysfonctionnements qui ne se règleront jamais.

2) pour faire un chmod à la racine, il fauut etre root. Sinon, aucun fichier de root ne pourra etre modifié et vous aurez une floppée d'erreurs.

"Super, vont me dire certains, ya qu'à balancer la sauce, et on ne cassera pas le système puisqu'on n'aura pas le droit de modifier les fichiers".

Sauf que vous êtes administrateurs. Et si vous n'endommagez pas la couche UNIX, vous risquez d'endommager OS X. Et le résultat risque d'etre le meme : ré-install.

Désolé d'etre aussi catégorique, mais faire ca sur un serveur UNIX quel qu'il soit (OSF, AIX, HP-UX ou LINUX) est une des pires choses à faire (avec un rm -r *
). Alors meme sans connaitres les conséquences précises sous OS X, je déconseille vivement ce genre de manip.

Mais bon : maintenant, à vous de voir...
 

-anonyme-

Légende
26 Février 2001
66 286
2 670
En relisant mon post, je me rend compte que je ne suis pas assez clair:
Ne faites pas de chmod a la racine!!!!

cf. toutes les mises en garde