setgid binary não tem permissão, mount está certo, estou faltando alguma coisa, mas o que, por favor?

3

Me desculpe, eu sei que isso tem que ser algo simples, mas eu verifiquei as páginas de trabalho, o monte, as permissões ...

(edite: combine o histórico em uma sequência conforme solicitado. Começando a parecer um problema não-simples. Nada de novo desde a última edição, apenas empacotou tudo bonito)

~/sandbox/6$ editfunc doit
~/sandbox/6$ -x doit
+ doit
+ find
.
+ cp /bin/ln /bin/id .
+ sudo chown jthill:jthill id ln
+ chmod g+s id ln
+ mkdir protected
+ chmod 770 protected
+ touch data
+ set +xv
~/sandbox/6$ ls -A
data  id  ln  protected
~/sandbox/6$ ls -Al
total 92
-rw-r--r-- 1 jthill jthill     0 Nov  8 02:39 data
-rwxr-sr-x 1 jthill jthill 31432 Nov  8 02:39 id
-rwxr-sr-x 1 jthill jthill 56112 Nov  8 02:39 ln
drwxrwx--- 2 jthill jthill  4096 Nov  8 02:39 protected
~/sandbox/6$ sudo su nobody
[nobody@home 6]$ ./id
uid=619(nobody) gid=617(nobody) egid=1000(jthill) groups=617(nobody)
[nobody@home 6]$ ./ln ln protected
./ln: failed to create hard link ‘protected/ln’ => ‘ln’: Operation not permitted
[nobody@home 6]$ ./ln data protected
./ln: failed to create hard link ‘protected/data’ => ‘data’: Operation not permitted
[nobody@home 6]$ ln ln protected
ln: failed to create hard link ‘protected/ln’ => ‘ln’: Permission denied
[nobody@home 6]$ ln data protected
ln: failed to create hard link ‘protected/data’ => ‘data’: Permission denied
[nobody@home 6]$ exit
~/sandbox/6$ 
    
por jthill 08.11.2013 / 05:22

1 resposta

2

Encontrou:

  • Se sysctl fs/protected_hardlinks estiver definido,
  • hard links de alguém que não é o proprietário (e sem CAP_FOWNER), devem ser:
    • não especial
    • não setuid
    • não executável setgid
    • legível e gravável

de acordo com fs/namei.c . Um cara no SO queria ter uma pasta dropbox que as pessoas pudessem adicionar, mas não ver (acho que é um recurso do Windows), eu percebi que esse era um dos poucos lugares em que um setgid seria bom e o mais frio me levaria aqui. p>

Obrigado a todos e especialmente Anthon que sugeriram verificar a fonte.

(editar: sysctl spelling)

    
por 08.11.2013 / 12:47