chown/chmod en Java ?

chown/chmod en Java ? - Java - Programmation

Marsh Posté le 28-11-2002 à 22:39:46    

Bonjour les gens,
 
Vala, je me doute que ce genre d'opération n'est pas forcément possible sur tous les OS, mais je voulais savoir s'il y avait la possibilité de lire ou changer les droits d'accès à un fichier en Java. J'ai bien regardé dans java.io et même si y a un setReadOnly() dans File, ça me va pas vraiment :\
En fait, l'idée de base, c'est passke je parse avec un prog Java toutes les nuits un répertoire de plusieurs milliers de fichiers et le chmod -R 777 * c'est très bof :D
 
Donc voilà, vous avez des idées ?

Reply

Marsh Posté le 28-11-2002 à 22:39:46   

Reply

Marsh Posté le 28-11-2002 à 23:01:26    

Tu parse, mais tu fais quoi, avec chaque fichier??

Reply

Marsh Posté le 28-11-2002 à 23:09:08    

Oula... une grande histoire :)
Alors, c'est touplin d'fichiers MP3 avec des tags ID3. J'lis le tag et s'il est bien mis, je renomme le fichier du genre artiste_-_titre.mp3. Puis je bouge le fichier dans le répertoire approprié. Or, mon prog s'exécute avec les droits root. Donc ba du coup, les fichiers sont en root:root ou avec un chmod genre 700. Mais pas tout l'temps. Et j'voudrais faire en sorte que ça devienne du joliuser:joligroup avec un chmod 750 ou kek chose du style.
Vala.


Message édité par Taiche le 28-11-2002 à 23:10:10
Reply

Marsh Posté le 28-11-2002 à 23:17:59    

Ah, ben si c'est que pour faire ça, tu peux le faire avec du awk, du bash et un petit exécutable Linux qui s'appelle id3v2...Je l'ai fait pour renommer mes fichiers (une sombre histoire d'accents perdus, en fait! :D) mais bon...
Franchement, c'est tout con, et sans doute beaucoup plus rapide qu'en Java..

Reply

Marsh Posté le 28-11-2002 à 23:23:01    

Ba ui, OK, m'enfin comme mon prog se tape déjà tout le répertoire, j'voulais faire d'une pierre deux coups pour éviter de tout relire :p
Sinon oui, y a bien la solution shell mais bon bof. Pis mon prog ne fait pas que ça et tout ce que j'ai pu trouver sur le Net qui se rapprochait plus ou moins de ce que je voulais faire était soit très limité soit buggé.

Reply

Marsh Posté le 28-11-2002 à 23:29:42    

bah aprs ton programme java tu fais betement
 
chown -R joliuser repertoire
chgrp -R joligroupe repertoire
chmod -R 750 repertoire
 
non ?

Reply

Marsh Posté le 28-11-2002 à 23:30:10    

Bah c'est toi qui voit, hein! :) Pis bon, les tags ID3, tu peux les récupérer en awk ou en perl, sinon : c'est en clair dans le mp3...Parce qu'avec du Java, pour ce qui est des changements de droits, beeeeen...J'ai peur que ce soit extrêmement galère!! En C, encore, je dis pas...Mais en Java..

Reply

Marsh Posté le 28-11-2002 à 23:30:31    

Je comprend pas pourquoi le chmod -R 777 ne te convient pas. Mais tu peux toujours essayer ça, même si je ne suis pas sûr que ça soit plus rapide :

find . -not -perm 777 -exec chmod 777 {}\;


Message édité par matafan le 28-11-2002 à 23:30:45
Reply

Marsh Posté le 28-11-2002 à 23:40:21    

Oula, 3 posts, c'est Noël :)
Donc euh dans l'ordre (ou pas) :
* HappyHarry et Matafan : bin le souci, c'est que j'ai un vieux paquet de fichiers et de répertoires, quand même. Si j'dis plus de 13000, ça vous parle ? :D Surtout que comme je veux faire ça toutes les nuits, bin ça veut dire que le chmod/chown récursif fera ça toutes les nuits pour tous les fichiers, alors que si je le fais une seule fois, bin la plupart des fichiers auront les bons droits. Donc comme mon prog lit déjà tous les fichiers un par un, bin il m'aurait suffi (+t ? j'sais jamais) d'ajouter la bonne ligne qui va bien en Java pour vérifier les droits et les setter si besoin.
* gfive : bin ui, c'est tout vu, awk et perl c'est pas tellement mon rayon. awk passke c'est trop limité pour tout ce que je veux faire et perl passke chu pas super fan du langage et pas très très calé (moins qu'en Java, en tout cas). Ba sinon, c'est pas super grave, y a pas mort d'homme, au pire j'ferai du System.exec() [:xp1700]
* re-Matafan : merci pour la ligne de commande, j'verrai peut-être ce que ça donne :)

Reply

Marsh Posté le 29-11-2002 à 00:14:12    

ben sauf erreur de ma part, ca fait rien quand les fichiers ont deja les bons droits ...
donc des la 2e execution ca sera relativment rapide

Reply

Marsh Posté le 29-11-2002 à 00:14:12   

Reply

Marsh Posté le 29-11-2002 à 08:58:01    

Taiche a écrit a écrit :

Oula, 3 posts, c'est Noël :)
awk passke c'est trop limité pour tout ce que je veux faire




 
Rhôôô!! Hérésie que tout cela!! :D Nan, sans dec, Awk, une fois maitrisé, c'est vachement mighty, comme truc, mais bon ;)..Je me suis même fait un machin bidule qui me crée le site web de download de mes MP3 pour mes collègues au boulot, avec Awk..


Message édité par gfive le 29-11-2002 à 09:02:20
Reply

Marsh Posté le 29-11-2002 à 09:25:00    

Harry : ah ba dans ce cas, ça va m'intéresser ! J'vais voir un peu plus, alors.
gfive : ouais, mais awk ça dialogue moyen avec une base MySQL :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 29-11-2002 à 10:47:36    

baah, ça peut...
 
echo "commande sql" >> fichier
 
mysql -u user -ppassword < fichier | awk ...
 
Et hop!
 
:D:D
 
mouarf..
Nan, mais bon, je pensais que t'avais que des manips de renomage et autres trucs du genre à faire...Dans ce genre de cas, ça suffit largement! :)

Reply

Marsh Posté le 29-11-2002 à 12:58:40    

De toute façon pour que ton soft se rende compte qu'un fichier a déjà les bons droits, il faut bien qu'il fasse un accès... Donc de toute façon il devra à chaque fois parcourir tes 13000 fichiers (enfin sauf si tu tiens par ailleurs un catalogue des fichiers déjà modifiés). Donc tu perds rien à faire un chmod -R.

Reply

Marsh Posté le 29-11-2002 à 13:30:58    

Matafan a écrit a écrit :

De toute façon pour que ton soft se rende compte qu'un fichier a déjà les bons droits, il faut bien qu'il fasse un accès... Donc de toute façon il devra à chaque fois parcourir tes 13000 fichiers (enfin sauf si tu tiens par ailleurs un catalogue des fichiers déjà modifiés). Donc tu perds rien à faire un chmod -R.




 
Nan mais nan, mon soft a un accès root et y a des fichiers qui ont comme droits ceux que j'ai cités plus haut (root:root, en 700). Mais je veux pouvoir donner les droits à un autre user, dans un autre groupe.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Sujets relatifs:

Leave a Replay

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