问题
我看到两个不同的/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
给出了具有不同 inode 的不同文件夹!
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 打印机。这需要以我的用户身份而不是 lp 运行 smbspool,以便它可以读取/tmp/krb5cc_1000
。我在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
但是,当我在 fstab 中注释掉 tmpfs 挂载时,我遇到了同样的失败。
答案1
它看起来像是 chroot 的副作用。在这种情况下
find / -inum 127684
会告诉您 /tmp 位于何处。