1

Problem

I am seeing two different /tmp directories. In a plain GNOME terminal ls -lia /tmp gives the following:

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...

In a script started by cupsd, ls -lia /tmp >> /test.log gives a different a different folder with a different 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 ..

In particular, I get klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)

Background

I'm using Kerberos authentication with a shared samba printer. This requires running smbspool as my user instead of lp, so it can read /tmp/krb5cc_1000. I used the hacked smb script in http://www.linuxquestions.org/questions/debian-26/cups-printing-from-ad-integrated-workstation-to-ad-print-shares-using-kerberos-auth-722301/ to achieve this.

Here's my /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

Unfortunately, from the script's perspective, /tmp/krb5cc_1000 does not exist, and the authentication fails.

I'm running Arch x64, systemd, GNOME 3. I initially guessed there was something strange going on with /tmp being a tmpfs. However, I get the same failure when I comment out the tmpfs mount in fstab.

1 Answer 1

1

It looks like a chroot side effect. In which case find / -inum 127684 tells you where this /tmp is located.

3
  • What chroot? Does cupsd run a chroot by default for some reason?
    – terdon
    Oct 6, 2012 at 10:50
  • I might, that's a wild guess. Did you run the command I suggested to figure it out ?
    – jlliagre
    Oct 6, 2012 at 16:30
  • 1
    Thanks for the tip. The find command pointed to /tmp/systemd-private-XXXXXX. It turns out that systemd gave cupsd its own private tmp dir. I fixed my issue by disabling PrivateTmp in /etc/systemd/system/printer.target.wants/cups.service and restarting cups.
    – blah
    Oct 6, 2012 at 18:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .