16.04 ownership nobody: nogroup

4

Parece que, após a atualização para o 16.04, tenho constantemente problemas com a propriedade e a permissão da pasta de compartilhamento.

Eu criei um nome de pasta test , mudei sua permissão para 777 e compartilhei essa pasta na rede local.

Em outra máquina (Windows), posso visualizar e editar arquivos nessa pasta test , mas sempre que eu edito algo em um arquivo nessa pasta, a propriedade e a permissão mudam para nobody: nogroup - e, portanto, não posso editar novamente na minha máquina 16.04.

test$ ll
total 328
drwxrwxrwx 2 pac   pac      4096 Jan 20 09:59 ./
drwxrwxrwx 4 pac   pac      4096 Jan 20 09:32 ../
**-rwxr--r-- 1 nobody nogroup** 326442 Jan 20 09:59 t1.log*

Por que isso muda automaticamente para -rwxr--r-- 1 nobody nogroup ? Como posso evitar essa mudança para que a permissão seja sempre rwxrwxrwx e a propriedade seja sempre pac:pac (removendo esse nobody:nogroup de aborrecimento)?

Eu quero evitar ter que fazer isso repetidamente na pasta test :

$ sudo chown pac:pac . -R
$ chmod 777 . -R
    
por artm 20.01.2017 / 00:09

2 respostas

2

Este é um problema relacionado às permissões de arquivos e diretórios quando se trabalha com o samba e não com o 16.04. Eu suponho que você está configurando um compartilhamento público e não usando logins, e mapeando o usuário convidado do samba para o usuário nobody .

Como todos os usuários do samba estarão logados como nobody , qualquer arquivo salvo herdará o usuário nobody e o grupo nogroup .

Seu arquivo t1.log criado pelo usuário guest do samba tem as permissões -rwxr--r-- e o proprietário desse arquivo é nobody . Seu usuário pac não pode modificá-lo, pois só tem permissão de leitura para Outros .

Uma maneira de resolver isso é remapear o usuário convidado do samba para o seu usuário pac .

Certifique-se de que isso esteja definido em /etc/samba/smb.conf :

guest account = pac

... altere a propriedade de todos os arquivos da pasta de compartilhamento para o usuário pac

sudo chown -R pac:pac /path/to/share

_

Obviamente, isso não funcionará em um ambiente multiusuário, onde outro usuário diferente de pac também precisa de acesso rw.

Alguns podem propor o uso de create mask = 0777 e directory mask = 0777 em smb.conf para arquivos e diretórios a serem criados com -rwxrwxrwx, mas na minha experiência eu acho que não é confiável, já que com o tempo alguns arquivos ainda acabou com algumas outras permissões de qualquer maneira.

A única solução confiável que encontrei é remontar o diretório de compartilhamento com bindfs para forçar sempre as permissões 0777.

Primeiro, instale os bindfs:

sudo apt install bindfs

Em seguida, crie um arquivo de serviço systemd:

sudo nano /lib/systemd/system/mount-bindfs.service

Cole isso no arquivo:

# mount-bindfs systemd service file

[Unit]
Description=Remount directories with different permission
After=mountall.service

[Service]
Type=forking
ExecStart=/bin/sh -c "/usr/bin/bindfs -o perms=0777 /path/to/share /path/to/share"

[Install]
WantedBy=multi-user.target

Atualizar o sistema, ativar o serviço na inicialização e iniciá-lo:

sudo systemctl daemon-reload
sudo systemctl enable mount-bindfs.service
sudo systemctl start mount-bindfs.service

Faça um ll na sua pasta compartilhada e tudo deverá aparecer como rwxrwxrwx agora.

    
por loongyh 20.01.2017 / 02:11
1

Em caso de problemas de permissão com compartilhamentos do Samba, é bom perceber que o Samba tem sua própria estrutura para usuários, bem como permissões de arquivos e dir. Se alguém criar um compartilhamento do Samba e quiser restringir o acesso, dando a apenas alguns usuários acesso a esse compartilhamento do Samba, normalmente será criado um usuário do Samba. Na linha de comando, isso pode ser feito com o comando "smbpasswd". Veja para mais informações:

man smbpasswd

Para adicionar permissões de usuário e arquivo / dir à configuração do Samba, pode-se editar o arquivo smb.conf localizado em / etc / samba /

Veja também aqui:

link

e para definir permissões, veja aqui:

link

Depois de editar o smb.conf, os daemons do servidor Samba precisam ser reiniciados ou a leitura do arquivo de configuração precisa ser feita (recarregar).

Em algumas versões antigas do Ubuntu, pode-se reiniciar tanto o smbd quanto o nmbd, mas em versões mais recentes do Ubuntu, o script "init" do samba pode ser reiniciado.

sudo service samba restart

Em alguns ambientes de escritório, pode fazer sentido apenas fazer uma recarga de configuração, em vez de um reinício do Samba, para evitar possíveis interrupções para os usuários.

/etc/init.d/nmbd force-reload && /etc/init.d/smbd force-reload

Isto está em algumas versões antigas do Ubuntu. Eu assumo em versões mais recentes do Ubuntu:

sudo service samba force-reload 

pode funcionar (ainda não foi testado).

    
por albert j 20.01.2017 / 01:00