问题

问题

问题

我看到两个不同的/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...

在由 启动的脚本中cupsdls -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。我最初猜测发生了一些奇怪的事情/tmptmpfs但是,当我在 fstab 中注释掉 tmpfs 挂载时,我遇到了同样的失败。

答案1

它看起来像是 chroot 的副作用。在这种情况下 find / -inum 127684会告诉您 /tmp 位于何处。

相关内容