Projet

Général

Profil

Tâche #33675

Scénario #33657: Traitement express MEN (03-05)

droits_user.py : traceback en mode mono-utilisateur

Ajouté par Joël Cuissinat il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
14/01/2022
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Description

root@scribe:~# /usr/share/eole/backend/droits_user.py admin
Traceback (most recent call last):
  File "/usr/share/eole/backend/droits_user.py", line 166, in <module>
    main()
  File "/usr/share/eole/backend/droits_user.py", line 151, in main
    place_droit(user, rep2)
UnboundLocalError: local variable 'user' referenced before assignment
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 154, in apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_share_eole_backend_droits_user.py.0.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/share/eole/backend/droits_user.py", line 166, in <module>
    main()
  File "/usr/share/eole/backend/droits_user.py", line 151, in main
    place_droit(user, rep2)
UnboundLocalError: local variable 'user' referenced before assignment
root@scribe:~# /usr/share/eole/backend/droits_user.py professeur --fix
Traceback (most recent call last):
  File "/usr/share/eole/backend/droits_user.py", line 166, in <module>
    main()
  File "/usr/share/eole/backend/droits_user.py", line 144, in main
    dico = dict(user = user, rep2 = rep2)
UnboundLocalError: local variable 'user' referenced before assignment
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 154, in apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_share_eole_backend_droits_user.py.0.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/share/eole/backend/droits_user.py", line 166, in <module>
    main()
  File "/usr/share/eole/backend/droits_user.py", line 144, in main
    dico = dict(user = user, rep2 = rep2)
UnboundLocalError: local variable 'user' referenced before assignment

Demandes liées

Lié à Distribution EOLE - Scénario #33147: Mettre à niveau le script de secours droits_user.py pour ScribeAD Terminé (Sprint) 14/09/2021 15/10/2021

Révisions associées

Révision b2dcd652 (diff)
Ajouté par Joël Cuissinat il y a plus de 2 ans

droits_user.py : fix mono-user traceback (ref: #33675)

Révision dcf5b296 (diff)
Ajouté par Joël Cuissinat il y a plus de 2 ans

droits_user.py : pylint (ref: #33675)

Révision a06fb6b8 (diff)
Ajouté par Joël Cuissinat il y a plus de 2 ans

droits_user.py : just no symlink case (#33675)

Révision 710ff6b7 (diff)
Ajouté par Joël Cuissinat il y a environ 2 ans

droits_user.py : mise à niveau (ref: #33675)

Révision 278b54c6 (diff)
Ajouté par Joël Cuissinat il y a environ 2 ans

droits_user.py gère de nouveaux cas (ref: #33675)

Révision 7ad2a1b4
Ajouté par Joël Cuissinat il y a environ 2 ans

Merge branch '2.8.0/master' into 2.8.1/master

Conflicts:
scripts/droits_user.py

ref: #33675

Historique

#1 Mis à jour par Joël Cuissinat il y a plus de 2 ans

  • Assigné à mis à Joël Cuissinat

Autre cas tordu :

root@scribe:~# rm /home/p/prof1
rm : supprimer '/home/p/prof1' du type lien symbolique ? o
root@scribe:~# /usr/share/eole/backend/droits_user.py prof1
###  Attention /home/p/prof1 n'est pas un lien symbolique. Passe ###
Des erreurs ont été rencontrés. Veuillez les résoudres ou utiliser l'option --fix pour forcer leur résolution (peut entrainer une perte de données)
root@scribe:~# /usr/share/eole/backend/droits_user.py prof1 --fix
mv: impossible d'évaluer '/home/p/prof1': Aucun fichier ou dossier de ce type
root@scribe:~# ls /home/adhomes/prof1
ls: impossible d'accéder à '/home/adhomes/prof1': Aucun fichier ou dossier de ce type

Je précise que "prof1" n'est pas listé par le script si on l'exécute pour tous les utilisateurs ;)

Le code part du principe que /home/p/prof1 est LE répertoire utilisateur :o

#2 Mis à jour par Joël Cuissinat il y a plus de 2 ans

  • Lié à Scénario #33147: Mettre à niveau le script de secours droits_user.py pour ScribeAD ajouté

#3 Mis à jour par Joël Cuissinat il y a plus de 2 ans

Autre problème découvert, l'utilisation de l'option -P (--physical) sur le lien symbolique /home/<l>/login n'applique pas de droits sur /home/adhomes/<login> !

+ ajouter "return" sur "utilisateur non trouvé"
+ enlever "return" sur "répertoire non trouvé"

Attention, le script ne doit pas casser les droits sur profil.V6 !!!

#4 Mis à jour par Joël Cuissinat il y a environ 2 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#5 Mis à jour par Joël Cuissinat il y a environ 2 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF