Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2723 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  sauvegarder/retrouver les droits d'un fichier sous unix

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sauvegarder/retrouver les droits d'un fichier sous unix

n°833375
p-seeker23
Posté le 07-08-2006 à 17:15:22  profilanswer
 

Salut à tous,
Qq1 saurait-il comment je pourrais stocker le mode d'un fichier (r-x---rwx par exemple) sous forme réutilisable (qui puisse servir d'argument à chmod) ?
 
Je veux appliquer, dans un script, les droits d'un fichier A à un fichier B..
 
Autrement dit, comment traduire le r-x---rwx en 507 automatiquement ?
 
Merci.


Message édité par p-seeker23 le 07-08-2006 à 17:29:00
mood
Publicité
Posté le 07-08-2006 à 17:15:22  profilanswer
 

n°833377
kartnico
un pour tous et tous pour un
Posté le 07-08-2006 à 17:22:51  profilanswer
 

Je suis en train de chercher en faisant un "man ls".
 
Sinon, tu peux réaslier un script, qui te fournit le code correspondant, en utilisant :
 
ls -l nom_fichier |cut -d" " -f1


Message édité par kartnico le 07-08-2006 à 17:30:49
n°833379
p-seeker23
Posté le 07-08-2006 à 17:28:12  profilanswer
 

Dis-moi quand tu trouveras !!
J'ai fait un script qui traduit les rwx en chiffres y a un an à peu près, mais je l'ai perdu..
l'horreur ! J'ai passé toute une journée à me battre avec des i et de j et des k, c'est beacoup plus ch**t que ça en a l'air !

n°833395
kartnico
un pour tous et tous pour un
Posté le 07-08-2006 à 17:56:37  profilanswer
 

Je n'ai rien trouvé dans la documentation.
 
En ce qui concerne le script (je précise que je ne suis pas exellent dans ce domaine), tu peux essayer la méthode bourrin (2 minutes :D)
 

Code :
  1. #!/bin/sh
  2. DROITS=`ls -l $1 |cut -d" " -f1`
  3. case "$DROITS" in
  4. "-rwx------" )
  5. echo 700;;
  6. esac


 
Ensuite tu places tous les cas possibles dans ton case, "et lé tour est joué"


Message édité par kartnico le 07-08-2006 à 17:57:48
n°833399
p-seeker23
Posté le 07-08-2006 à 18:01:34  profilanswer
 

pas mal !  
Effectivement, c bourrin, mais c efficace. en tous cas je préfère au jeu de devinettes-casse-tête des var pour gérer les r, w et x pour chacun des trois groupements !
 
Merci !  :jap:  

n°833534
p-seeker23
Posté le 08-08-2006 à 10:01:02  profilanswer
 

J'ai trouvé mieux !
 

modeStr(){
 
    local mode
 
    [ ! -e $1 ] && echo "Error: (Internal) modeStr: $1 does not exist!" && return -1
    mode="$(ls -l $(dirname $1) | grep -w $(basename $1) | awk '{print $1}')"
    [ -z "$mode" ] && echo "Error: (Internal) modeStr: could not obtain mode of $1!" && return -2
 
    echo "u=$(echo $mode | cut -c2-4),g=$(echo $mode | cut -c5-7),o=$(echo $mode | cut -c8-10)"
    return 0
 
}


 
Cette fonction décrit le mode d'un fichier (ou répertoire) sous la forme "u=rwx,g=---,o=---", qui peut être passé en argument à chmod :
chmod u=rwx,g=---,o=--- fichier
 
Cdlt.

Message cité 1 fois
Message édité par p-seeker23 le 08-08-2006 à 10:01:47
n°833564
youx21
Posté le 08-08-2006 à 11:33:18  profilanswer
 

p-seeker23 a écrit :

J'ai trouvé mieux !
 

modeStr(){
 
    local mode
 
    [ ! -e $1 ] && echo "Error: (Internal) modeStr: $1 does not exist!" && return -1
    mode="$(ls -l $(dirname $1) | grep -w $(basename $1) | awk '{print $1}')"
    [ -z "$mode" ] && echo "Error: (Internal) modeStr: could not obtain mode of $1!" && return -2
 
    echo "u=$(echo $mode | cut -c2-4),g=$(echo $mode | cut -c5-7),o=$(echo $mode | cut -c8-10)"
    return 0
 
}


 
Cette fonction décrit le mode d'un fichier (ou répertoire) sous la forme "u=rwx,g=---,o=---", qui peut être passé en argument à chmod :
chmod u=rwx,g=---,o=--- fichier
 
Cdlt.


 
pas mal du tout! j'étais en train d'écrire une fonction capilotracté de converssion xrw en octal ... je vais me garder ça sous le coude au cas où...


Message édité par youx21 le 08-08-2006 à 11:35:55
n°833610
p-seeker23
Posté le 08-08-2006 à 14:02:52  profilanswer
 

Je l'ai fait il y a un an et j'ai perdu le code (et qqes cheveux ce jour là). C horrible.  :non:  
.. jusqu'à ce que man chmod me donne cette idée  ;)  
 

n°833617
Mjules
Modérateur
Parle dans le vide
Posté le 08-08-2006 à 14:30:51  profilanswer
 

en plus simple pour avoir les droits d'un fichier en octal :

stat -c %a fichier


Message édité par Mjules le 08-08-2006 à 14:31:13

---------------
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.
n°833625
p-seeker23
Posté le 08-08-2006 à 14:53:58  profilanswer
 

Très sympa !
Mais j'ai dû installer coreutils pour l'avoir (je suis sous Solaris..)..
Malheureusement je développe en env. professionnel, donc si l'outil n'est pas dispo en standard, j'y ai pas droit..  :cry:  

mood
Publicité
Posté le 08-08-2006 à 14:53:58  profilanswer
 

n°833628
Mjules
Modérateur
Parle dans le vide
Posté le 08-08-2006 à 14:57:13  profilanswer
 

en tout cas, sous linux, coreutils amène ls, chmod et toute la clique (en plus de stat), on est obligé de l'avoir donc.


---------------
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.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  sauvegarder/retrouver les droits d'un fichier sous unix

 

Sujets relatifs
NFS et les droitsLes droits des groupes sous Mandriva
comment lire un fichier nrgScript pour télécharger et convertir des fichier ram
Help, serveur linux Filemaker planté, fichier corrompufichier ASF acheté sur FnacMusic avec Totem
Longueur de nom de fichier (debian& vieux paÿcaÿ)Comment ecire la date dans un nom de fichier
périphérique de stockage externe et systèmes de fichierGros fichier pureftpd
Plus de sujets relatifs à : sauvegarder/retrouver les droits d'un fichier sous unix


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR