Prática recomendada para o diretório compartilhado no servidor (clientes do Windows 10 do Samba)

0

Configurando o compartilhamento de arquivos no servidor Linux (Ubuntu) com clientes Samba for Windows 10. Originalmente, configurei este ambiente há 7 anos no servidor Fedora, mas não tenho certeza se o fiz da melhor maneira prática. Minha pergunta é a seguinte: para um diretório compartilhado no servidor Linux, como permito permissão total a esse compartilhamento para vários usuários, para que possam editar / excluir subdiretórios e arquivos, independentemente de terem criado (próprios) ou não? Por exemplo, tenho vários grupos diferentes de usuários que terão acesso aos diretórios compartilhados de seus grupos com permissão total nesses diretórios. No meu antigo servidor eu fiz um trabalho que eu tenho certeza que deve ter uma maneira melhor ..... Eu criei um usuário Linux / Samba genérico com permissão total para cada compartilhamento de grupo, então através de um script de login nos clientes do Windows mapeiá-los para esse compartilhamento como se fossem o usuário genérico (ex. public_user acessando o compartilhamento público). Ele funciona, mas não há responsabilidade quanto ao rastreamento de alterações ou arquivos ou diretórios recém-criados, já que tudo pertence ao usuário genérico. Esta é a minha primeira pergunta aqui. Qualquer ajuda é muito apreciada.

    
por gcruthers 29.03.2018 / 16:09

2 respostas

0

Edite o arquivo de configuração do samba.

sudo nano /etc/samba/smb.conf

Adicione isto ao final do arquivo:

[Public Directory]
comment = Contents are read/write by all.
path = /home/user/directory-to-be-shared
read only = no
guest ok = yes
create mask = 0666
force create mode = 0666
directory mask = 0777
force directory mode = 0777

Em seguida, reinicie o samba.

sudo service smbd restart

Notas:

  1. A string entre colchetes ( Public Directory no exemplo acima) é o que os usuários verão ao acessar a pasta compartilhada de outros sistemas.
  2. Arquivos criados neste diretório por usuários em outros sistemas não pertence a ninguém: nogroup, com permissões de leitura e escrita para proprietário, grupo e outros.
  3. Os diretórios criados neste diretório por usuários em outros sistemas não pertence a ninguém: nogroup, com leitura, gravação e diretório transversal permissões para proprietário, grupo e outros.
  4. As máscaras e os modos no arquivo de configuração se aplicam a arquivos e diretórios criados por usuários em outros sistemas. Essas máscaras e modos são ignorados ao criar arquivos como um usuário no servidor. Ou, para colocar De outra forma, se você é usuário no servidor, certifique-se de que cada arquivo e o diretório que você cria dentro de /home/user/directory-to-be-shared tem permissões 666 e 777 respectivamente.
  5. Se você ativou um firewall no servidor, precisará abrir porta 445 para tcp. Por exemplo, se você usa ufw (descomplicado firewall) para configurar o firewall:

    sudo ufw allow in 445/tcp
    sudo ufw reload
    sudo ufw status verbose
    
por TooManyPets 29.03.2018 / 18:33
0

Não está claro para mim se você deseja que um compartilhamento seja acessível a todos ou apenas a um grupo de usuários clientes, portanto, esse é um modelo para o último.

Nota : Isto só funcionará como descrito se a umask padrão do seu sistema for 0002, então não funcionará para o Ubuntu Desktop 17/18 mas funcionará para o Xubuntu Desktop e Ubuntu Servidor.

Neste modelo, é necessário que todos os usuários que você deseja acessar se tornem membros do grupo "usuários". Ele irá atribuir o bit setgid no diretório compartilhado e em qualquer subdiretório futuro que force qualquer coisa new adicionada a eles para herdar o grupo de sua pasta pai.

sudo mkdir /path
sudo chown root:users /path
sudo chmod 2775 /path

O compartilhamento ficaria assim:

[UsersShare]
path = /path
valid users = @users
force group = users
read only = no
create mask = 0664
force directory mode = 2775

Quando bob - que se tornou membro do grupo "users" - entra com seu nome de usuário / senha do samba e adiciona um arquivo ao compartilhamento [UsersShare], ele terá owner = bob, group = users, mode = 664 arquivos / 2775 pastas.

Todos os outros usuários clientes que são membros do grupo de usuários que se conectam terão acesso total ao que quer que bob tenha feito.

Todos os usuários locais - aqueles no próprio servidor - que adicionam ou modificam arquivos que também são membros do grupo de usuários, terão todos a mesma capacidade e os arquivos / pastas recém-criados terão o mesmo modo 664/2775 e todos terão como grupo: "usuários". A única exceção a tudo isso é raiz - como em quando você usa sudo - já que o padrão é umask 022 ao contrário de um usuário comum, seus arquivos herdarão o grupo "users", mas terão um modo de 644.

Se você realmente deseja um compartilhamento público puro no qual todos tenham acesso, substitua "usuários válidos = @users" por "guest ok = yes". Para que isso funcione localmente no servidor, você ainda precisa adicionar esses usuários ao grupo "usuários".

    
por Morbius1 31.03.2018 / 14:18