Questão Preservar permissões em arquivos compartilhados do samba ao sobrescrever


Eu tenho um diretório compartilhado no meu Ubuntu VM. Este é o meu smb.conf:

...
[share]
comment = Ubuntu File Server Share
path = /home/foo/share
browsable = yes
guest ok = yes
read only = no
create mask = 0644

Quase tudo funciona bem, ou seja, quando um novo arquivo é criado, ele é mascarado 0644. Mas também sempre que abro (no Windows) e salvo um arquivo existente, as permissões desse arquivo também são definidas como 0644. Isso é muito irritante ao editar scripts, que antes eram mascarados 0755 ou 777.

Existe uma maneira de fazer o Samba continuar existir permissão de máscara quando os arquivos são sobrescritos?
[editar] ... enquanto cria Novo arquivos com permissões 0644


4


origem


Eu tenho o mesmo problema e é muito chato. Você encontrou uma solução? - Daniel Standage
@DanielStandage Não, eu não tenho. Como solução alternativa, tenho um script que mantém a correção dos flags executáveis: / - user123444555621


Respostas:


adicionar:

map archive = no

para o [Share]. O padrão (yes) irá definir o bit de execução em praticamente tudo que você salvar. Quando definido como não, você pode deixar sua máscara de criação definida para 755 ou qualquer outra coisa.

Acho isso essencial se você editar muitos arquivos de sistema como / etc / mail / aliases, que não serão compilados com o conjunto de bits de execução.

o) Cor


7



Obrigado, boa ideia! Infelizmente ele não funciona como planejado na minha máquina (Win7 com Ubuntu 12.04). Todos os bits são redefinidos quando eu sobrescrevo um arquivo. - user123444555621
Isso funciona muito bem no Windows 10 a partir do VMWare para o meu devbox do Ubuntu, novos arquivos obtêm as permissões create mask e os arquivos existentes não são tocados. Eu tenho que adicionar force user e force group ao [share] no smb.conf, pois meus usuários não são os mesmos. - WoodyDRN


Para impedir que o Samba redefina as permissões de um arquivo quando um arquivo é salvo através do Samba, defina o seguinte parâmetro em smb.conf:

nt acl support = no

Isso impede que o Samba tente mapear as permissões do UNIX para a lista de controle de acesso do Windows.


2





Eu acho que se você definir sua conta de convidado do samba como uma conta que normalmente gravaria arquivos com 775 permissões, você deve estar pronto.

[global]
guest account = [unix user]

Ou você pode criar um usuário de samba igual ao seu usuário no Ubuntu que tem 755 permissões (cada usuário do samba precisa corresponder a um usuário do UNIX) e depois acessar o compartilhamento de samba fazendo login como aquele usuário.

user@ubuntu$ ~ sudo smbpasswd -a [username]

1



Eu não vejo como isso resolve o meu problema. Eu estava perguntando como se certificar de que as permissões existentes não são modificadas. - user123444555621
Se o seu usuário Unix / Linux estiver escrevendo arquivos como 755, e você se conectar ao servidor Samba como usuário Unix / Linux, então, teoricamente, os arquivos criados / editados devem ser escritos com as permissões 755. Você já tentou isso? - jason
@ Pumbaa80 Eu vejo que você está tentando hackear o modo como o Linux e o Samba lidam com permissões. Você provavelmente vai querer olhar para o ACL. Com eles, você deve conseguir definir as máscaras de permissão por usuário. Assim, você loga no samba com o usuário A e lê / escreve com permissões 755, e como usuário B lê / escreve com 644. - jason
Eu não vejo como isso resolve o meu problema. Eu estava perguntando como se certificar de que as permissões existentes não são modificadas. - user123444555621


Eu uso o samba para compartilhar entre o Windows e o Kubuntu, exceto no meu sistema Linux é o host, não a VM. Para a minha configuração, eu fiz os nomes de usuário em ambos os sistemas iguais, então configurei valid users no smb.conf para o meu nome de usuário. Eu não tenho create mask configuração e permissões funcionam bem.

[shared]
comment = My Shared Partition
path = /mnt/shared/
browseable = yes
available = yes
read only = no
guest ok = no
valid users = my_user_name

0



Mas o que isso significa para arquivos recém-criados? - user123444555621
Como os nomes de perfil do usuário correspondem, todos os novos arquivos são criados com o usuário e o grupo principal do nome da conta do host, com as seguintes permissões: -rwx ------ - Tom