[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

(deb-cat) sudo as lp



Hola;

He aprofitat la característica de CUPS per crear una impressora virtual
i fer-la treballar amb un programet (script) a /etc/cups/interfaces/
La meva intenció és que, quan l'usuari trii imprimir amb aquesta
impressora virtual, transferir el document a un ordinador remot (~scp) i
executar la instrucció «lp document» a l'ordinador remot per a què
s'imprimeixi localment des d'allà.

Això implica pel cas un programet com a:
/etc/cups/interfaces/Epson1
El qual s'executa quan CUPS rep l'orddre d'imprimir per la impressora
«Epson1», i es fa com a usuari «lp».
El programet fa la còpia del document, però en intentar executar ssh
(+expect per posar contrasenya) diu:

You have too many files are open.  Close some files or increase your
per-process descriptor limit.

Com que penso que el límit de 800.000 a nivell de sistema ja és gran, i
no sé com modificar-ho per «lp»*, doncs intento que el programet es
cridi a sí mateix com a un usuari normal:
sudo -n -u UnUsuari "$0"

I he hagut d'afegir una línia amb visudo**:
lp ALL = (%users) NOPASSWD: /etc/cups/interfaces/*

Penso que això significa: «L'usuari lp de tots els hosts poden actuar
com a un membre del grup users sense contrasenya per executar allò que
hi hagi a /etc/cups/interfaces/»

EL PROBLEMA ARA:
La instrucció «sudo» no s'arriba mai a executar (o no aconseguixo
interceptar cap missatge per stdout ni stderr), i dóna el codi de sortida 1.

LES MEVES PREGUNTES:
- Estic escrivint malament al fitxer «sudoers»?
- Hi ha un altre camí per fer una execució remota via SSH?

(*) Ja he comprovat que un usuari normal pot executar el mateix sense
problema.
(**) CUPS no permet que les seves crides executin res com a «root»

-- 


__________
I'm using this express-made address because personal addresses aren't
masked enough at lists.debian.org archives.


Reply to: