faire un chown d'une liste de repertoire ...

faire un chown d'une liste de repertoire ... - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 20-06-2003 à 10:15:27    

salut,
 
J'ai un repertoire /Samba/User, j'ai fait un fichier "liste" en faisant un "ls > liste".
J'aimerais faire maintenant pour chaque repertoire de cette liste:
chown /Samba/User/ligne1 ligne1
pour rendre proprietaire chaque user de son repertoire.
 
Comment faire pour traiter le fichier ligne a ligne ??
Je ne suis pas tres fort en script  ;)  
 
olivier

Reply

Marsh Posté le 20-06-2003 à 10:15:27   

Reply

Marsh Posté le 20-06-2003 à 10:31:50    

cd /Samba/User
for f in *; do echo chown $f $f; done :??:

Reply

Marsh Posté le 20-06-2003 à 10:33:22    

fl0ups a écrit :

cd /Samba/User
for f in *; do echo chown $f $f; done :??:  


 
+1 mais je ferais chown -R $f $f pour changer les droits des fichiers dans les rep...

Reply

Marsh Posté le 20-06-2003 à 10:37:56    

bah il a pas dit qu'il voulait du récursif :D

Reply

Marsh Posté le 20-06-2003 à 10:39:35    

fl0ups a écrit :

cd /Samba/User
for f in *; do echo chown $f $f; done :??:  

Rajouter aussi un point après le nom de l'utilisateur pour rendre le répertoire au groupe de l'utilisateur concerné.
 
for i in * ; do chown -R ${i}. ${i} ; done
 

Reply

Marsh Posté le 20-06-2003 à 10:40:05    

fl0ups a écrit :

bah il a pas dit qu'il voulait du récursif :D

Oui, enfin, bon ...

Reply

Marsh Posté le 20-06-2003 à 10:41:03    

tiens, j'avais une question dans le meme genre : comment changer les droit de tous les fichiers d'un rep en 660 par ex. mais que les rep presents dans ce meme repertoire soit 770. Parce que si on fait chmod 660 *, ben les rep sont plus accessibles evidemment :(
 
le top serait de faire ca recursivement pour un rep donné :jap:

Reply

Marsh Posté le 20-06-2003 à 10:42:30    

beber.doneux01 > la question a été posé il y a 3 jours.
http://forum.hardware.fr/forum2.ph [...] 086&cat=11


Message édité par Mjules le 20-06-2003 à 10:43:39

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 20-06-2003 à 11:17:56    

ok, j'ai pas dit mais effectivement je veux faire ca en recursif, mais le -R j'aurais trouvé tout seul quand meme   :D  
Vous pourriez me detailler le "for f in*", pkoi f ??, moi ma liste je l'avait dans un fichier "liste".
 
 
for f in *;
do echo chown $f $f;
done

Reply

Marsh Posté le 20-06-2003 à 11:21:51    

olicel a écrit :

ok, j'ai pas dit mais effectivement je veux faire ca en recursif, mais le -R j'aurais trouvé tout seul quand meme   :D  
Vous pourriez me detailler le "for f in*", pkoi f ??, moi ma liste je l'avait dans un fichier "liste".

Parce que ...
 
si tu préfères, tu peux écrire :

Code :
  1. for i in *;
  2. do echo chown $i $i;
  3. done


 
ou encore :

Code :
  1. for toto in *;
  2. do echo chown $toto $toto;
  3. done


 
ou bien :

Code :
  1. for putaindevariabledemerdearallonge in *;
  2. do echo chown $putaindevariabledemerdearallonge $putaindevariabledemerdearallonge;
  3. done


 
C'est toi qui vois ...

Reply

Marsh Posté le 20-06-2003 à 11:21:51   

Reply

Marsh Posté le 20-06-2003 à 11:29:25    

je vois a quel moment dans votre script je dis de faire ca pour tout les repertoire ?! j'ai pas compris un truc, a quel moment il a la liste des repertoire a faire  :??:

Reply

Marsh Posté le 20-06-2003 à 11:32:45    

C'est le caractère joker * du for qui représente tous les répertoires. Si tu y tiens, tu peux remplacer cette ligne :
 
for f in *
 
par celle-ci :
 
for f in $(ls -d *)
 
Mais c'est pareil. Évidemment, si dans le répertoire courant il n'y a pas que des répertoires utilisateurs, ça va râler un peu, mais c'est pas très grave.


Message édité par Jak le 20-06-2003 à 12:31:45
Reply

Marsh Posté le 20-06-2003 à 12:09:05    

Mjules a écrit :

beber.doneux01 > la question a été posé il y a 3 jours.
http://forum.hardware.fr/forum2.ph [...] 086&cat=11


 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed