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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script bash: Permission non accordée !?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script bash: Permission non accordée !?

n°1101569
redvivi
Posté le 03-01-2009 à 13:55:44  profilanswer
 

Bonjour à tous !

 

    J'essaye de développer un script (sans trop me prendre la tête) qui analyse les authentifications qui se trouvent dans radius.log. La ligne 14 me donne l'erreur ci-dessous et je ne comprends pas pourquoi !?

 
Code :
  1. line 14: /var/log/freeradius/radius.log: Permission non accordée
 


Voici le fonctionnement du script:
1) Extraction des adresses MAC en enlevant les doublons (même adresse MAC sur même port de switch)
2) Comptage des adresses MAC identifiées en double sur des ports/switches différents
3) Stockage des adresses qui ont eu 15 identifications sur des ports/switches différents

 

Merci d'avance !
RedVivi

 

EDIT:Dernière version du script, toujours le même problème

Code :
  1. #!/bin/sh
  2. cat /var/log/freeradius/radius.log | grep -v RADIUS | grep -v incorrect | cut -f2 -d[ | sort | uniq | cut -f1 -d/| uniq -d > .adrmac.tmp
  3. exec 3< .adrmac.tmp
  4. i=0
  5. while read lig 0<&3
  6.  do
  7.  ADRMAC[$i]=`echo $lig`
  8.  i=`expr $i "+" 1`
  9. done
  10. for n in `seq 0 $((${#ADRMAC[@]}-1))`;
  11.  do
  12.  NBCHGMT=`echo `cat /var/log/freeradius/radius.log | grep "${ADRMAC[$n]}" | cut -f2 -d]| uniq | wc -l``
  13.  echo $NBCHGMT
  14.  if [ $NBCHGMT >= 15 ]
  15.   then
  16.   echo ${ADRMAC[$n]} > macfraud.txt
  17.  fi
  18.  done
  19. rm .adrmac.tmp
  20. exit



Message édité par redvivi le 03-01-2009 à 16:37:17
mood
Publicité
Posté le 03-01-2009 à 13:55:44  profilanswer
 

n°1101574
Mjules
Modérateur
Parle dans le vide
Posté le 03-01-2009 à 15:07:33  profilanswer
 

tu as les droits de lecture sur /var/log/freeradius/radius.log ?

 

et sinon, cat xxx|grep yyy se remplace par grep yyy xxx


Message édité par Mjules le 03-01-2009 à 15:08:08

---------------
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°1101576
Fork Bomb
Obsédé textuel
Posté le 03-01-2009 à 15:11:00  profilanswer
 

Vérifies d'abord qu'il existe avant de vouloir l'utiliser.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1101591
o'gure
Modérateur
Multi grognon de B_L
Posté le 03-01-2009 à 15:57:23  profilanswer
 

Fork Bomb a écrit :

Vérifies d'abord qu'il existe avant de vouloir l'utiliser.


C'est d'abord un problème de droits d'accès (soit sur l'un des répertoires, soit sur le fichier final (voir répertoire + fichier)

[ augure@bacchus ~ ]
> cat toto
cat: toto: Aucun fichier ou répertoire de ce type
zsh: exit 1     cat toto
[ augure@bacchus ~ ]
> touch toto && chmod 000 toto
[ augure@bacchus ~ ]
> cat toto
cat: toto: Permission non accordée
zsh: exit 1     cat toto
[ augure@bacchus ~ ]
> mkdir titi
[ augure@bacchus ~ ]
> touch titi/toto
[ augure@bacchus ~ ]
> chmod 000 titi  
[ augure@bacchus ~ ]
> cat titi/toto
cat: titi/toto: Permission non accordée
zsh: exit 1     cat titi/toto
[ augure@bacchus ~ ]
> cat titi/tota
cat: titi/tota: Permission non accordée
zsh: exit 1     cat titi/tota
 


 


---------------
Relax. Take a deep breath !
n°1101596
redvivi
Posté le 03-01-2009 à 16:27:49  profilanswer
 

J'exécute le script en tant que root, et ce qui est bizarre c'est que la première commande passe (premier cat) mais le deuxième (ligne 14) non, pourtant quasiment la même commande. Le plus curieux, c'est que la fichier final (macfraud.txt) contient une adresse MAC, une seule alors qu'il devrait y en avoir plusieurs.


Message édité par redvivi le 03-01-2009 à 16:30:56
n°1101599
fighting_f​alcon
Posté le 03-01-2009 à 16:41:41  profilanswer
 

NBCHGMT=`echo `cat /var/log/freeradius/radius.log | grep "${ADRMAC[$n]}" | cut -f2 -d]| uniq | wc -l``
 
pas besoin d'un echo ...
 
NBCHGMT=`cat /var/log/freeradius/radius.log | grep "${ADRMAC[$n]}" | cut -f2 -d]| uniq | wc -l`

n°1101600
redvivi
Posté le 03-01-2009 à 16:44:47  profilanswer
 

Non car si je fais cette modif j'ai une série d'erreur comme celà:
 

Code :
  1. ./scriptantifraude.sh: line 16: [: 324: unary operator expected
  2. 3
  3. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  4. 3
  5. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  6. 3
  7. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  8. 3
  9. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  10. 3
  11. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  12. 3
  13. ./scriptantifraude.sh: line 16: [: 3: unary operator expected
  14. 176
  15. ./scriptantifraude.sh: line 16: [: 176: unary operator expected
  16. 148
  17. ./scriptantifraude.sh: line 16: [: 148: unary operator expected
  18. 2
  19. ./scriptantifraude.sh: line 16: [: 2: unary operator expected
  20. 5
  21. ./scriptantifraude.sh: line 16: [: 5: unary operator expected
  22. 4

n°1101606
o'gure
Modérateur
Multi grognon de B_L
Posté le 03-01-2009 à 16:56:45  profilanswer
 

Je rejoins fighting_falcon pour les ` . Si tu veux réellement les imbriquer pense à les échapper par un \ (echapper ceux qui sont imbriqué). Je pense que ton erreur de droit vient de là. Ton script essaye au final d'exécuter le fichier (d'où le problème de droit car il n'est pas en exécution).

 

Pour l'erreur suivante, cf. le man je dirais, >= n'est pas à utiliser. Remplace le par le bon opérateur cf. le man de bash :

Citation :


 arg1 OP arg2
              OP est l’un des opérateurs suivants -eq, -ne, -lt, -le, -gt ou -ge. Ces opérateurs arithmétiques binaires  ren‐
              voient  vrai  si arg1 est respectivement égal, différent, inférieur, inférieur ou égal, supérieur, supérieur ou
              égal à arg2. arg1 et arg2 peuvent être des entiers positifs ou négatifs.


Utilise  la forme :

 
Code :
  1. if [ $truc -ge 15 ];  then
  2.     echo yess
  3. fi


Message édité par o'gure le 03-01-2009 à 17:04:00

---------------
Relax. Take a deep breath !
n°1101609
redvivi
Posté le 03-01-2009 à 17:14:41  profilanswer
 

Le problème venait de là ! Merci les gars vous êtes les meilleurs ;-)

n°1101755
twocats
Posté le 04-01-2009 à 14:03:00  profilanswer
 

fighting_falcon a écrit :

NBCHGMT=`echo `cat /var/log/freeradius/radius.log | grep "${ADRMAC[$n]}" | cut -f2 -d]| uniq | wc -l``
 
pas besoin d'un echo ...
 
NBCHGMT=`cat /var/log/freeradius/radius.log | grep "${ADRMAC[$n]}" | cut -f2 -d]| uniq | wc -l`


Pas besoin de cat non plus...

Citation :

NBCHGMT=$(grep "${ADRMAC[$n]}" < /var/log/freeradius/radius.log | cut -f2 -d]| uniq | wc -l)


Et les "`" sont obsolètes.


---------------
La réponse est 42
mood
Publicité
Posté le 04-01-2009 à 14:03:00  profilanswer
 

n°1101768
fighting_f​alcon
Posté le 04-01-2009 à 14:38:49  profilanswer
 

bah dans ce cas, pas besoin de redirection non plus ...
 

Citation :


NBCHGMT=$(grep "${ADRMAC[$n]}" /var/log/freeradius/radius.log | cut -f2 -d]| uniq | wc -l)


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

  Script bash: Permission non accordée !?

 

Sujets relatifs
[bash] Recuperer des données d'une base MYSQL[BASH] Amélioration de script (boucle et autre)
[bash] effectuer un ls sans afficher chemin des fichierscomment enchainer des sed sur un fichier script
[bash] trouver le fichier le plus recent dans un dossier avec find[bash] commande lors de l'ouverture d'un terminal
Script qui change l'extension d'un fichier[script zsh] possibilité de faire ça en une ligne ?
Redirection de script avec arguments 
Plus de sujets relatifs à : Script bash: Permission non accordée !?


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