Project

General

Profile

Tâche #33675

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

droits_user.py : traceback en mode mono-utilisateur

Added by Joël Cuissinat over 2 years ago. Updated about 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
01/14/2022
Due date:
% Done:

100%

Remaining (hours):
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

Related issues

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

Associated revisions

Revision b2dcd652 (diff)
Added by Joël Cuissinat over 2 years ago

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

Revision dcf5b296 (diff)
Added by Joël Cuissinat over 2 years ago

droits_user.py : pylint (ref: #33675)

Revision a06fb6b8 (diff)
Added by Joël Cuissinat over 2 years ago

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

Revision 710ff6b7 (diff)
Added by Joël Cuissinat about 2 years ago

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

Revision 278b54c6 (diff)
Added by Joël Cuissinat about 2 years ago

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

Revision 7ad2a1b4
Added by Joël Cuissinat about 2 years ago

Merge branch '2.8.0/master' into 2.8.1/master

Conflicts:
scripts/droits_user.py

ref: #33675

History

#1 Updated by Joël Cuissinat over 2 years ago

  • Assigned To set to 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 Updated by Joël Cuissinat over 2 years ago

  • Related to Scénario #33147: Mettre à niveau le script de secours droits_user.py pour ScribeAD added

#3 Updated by Joël Cuissinat over 2 years ago

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 Updated by Joël Cuissinat about 2 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#5 Updated by Joël Cuissinat about 2 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

Also available in: Atom PDF