Récupérer les droits d'un fichier AIX en num

Résolu
Unix4ever -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche à récupérer les droits Unix d'un fichier AIX sous forme numérique pour pouvoir remettre les droits plus tard par un chmod.

Par exemple pour le fichier :

-rwxr--r-- user users .... toto

je souhaite récupérer la valeur 744.

Merci de votre aide.
Configuration: AIX 5.3

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Si la commande "stat" est accessible sur ton système, un simple :
     stat -c %a ton_fichier
    devrait faire l'affaire ;-))
    0
  2. Unix4ever
     
    stat n'est pas disponible sur le serveur AIX que j'utilise et je ne peux pas l'installer.

    Merci quand même
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    utiliser perl
    perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] &= 07777' fichier
    0
    1. Unix4ever
       
      dubcek, c'est pareil sans la commande stat ce n'est pas possible.

      :-(
      0
      1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > Unix4ever
         
        c'est un appel interne au perl du system call stat, pas la même chose qu'une commande shell, essaye
        0
      2. Unix4ever > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        J'ai une erreur, c'est peut-être ma syntaxe perl, je n'ai jamais fait de perl :


        perl -e 'printf "%o\n" ,(stat($ARGV[0]))[2] &=07777' /tmp/toto


        Can't modify list slice in bitwise and (&) at -e line 1, at EOF
        Execution of -e aborted due to compilation errors.
        0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    essaye
    perl -e 'printf "%o\n" ,(stat($ARGV[0]))[2] ' /tmp/toto
    ou
    perl -e 'x=(stat($ARGV[0]))[2] ; x=x & 07777 ; printf "%o\n",x ' /tmp/toto
    pour voir
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Unix4ever
     
    It works!

    Merci beaucoup, je crois que je vais me mettre au perl!

    A+
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    il faut garder du résultat retourné par stat les 12 derniers bits, d'où le & 07777
    0