> Narcis Garcia: > >> A cada instrucció la faig anunciar amb quelcom així: >> echo "\$ mkdir -p /mnt/remot/cua" >> "/tmp/Epson1.log" >> mkdir -p /mnt/remot/cua >> "/tmp/Epson1.log" 2>&1 > > Si poses «set -x» al principi t'estalviaràs tots els echo. > També pots executar un script fent «sh -x foo.sh» si no > vols posar-ho dins. > >> Tot això per detectar el problema. >> En fer la crida a sí mateix, a la bitàcola (.log) es veu: >> $ sudo -n -u UnUsuari /etc/cups/interfaces/Epson1 FesRemot >> Result=1 > > Una altra opció útil és «set -e» perquè l'script avorti de > seguida que falli alguna ordre. > >> Això significa que no s'atura amb el sudo, d'aquest no n'obtinc >> cap sortida textual, i el codi de sortida és 1. No aconsegueixo >> esbrinar res més. > > A mi també em costa entendre tot plegat sense veure el codi, però > jo provaria amb shellcheck o similar si et dóna alguna pista. > > D'altra banda, també pots provar a executar pas a pas el codi. > Et converteixes en l'usuari lp: > > sudo -H -u lp -s /bin/bash > > Proves d'executar Epson1: > > /etc/cups/interfaces/Epson1 FesRemot >
Provat així (abans no havia usat l'opció -H) funciona perfectament (res del too many files). No sé doncs quina és la diferència entre la meva crida manual i que ho cridi CUPS, quan falla. > Proves d'executar Epson1 com l'usuari UnUsuari: > > sudo -n -u UnUsuari /etc/cups/interfaces/Epson1 FesRemot > sudo: es requereix una contrasenya Està clar que el sudoers no m'està funcionant, ja que no el domino gaire. Fins i tot he provat amb una línia com (amb el mateix resultat): lp ALL = (UnUsuari) NOPASSWD: /etc/cups/interfaces/Epson1 > Etc. Així és com ho faig jo per debuggar problemes difícils, > convertint-los en problemes més petits i provant totes les > passes. > > Salut, > Alex >