1

проблема

Я вижу две разные директории /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.

1 ответ1

1

Это выглядит как побочный эффект chroot. В этом случае find / -inum 127684 сообщает вам, где находится этот / tmp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .