por que a permissão setgid em uma causa SO falha?

1

Quando carrego uma versão específica do Python em um servidor, recebo o seguinte erro:

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

O ldd mostra que o arquivo está disponível e a única coisa surpreendente é as permissões, que são as seguintes:

-rwxrwsr-x

Do S concluo que, provavelmente por acidente, o setgid foi chamado no arquivo. Mas também sou membro do grupo que possui o arquivo. Não devo ser capaz de executar o Python neste caso, mesmo que não membros do grupo não possam?

O Python está sendo carregado por um módulo de ambiente que faz o seguinte:

prepend-path     PATH /path/to/python/2.7.9/bin 
prepend-path     MANPATH /path/to/python/2.7.9/share/man 
prepend-path     PYTHONPATH /path/to/python/2.7.9/lib/python2.7/site-packages:/path/to/spss/22/Python/lib/python2.7/site-packages 
prepend-path     LD_LIBRARY_PATH /path/to/python/2.7.9/lib 
    
por Ben Fulton 16.12.2015 / 16:33

1 resposta

1

Depois de remover a permissão S, consegui carregar a biblioteca corretamente. A diferença que finalmente notamos foi que os usuários que conseguiam carregar a biblioteca tinham seu conjunto gid com o mesmo valor que o gid da biblioteca. Não era suficiente apenas ser um membro do grupo para o qual a biblioteca recebia permissões - os usuários precisavam defini-lo como grupo principal.

    
por 17.12.2015 / 14:33