Dar permissão ao usuário para a pasta no diretório inicial

1

Acabei de instalar o resilio sync e tê-lo funcionando bem. Cria um usuário 'rslsync' por padrão. Eu quero ter a pasta padrão que abriga todos os meus itens de sincronização no meu diretório inicial que atualmente o rslsync não tem acesso, é claro.

Eu criei um diretório no meu diretório pessoal chamado 'sync'. No diretório de sincronização eu também criei 2 pastas 'dropbox' e 'resilio'. Eu gostaria que a pasta 'resilio' fosse o local padrão para meus arquivos que resilio rodando como o 'rslsync' usa.

Qual é a melhor maneira de permitir ao usuário 'rslsync' ler, escrever e executar o acesso à pasta 'resilio' localizada no meu diretório pessoal? Simplesmente adicionar o usuário 'rslsync' ao meu grupo de usuários dá a ele todo o acesso necessário?

    
por Liam 26.08.2017 / 18:30

2 respostas

1

Um programa pode acessar um arquivo se qualquer um dos itens a seguir for verdadeiro para esse arquivo, bem como quaisquer diretórios que precisem ser atravessados:

  • o usuário que o programa está executando como tem acesso;
  • qualquer um dos grupos que o programa está executando como tem acesso;
  • todo mundo tem acesso.

(Isso não é verdade em todos os casos, mas é uma boa aproximação aqui).

Observe quais usuários são membros de quais grupos não aparecem. Essas informações são usadas apenas quando um usuário efetua login: faz com que os programas nessa sessão de login sejam executados como esses grupos. Assim, adicionar um usuário a um grupo não pode resolver seu problema.

Você precisa conceder ao usuário rslsync acesso ao diretório resilio , bem como toda a cadeia de diretórios que leva até lá. Para acessar /home/liam/sync/resilio , o programa precisa da permissão de passagem de diretório ( x attribute, que significa "executar" para arquivos regulares) em / , /home , /home/liam , /home/liam/sync e /home/liam/sync/resilio , como bem como a permissão de leitura em /home/liam/sync/resilio .

Você pode fazer isso com uma lista de controle de acesso :

setfacl -m u:rslsync:x /home/liam /home/liam/sync
setfacl -R -m u:rslsync:rx /home/liam/sync/resilio
setfacl -R -d -m u:rslsync:rx /home/liam/sync/resilio

A primeira linha garante que o rslsync possa atravessar os diretórios principais. A segunda linha fornece acesso rslsync a toda a árvore de diretórios com raiz em /home/liam/sync/resilio . A terceira linha com o -d flag define a ACL padrão para arquivos recém-criados - sem isso, o rslsync não seria capaz de ler qualquer arquivo recém-criado.

Alguns aplicativos podem criar arquivos com uma ACL mais restritiva que a ACL padrão. Isso pode acontecer especialmente quando os arquivos são copiados de outro local. Nesse caso, o rslsync não conseguirá ler esses arquivos. Há uma abordagem diferente que garante que o rslsync sempre possa ler os arquivos, que é criar uma visualização alternativa da árvore em /home/liam/sync/resilio com permissões diferentes. Você pode fazer isso com bindfs . Note que você tem que fazer a montagem como root para permitir que outro usuário acesse um sistema de arquivos bindfs. Você pode usar a seguinte linha em /etc/fstab :

bindfs#/home/liam/sync/resilio /var/lib/rslsync/resilio fuse ro,force-user=rslsync,perms=u+rD:go=
    
por 27.08.2017 / 01:40
0

Você pode verificar as permissões, o proprietário e o grupo de cada arquivo e pasta usando o comando ls -al .

Por exemplo, você pode receber uma resposta como essa ...

-rw-r--r-- 1 user user   148 Aug 26 10:58 a-file
drwxrwxrwx 0 user group  512 Aug 26 10:59 a-folder

Anote as letras no início de cada linha. Essas letras representam as permissões. Basicamente, cada arquivo e pasta tem permissões para o proprietário, o grupo e os outros.

  • a primeira letra, - ou d , indica se é um arquivo ou uma pasta
  • as três letras a seguir, rwx , fornecem informações sobre as permissões do usuário proprietário. r para leitura, w para gravação e x para execução ou para essa pasta.
  • as próximas três letras representam permissões para o grupo. Observe que um arquivo pode pertencer a um grupo diferente do grupo do proprietário.
  • finalmente, as outras três letras representam permissões para as outras.

Se você unir 'rslsync' ao mesmo grupo do usuário, poderá conceder a ele mais permissões desejadas. Por exemplo, se o usuário pertencer a um grupo de administradores, você poderá conceder permissões para executar tarefas de administração ou obter acesso a arquivos privados.

Para conceder ao usuário 'rslsync' acesso total ( rwx ) à pasta 'resilio', você pode atribuir o arquivo ao grupo rslsync e dar ao seu grupo acesso total à pasta. Se o grupo rslsync tiver o mesmo nome:

# change the group of the resilio folder
$ chgrp -R rslsync resilio

# set full access to the group
$ chmod -R g+rwx resilio

Dessa forma, o usuário permanece como o proprietário do arquivo, o 'rslsync' tem acesso total à pasta e aos arquivos e os grupos permanecem separados um do outro.

    
por 26.08.2017 / 18:50