проблема
Я вижу две разные директории /tmp
. В обычном терминале GNOME ls -lia /tmp
дает следующее:
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...
В скрипте, запущенном cupsd
, ls -lia /tmp >> /test.log
дает другую папку с другим индексом!
total 4
127684 drwxrwxrwt 2 root root 40 Oct 5 19:57 .
2 drwxr-xr-x 21 root root 4096 Oct 5 19:48 ..
В частности, я получаю klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)
Фон
Я использую аутентификацию Kerberos с общим принтером samba. Это требует запуска smbspool от имени моего пользователя вместо lp, чтобы он мог читать /tmp/krb5cc_1000
. Я использовал взломанный сценарий smb в http://www.linuxquestions.org/questions/debian-26/cups-printing-from-ad-integrated-workstation-to-ad-print-shares-using-kerberos-auth-722301/ чтобы достичь этого.
Вот мой /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
К сожалению, с точки зрения сценария, /tmp /krb5cc_1000 не существует, и аутентификация не проходит.
Я использую Arch x64, systemd, GNOME 3. Сначала я догадывался, что происходит что-то странное, когда /tmp
является tmpfs
. Однако, я получаю ту же ошибку, когда комментирую монтирование tmpfs в fstab.