Parece um efeito colateral de chroot. Nesse caso,
find / -inum 127684
informa onde esta / tmp está localizada.
Estou vendo dois diretórios /tmp
diferentes. Em um terminal simples do GNOME ls -lia /tmp
fornece o seguinte:
total 136
5797 drwxrwxrwt 36 root root 780 Oct 5 20:57 .
2 drwxr-xr-x 21 root root 4096 Oct 5 19:48 ..
...snip...
32824 -rw------- 1 me users 1872 Oct 5 18:04 krb5cc_1000
...snip...
Em um script iniciado por cupsd
, ls -lia /tmp >> /test.log
fornece uma pasta diferente diferente com um inode diferente!
total 4
127684 drwxrwxrwt 2 root root 40 Oct 5 19:57 .
2 drwxr-xr-x 21 root root 4096 Oct 5 19:48 ..
Em particular, recebo klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)
Estou usando a autenticação Kerberos com uma impressora samba compartilhada. Isso requer a execução de smbspool como meu usuário em vez de lp, para que ele possa ler /tmp/krb5cc_1000
. Eu usei o script smb hacked em link para conseguir isso.
Aqui está o meu /usr/lib/cups/backend/ksmb
:
#!/bin/bash
echo 'network smb "Unknown" "Windows Printer via SAMBA"'
ls -lia /tmp &>> /test.log
su $2 -c "klist &>> /test.log"
su -c "/usr/bin/smbspool $1 $2 \"$3\" $4 \"$5\"" $2
Infelizmente, na perspectiva do script, / tmp / krb5cc_1000 não existe e a autenticação falha.
Estou executando o Arch x64, systemd, GNOME 3. Inicialmente, adivinhei que havia algo estranho acontecendo, com /tmp
sendo tmpfs
. No entanto, obtenho a mesma falha quando comento a montagem tmpfs no fstab.
Tags samba kerberos arch-linux cups