Como permitir que o Windows PC modifique arquivos do Linux sobre o servidor Samba sem permitir acesso 777 completo?

1

Recentemente, configurei o Samba em um servidor Linux e descobri a unidade compartilhada em uma máquina Windows com facilidade, mas não consegui copiar arquivos para essa unidade, pois ela pedia permissões extras.

Eu consegui escrever em subpastas com 777 permissões, mas a unidade principal tinha 775.

Como é aconselhável que as permissões do 777 sejam altamente não-seguras, como posso modificar os grupos para incluir usuários navegando do Windows que não têm permissões no nível do usuário no servidor Linux?

Esta é uma rede doméstica, e o acesso ao servidor Samba é limitado por meio de uma configuração global que impede o acesso de fora da rede (adicionando as seguintes linhas ao /etc/samba/smb.conf)

[global]
hosts allow = 192.168.0.
hosts deny = ALL
Portanto, não estou preocupado com a segurança dentro da rede - se um usuário estiver na sub-rede 192.168.0.x, fico feliz em assumir que ele é legítimo e não deseja adicionar outras etapas de autenticação no momento.

    
por Tombas 12.05.2017 / 23:56

2 respostas

0

Normalmente, não se deseja conceder a todos com acesso de gravação de acesso à rede a um diretório. Muitas vezes há melhores soluções para compartilhar arquivos entre um grupo de usuários, e. g. dando a todos o seu próprio compartilhamento de rede com acesso de leitura (parcial) para todos os outros. É aí que vem a recomendação de não usar permissões de acesso graváveis do mundo.

No entanto, no seu caso, parece ser exatamente o que você quer. Então, vá em frente e use chmod -R 0777 /path/to/share juntamente com as entradas de configuração apropriadas do Samba, como writable = yes .

    
por David Foerster 13.05.2017 / 14:39
0

Eu vejo o que você quer. Todos os usuários / computadores em sua LAN devem ser 'convidados' e ter acesso total de 'leitura / gravação' ao compartilhamento de arquivos.

Etapas:

Verifique a configuração do Samba. A partilha inclui estes:

[Share]
available = yes
browsable = yes
public = yes
writeable = yes

Verifique as permissões POSIX. Exemplo ls -lh:

drwxrws---+ 1 nobody nogroup  252 May 12 14:55 Music

Você vai querer ter o bit pegajoso lá caso contrário, o compartilhamento de arquivos não se comportará como você esperaria no Windows. chmod 2770 [dir] ... Para aplicar com permissão para todos os diretórios use find. Exemplo

find . -type d -exec chmod 2770 {} \;
find . -type f -exec chmod 2760 {} \;

Você também desejará configurar o grupo para ser nogroup, que é o grupo convidado padrão para o samba.

Finalmente acls. Use getfacl e setfacl . Você vai querer configurar os padrões para o usuário nobody e o grupo nogroup. Depois disso, qualquer coisa criada pelo samba herdará boas permissões. Aqui está uma ACL de diretório de exemplo:

# file: Downloads
# owner: nobody
# group: nogroup
# flags: -s-
user::rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---

Para obter alguns padrões, use find:

find . -type d -exec setfacl -d -m u::rwx {} \;
find . -type d -exec setfacl -d -m g::rwx {} \;

Para corrigir arquivos existentes:

find . -type f -exec chgrp nogroup {} \;
find . -type f -exec chmod 660 {} \;
find . -type f -exec setfacl -m g::rw {} \;

QUERO MAIS!

Digamos que você não quer mudar o grupo POSIX. Então você pode usar a ACL para adicionar explicitamente o grupo. Exemplo:

setfacl -m g:linuxgroup:rw [filename]

Com essas configurações eu compartilho entre o Ubuntu, o Windows, o RPi, o Android e outros aplicativos Linux.

    
por Bazz 13.05.2017 / 16:20