Scripts de interface são executados sob o controle de cups
e não são executados como o usuário que está imprimindo. Isso significa que não está conectado ao seu terminal ou X-display; não é possível abrir janelas ou escrever no seu diretório pessoal.
Se você olhar para /etc/cups/cups-files.conf
(talvez um local diferente no seu sistema operacional), há linhas como
# Default user and group for filters/backends/helper programs; this cannot be
# any user or group that resolves to ID 0 for security reasons...
User lp
Group lp
Isso significa que, no meu caso, os scripts são executados como usuário lp:lp
.
Dependendo de como o cups
é executado (por exemplo, systemd
), ele também pode ser executado com alguma outra camada de isolamento; por exemplo. uma "sobreposição" de /tmp
, o que significa que os arquivos gravados aqui não são visíveis do lado de fora.
No entanto, /var/spool/cups/tmp
pode estar disponível para escrita e visível.
por exemplo
#!/bin/bash
echo "Interface script running $$" >> /var/spool/cups/tmp/my_log
/usr/bin/mount >> /var/spool/cups/tmp/my_log
/bin/id >> /var/spool/cups/tmp/my_log
df >> /var/spool/cups/tmp/my_log
cat "$6"
Agora, em /var/spool/cups/tmp/my_log
, podemos ver alguns resultados:
Interface script running 22462
/dev/vda3 on / type ext4 (rw,relatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=499340k,nr_inodes=124835,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
....
uid=4(lp) gid=7(lp) groups=7(lp)
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda3 3041808 1380564 1487012 49% /
devtmpfs 499340 0 499340 0% /dev
tmpfs 508452 0 508452 0% /dev/shm
tmpfs 508452 0 508452 0% /sys/fs/cgroup
tmpfs 508452 13016 495436 3% /run
tmpfs 101692 0 101692 0% /run/user/500
/dev/vda1 487634 119954 337984 27% /boot
Isso foi testado no CentOS 7; ele deve funcionar no Debian também.