Por que posso ver dois diretórios / tmp distintos?

1

Problema

Estou vendo dois diretórios /tmp diferentes. Em um terminal simples do GNOME ls -lia /tmp fornece o seguinte:

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

Em um script iniciado por cupsd , ls -lia /tmp >> /test.log fornece uma pasta diferente diferente com um inode diferente!

total 4
127684 drwxrwxrwt  2 root root   40 Oct  5 19:57 .
     2 drwxr-xr-x 21 root root 4096 Oct  5 19:48 ..

Em particular, recebo klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)

Antecedentes

Estou usando a autenticação Kerberos com uma impressora samba compartilhada. Isso requer a execução de smbspool como meu usuário em vez de lp, para que ele possa ler /tmp/krb5cc_1000 . Eu usei o script smb hacked em link para conseguir isso.

Aqui está o meu /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

Infelizmente, na perspectiva do script, / tmp / krb5cc_1000 não existe e a autenticação falha.

Estou executando o Arch x64, systemd, GNOME 3. Inicialmente, adivinhei que havia algo estranho acontecendo, com /tmp sendo tmpfs . No entanto, obtenho a mesma falha quando comento a montagem tmpfs no fstab.

    
por blah 06.10.2012 / 06:39

1 resposta

1

Parece um efeito colateral de chroot. Nesse caso, find / -inum 127684 informa onde esta / tmp está localizada.

    
por 06.10.2012 / 07:46