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

Re: (deb-cat) sudo as lp



El 14/09/16 a les 11:22, orestes ha escrit:
> A 2016-09-13 20:31, Narcis Garcia escrigué:
> 
>> 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»
> 
> No tinc gens d'experiència en les qüestions que comentes, però et puc
> explicar quelcom que potser hi està relacionat i et dóna alguna pista.
> Fa uns anys vaig intentar fer un script que s'executés com a root (amb
> setuid) i després de no sortir-me'n vaig llegir que era una política (de
> debian?) no permetre l'execució d'scripts amb setuid. La solució que
> donaven era crear un petit programa *executable* (en C, per exemple),
> fer-lo setuid i fer que l'script el cridés.
> 
> A veure si serà quelcom semblant.
> 
> Orestes.
> 
>  
> 
>  

Prefereixo utilitzar el «sudo», i tenir-ho tot escrit en ShellScript.
No crec que sigui necessari executar res com a «root», apart de què al
fitxer /etc/cups/cups-files.conf hi ha un comentari que parla d'una
restricció sobre aquesta mala pràctica.

Gràcies.


Reply to: