SetUID não funciona corretamente com o Samba no Ubuntu 16.04

1

Eu tenho o Ubuntu 16.04 LTS rodando com a mais nova versão do Samba (2: 4.3.11 + dfsg-0ubuntu0.16.04.11).

Eu configurei um compartilhamento e todas as permissões de unix apropriadas nos próprios diretórios. Testado e tudo funciona bem.

Minha hierarquia é assim:

[

Existe um grupo para cada subpasta, por exemplo: geschaeftsleitung, it, verwaltung e um usuário por grupo.

Compartilhe a configuração em smb.conf :

create mask = 6770
directory mask = 6770
force create mask = 6770
force directory mask = 6770

Assim, o proprietário e o grupo têm acesso total a essas subpastas.

Eu defino o setuid

chmod u+s

e guid

chmod g+s

para todas essas subpastas.

Portanto, se eu estiver correto, todos os diretórios e arquivos criados dentro dessas subpastas deverão definir automaticamente o proprietário para raiz e o grupo para o grupo superior dessa subpasta específica.

Ele faz isso para o grupo, mas não para o proprietário. exemplo

O usuário conectado ao compartilhamento e criando um diretório ou arquivo torna-se o proprietário, apesar das minhas configurações anteriores.

Existe algum comportamento estranho com permissões unix em combinação com o samba?

Ou o chmod u+s simplesmente não funciona na minha distribuição do Ubuntu?

    
por redwalk 08.11.2017 / 15:59

1 resposta

2

De acordo com esta página Wiki, o setuid é ignorado nos diretórios.

De link

  

setuid e setgid nos diretórios [edit]

     

Os sinalizadores setuid e setgid,   quando definido em um diretório, tem um significado totalmente diferente.

     

Definindo a permissão setgid em um diretório ("chmod g + s")

     
  1. faz com que novos arquivos e subdiretórios criados nele herdem sua   ID do grupo, em vez do ID do grupo principal do usuário que criou o   arquivo (o ID do proprietário nunca é afetado, apenas o ID do grupo).
  2.   
  3. Recém   subdiretórios criados herdam o bit setgid. Assim, isso permite uma   espaço de trabalho compartilhado para um grupo sem a inconveniência de exigir   membros do grupo para alterar explicitamente seu grupo atual antes de criar   novos arquivos ou diretórios.
  4.   
  5. afeta somente o ID do grupo de novos arquivos e   subdiretórios criados após o bit setgid ser definido e não é aplicado   para entidades existentes.
  6.   
  7. não afeta o ID do grupo dos arquivos que são   criado em outro lugar e movido para o diretório em questão. O arquivo   continuará a transportar o ID do grupo que foi efetuado quando e onde   foi criado. Definir o bit setgid nos subdiretórios existentes deve   ser feito manualmente, com um comando como o seguinte:

    root@foo# find /path/to/directory -type d -exec chmod g+s '{}' \; 
    
  8.   

  conjunto de permissões setuid em um diretório é ignorado no UNIX e Linux   sistemas. [4]

     

O FreeBSD pode ser configurado para interpretá-lo analogamente ao setgid,   ou seja, forçar todos os arquivos e subdiretórios a serem de propriedade da parte superior   proprietário do diretório. [5] Em sistemas derivados do BSD, diretórios se comportam como   se o seu bit setgid foi sempre definido, independentemente do seu valor real. Como   é declarado em aberto (2), "Quando um novo arquivo é criado é dado o   grupo do diretório que o contém. "

    
por Terrance 08.11.2017 / 16:51