Assegure-se de que os arquivos / pastas recém-criados sejam de propriedade do usuário AND group da pasta pai

0

Olhando para outras questões, fiz o seguinte:

chmod g+s MEDIA 
setfacl -R -d -m g::rwx MEDIA 
setfacl -R -d -m o::rwx MEDIA 

OBSERVAÇÃO: o MEDIA é uma pasta que estou procurando configurar para que todos os arquivos / pastas adicionados tenham o mesmo usuário / grupo que a pasta pai.

Neste exemplo, o MEDIA é de propriedade do usuário Bob e do grupo SharedFiles . O objetivo é que os arquivos / pastas recém-criados mantenham essa propriedade ( Bob e SharedFiles :

MEDIA Bob SharedFiles
MEDIA/NewFolder Bob Bob   <BAD
MEDIA/NewFolder Bob SharedFiles   <GOOD

Se eu criar uma subpasta enquanto estiver conectado como usuário 'Bob', essa pasta será de propriedade de Bob: SharedFiles com as permissões [rwxrwxrwx] (conforme pretendido). Tudo de bom!

Se eu fizer login como Sue, a nova pasta se tornará parte de Sue: Sue com [rwxr-xr-x].

Se eu fizer login de uma máquina diferente por meio de uma unidade montada no KDE (usuário Sue), a pasta se tornará parte de Bob: Bob com [rwxr-xr-x].

Agora, Bob e Sue são parte do SharedFiles, onde estou indo errado. Eu quero que todos os usuários no grupo SharedFiles para ter permissões de RWX e eu quero todos os arquivos / pastas criadas por usuários no grupo SharedFiles para ter o mesmo usuário / grupo que a pasta pai, porque isso só acontece com o proprietário na própria máquina. / p>

getfacl MEDIA/

retorna

# file: MEDIA/
# owner: Bob
# group: SharedFiles
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

samba.conf contém:

[MEDIA]
 read only = no
 locking = yes
 path = /mnt/local/int001/MEDIA
 guest ok = yes
 create mask = 0775
 directory mask = 0775
    
por aSystemOverload 11.07.2017 / 23:51

1 resposta

0

O Samba tende a forçar sua própria idéia de permissões e propriedades em arquivos para que imite mais de perto o estilo NTFS (hierárquico) de permissões.

Se você estender sua definição do Samba para incluir as diretivas force user e force group , poderá garantir que todos os arquivos criados no compartilhamento (por meio do Samba) terão o proprietário e o grupo especificados.

[MEDIA]
  read only = no
  locking = yes
  path = /mnt/local/int001/MEDIA
  guest ok = yes
  create mask = 0664
  directory mask = 0775
  force user = Bob
  force group = SharedFiles

Você não pode implementar a mesma coisa diretamente com usuários locais, porque não é possível que um usuário crie um arquivo de propriedade de outra pessoa. É aqui que inotifywait pode ajudar. Configure-o na inicialização para monitorar a hierarquia de diretórios e alterar a propriedade de qualquer arquivo recém-criado:

cd /mnt/local/int001/MEDIA || exit
inotifywait --monitor --recursive --event create --format '%w%f' . |
    while IFS= read -r file
    do
        if [[ -f "$file" || -d "$file" ]] && [[ ! -h "$file" ]]
        then
            chown Bob:SharedFiles "$file"
            chmod u+rw,go=u,o-w "$file"
        fi
    done

Com esta solução inotifywait , você não precisa das ACLs do sistema de arquivos.

Pessoalmente, não estou convencido de que você realmente precise alterar a propriedade de arquivos. As ACLs que você especificou (e o force group correspondente no Samba) garantirão que todos os usuários da árvore de diretórios possam acessar os arquivos e diretórios dentro. Há uma boa razão para usuários comuns serem negados chown .

    
por 12.07.2017 / 23:56

Tags