Como atribuo permissões de leitura / execução de um usuário específico a um conjunto de pastas no shell e SFTP?

0

Foi vasculhar a interweb para solução, mas todas as respostas se referem a grupos, proprietários de pastas ou _computadores_todos.

No meu caso, eu tenho meu próprio usuário (" kai ") e vários outros que usam a máquina.

Eu tenho uma pasta "/home/kai/projects.complete" Eu posso editar arquivos via shell e SFTP dentro dele.

No entanto, agora tenho um requisito para permitir o acesso de um usuário de segundo / terceiro usuário a todos os arquivos em /home/kai/projects.complete Os usuários não estão atualmente configurados na máquina.

A melhor solução que encontrei é definir permissões de pasta para rwxrwxrrr para permitir que eu e meu grupo pessoal acessem itens de leitura / gravação / execução e todos os outros usuários somente para leitura. No entanto, não quero que todos os outros usuários tenham acesso.

Digamos que meu usuário de exemplo seja jonny .

Eu quero criar o usuário jonny com sua própria senha e dar acesso somente de leitura a /home/kai/projects.complete Ele precisa de acesso somente leitura a todos os arquivos e diretórios em projects.complete Ele também precisa ser capaz de acessar a caixa via SSH e usar o SFTP da mesma forma que eu, de preferência com seu diretório padrão no SFTP sendo /home/kai/projects.complete (bom ter)

Eu preciso de um comando bash ou script que faça o seguinte: a) Adicionar usuário usuário com senha b) Conceda ao usuário read-execute na pasta /home/kai/projects.complete , junto com todos os seus subdiretórios e arquivos . Se possível, eu gostaria que o shell padrão para esta pasta em vez de /home/jonny/ (mas isso é apenas um bom ter) c) Permitir que o acesso sob SSH e FTP baixe todos os arquivos dentro de /home/kai/projects.complete d) Desabilitar o acesso a quaisquer outras pastas ou arquivos (só deve ser possível acessar /home/kai/projects.complete e seus subdiretórios & amp; arquivos) e) Quando os usuários fazem login no FTP, eu gostaria que o usuário fosse levado automaticamente para o diretório /home/kai.projects.complete (novamente, é bom ter isso - eles sempre podem navegar manualmente ou definir o caminho padrão em o cliente FTP) .

Alguém pode me dar uma solução que não me envolva alterar completamente as permissões de grupos ou de todos os usuários? Chegará um ponto em que outros usuários serão adicionados, mas não deverão ter acesso a esses arquivos.

Obrigado

    
por Kai 17.12.2016 / 15:45

1 resposta

0

Para a parte de proteção / permissão, se o seu sistema de arquivos suporta ACLs, você pode executar

setfacl -R -m u:jonny:r /home/kai/projects.complete
setfacl -R -m default:u:jonny:r /home/kai/projects.complete

que diz:

Defina ( -m ) a lista de controle de acesso (ACL) recursivamente ( -R ) para o usuário jonny readonly ( u:jonny:r ) no diretório /home/kai/projects.complete e defina a ACL padrão como a mesma, que diz Cada diretório recém criado abaixo receberá a mesma ACL automaticamente. Você também precisa garantir que os "outros" não tenham acesso aos seus diretórios: chmod -R o-rwx /home/kai

Não será possível atribuir ao jonny um diretório readonly como diretório pessoal, já que no login / logout existem arquivos gravados no diretório home.

Para a configuração do FTP, isso depende do servidor FTP que você está usando. A maioria deles chroot para o diretório inicial (ou algum outro, se configurado), portanto, o usuário FTP não pode alterar para algum diretório externo. Olhe para a descrição do seu servidor FTP.

Para acessar uma pasta fora da chroot jail, consulte, por exemplo, link

    
por ridgy 17.12.2016 / 17:26