tonyhts
(usa Arch Linux)
Enviado em 16/07/2015 - 23:46h
Slispd escreveu:
O printserver é debian rodando cups...
As estações são Opensuse 13.1 32b com KDE.
Já tentei colocar no sudo tb... mas sabe Deus pq mesmo colocando no sudo pede senha de root. ;(
opa! mals a demora. Essa semana ta pegadáaaaaça..rs
Vamos lá...
Usa aquele método que eu tinha postado, só que usando o seu script. Assim:
1- Para ficar mais organizado e menos inseguro, crie um user para executar o script:
adduser scriptero
2 - Crie/hospede seu script numa pasta onde o user que vc criou tenha acesso, se for o caso, crie:
mkdir /scripts
cp /local/onde_esta/seu_script.sh /scripts/
3- O pulo do gato: Dê a permissão com o bit SUID ligado: 4755 ( caso não saiba o que o SUID faz: quem tiver acesso ao arquivo com esse bit ligado, poderá executá-lo como fosse o dono. Que no seu caso é o root).
chmod 755 /scripts
chmod 4755 /scripts/seu_script.sh
3- cria um atalho no desktop dos users para execução dos scripts com o seguinte comando:
ssh scriptero@ip_do_server "bash /scripts/seuscript.sh"
Pronto!
OBS:: Seu script não faz muito sentido pra mim, tem um loop que reinicia o cups inteiro (e não apenas a impressora parada) a cada impressora que ele achar. É isso mesmo que vc quer?
Usando seu script, modifiquei levemente (para o modo que eu usaria) e comentei todos os comandos pra vc entender o que está rolando.
#!/bin/sh
# aqui ele lista todas as impressoras configuradas e o -t retorna
# todos os status possiveis. O grep filtra as linhas que contenham a
# palavra DISABLED, o awk recorta a coluna com o nome das impressoras
# e por fim, armazena na variável DISABLED......OK! muito bom.
DISABLED=`lpstat -t | grep disabled | awk '{ print $2; }'`
for PRINTER in $DISABLED # para cada impressora armazenada na variável DISABLED,
do #execute
logger "Printer $PRINTER is stopped" # gera o log com o texto especificado.
rm -rf /var/spool/cups/* # exclui todos as filas, exceto as em uso (impressoras ainda ativas)
sleep 2 # aguarda 2 segundos
# inicia a impressora parada
/usr/sbin/cupsenable -h 127.0.0.1:631 $PRINTER && logger "Printer $PRINTER has been enabled."
done
abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.
--- Mestre dos Mestres - Alan Turing ---