Fornece acesso do SCP do usuário ao diretório inicial de outro usuário

2

Normalmente, usamos logins de chave pública para nosso servidor, mas um novo serviço de inscrição exige um nome de usuário e senha para o acesso de SCP à conta de um usuário (Isto é Vaultpress - um utilitário de backup remoto para Wordpress). Temos um blog rodando sob UserA em / home / usera / public_html. O Vaultpress requer um nome de usuário e uma senha para o acesso ao SCP, mas não queremos dar a eles as credenciais do UserA.

Portanto, a pergunta é: Como podemos criar um UserB que possa apenas SCP e que tenha acesso apenas ao diretório inicial do UserA? E como podemos garantir que quaisquer arquivos escritos por UserB sejam editáveis / possuídos pelo UserA?

    
por Kevin 04.02.2014 / 16:01

2 respostas

1

Você pode simplesmente usar o POSIX acl para isso. Crie o usuário B com seu grupo padrão como A (suponho que o grupo padrão de usuário A seja grupo A )

$ useradd -g A B # This creates a new user B with default group A

Agora você precisa configurar as permissões certas

$ chmod g+x /home/A # The group member needs execute permission to reach public_html directory
$ find /home/A/public_html -type d -exec chmod g+rwx {} \; # This will give all directories under public_html rwx group permissions
$ find /home/A/public_html -type d -exec chmod g+rw {} \; # This will give all files under public_html rw group permissions
$ sudo -u A -i "umask 002 && echo umask 002 > ~/.bashrc" && sudo -u B -i "umask 002 && echo umask 002 > ~/.bashrc" # This will make sure all future permissions are OK for your purpose

Com base na configuração acima, B pode ler e gravar dentro do diretório public_html. AFAIK, o Vaultpress precisa de permissões de gravação para restaurar os backups. Você pode remover a permissão de gravação se não estiver planejando usar o recurso de restauração automática do Vaultpress. Além disso, todos os arquivos serão editáveis pelo usuário original A .

Qualquer arquivo / diretório criado por B será de propriedade do grupo A por padrão. Isso compartilhará a propriedade desses arquivos entre os usuários A e B.

Por favor, adicione um comentário, se você gosta de mim para esclarecer alguma coisa.

    
por 04.02.2014 / 19:11
0

Você pode querer olhar para o sftp com ambientes chrooted. Basicamente, você teria dois serviços ssh em execução em portas diferentes.

Um é especificamente apenas para sftp (usuário / senha) chrooted em um diretório específico que você configurou, o outro é para suas conexões ssh normais para manutenção de servidor via autenticação de chave pub.

Olhe para isso: link

    
por 04.02.2014 / 16:19