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

Re: (deb-cat) sudo as lp



El Tue, Sep 13, 2016 at 08:31:50PM +0200, Narcis Garcia deia:
> 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

Sense veure l'script costa (més) de dir... 

> 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.
>

Aquest error és del client o ve del servidor ?  Massa fitxers oberts
no em quadra amb problemes de permissos ni tal.  És com si hi hagués
alguna crida recursiva descontrolada, o si provés infinites vegades
d'obrir algun fitxer sense tancar-lo.
 
> 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"
> 

/etc/security/limits.conf ?
man bash i buscar ulimit ? 

> 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/»

Però CUPS surt de tots els grups menys el primari entre el fork() i el exec() 
de l'script, vols dir que cola ? 
https://github.com/apple/cups/blob/master/scheduler/process.c#L736

[...]


En qualsevol cas, el que no entenc és perquè no pot el servidor compartir 
la impressora per CUPS mateix i accedir-hi el client per IPP. Llavors tindries
més informació de l'estat del treball i tot això, no ? 


Reply to: