Diretório inicial do usuário dentro do diretório pessoal de outro usuário?

2

Estou prestes a criar um usuário e definir seu diretório inicial dentro do diretório inicial de outro usuário - estou andando:

  • permitido no mundo * nix

  • possível (ainda não tentei na caixa de teste)

  • e tem algum aspecto negativo reconhecido?

Caso:

ftp_user1 home dir é /var/www/vhosts/website/

Eu quero

ftp_user2 home dir para ser /var/www/vhosts/website/subfolder/

(claro, estou ciente de que terei que escolher um usuário que será proprietário de /var/www/vhosts/website/subfolder/ )

    
por Miloš Đakonović 01.06.2016 / 18:31

2 respostas

1

allowed in *nix world

Praticamente tudo é permitido no mundo * nix.

possible (I haven't tried in test box yet)

Sim, isso é possível. Quando um usuário recebe um diretório inicial, esse é o diretório que o usuário usará cd por padrão ao efetuar login. Você pode alterar o diretório pessoal de ftp_user2 com a opção -d em usermod :

usermod -d [directory] [ftp_user2]

No seu caso, ficaria assim: usermod -d /var/www/vhosts/website/subfolder ftp_user2

Se você ainda precisar criar ftp_user2 , poderá atribuir seu diretório inicial ao criá-los usando useradd .

useradd -m -d /var/www/vhosts/website/subfolder -s /bin/bash ftp_user2

A opção -m criará o diretório pessoal do usuário, se ele ainda não existir. A opção -d especifica qual diretório inicial deve ser designado ao usuário. A opção -s especifica qual shell o usuário usará quando efetuado login. -s não é necessário, mas geralmente é recomendável especificar um shell padrão de usuários se esse usuário fizer login.

and does it have any recognized negative aspect?

O único aspecto negativo que posso imaginar é: se alguém decidir excluir ftp_user1 e seu diretório pessoal, o diretório pessoal para ftp_user2 também será excluído.

    
por 01.06.2016 / 18:54
0

É possível que o diretório pessoal de um usuário esteja dentro de outro, mas é raro, por um bom motivo. Normalmente, um usuário pode gravar em seu diretório pessoal. Se ftp_user1 puder gravar em /var/www/vhosts/website/ , então ftp_user1 poderá renomear /var/www/vhosts/website/subfolder e poderá criar um novo diretório com esse nome, pertencente a ftp_user1 e com o conteúdo escolhido por ftp_user1 . Por exemplo:

mv /var/www/vhosts/website/subfolder /var/www/vhosts/website/subfolder.user2
mkdir /var/www/vhosts/website/subfolder
echo 'cp /bin/sh /tmp/sh.user2; chmod u+s /bin/sh.user2' >/var/www/vhosts/website/subfolder/.profile

Na próxima vez em que ftp_user2 fizer login, seu .profile será executado e criará um shell setuid, que permite que ftp_user1 (e qualquer outra pessoa) obtenha acesso à conta ftp_user2 . (Claro que esta prova de conceito pode ser mais robusta.)

Se ftp_user1 não puder gravar em seu diretório inicial, isso pode ser seguro, mas é um pouco confuso. Provavelmente, existe uma maneira melhor de fazer qualquer coisa que o leve a isso.

    
por 02.06.2016 / 02:06