Como posso criar um novo usuário, mas com um diretório inicial que já existe?

Como posso criar um novo usuário, mas com um diretório inicial que já existe?

Digamos que eu tenha um usuário chamadopanoramase ele tem seu diretório inicial localizado em /home/panos. Então, eu crio outro usuário chamadoTom:

adduser Tom

Ele cria um usuárioTomquem tem o diretório inicial:/home/Tom

A questão é: e se eu quiser criar um novo usuário e dar a ele como diretório inicial o diretório inicial de outro usuário. Por exemplo, vamos criar o usuárioJerrye passe-o como seu diretório inicial, o diretório inicial do usuárioPanos:

adduser -d /home/panos Jerry

mas há um erro dizendo:

adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.

No entanto, se você der uma olhada no /etc/passwdarquivo:

tail -n 3 /etc/passwd
anthony:x:501:501::/home/anthony:/bin/bash
panos:x:502:502::/home/panos:/bin/bash
Jerry:x:503:503::/home/panos:/bin/bash

parece que funcionou. Mas quando tentei fazer login como Jerry:

[root@LinuxAcademy ~]# su Jerry
bash-4.1$ bash: /home/panos/.bashrc: Permission denied
bash-4.1$ 

isso me impede de fazer login como Jerry e também altera meu prompt (oPS1).

Então, como posso fazer isso? É possível?

Responder1

Você criou um usuário com um diretório inicial que já existe.

adduser: aviso: o diretório inicial já existe.
Não copiar nenhum arquivo do diretório skel para ele.

Isso não é um erro, é um aviso. Normalmente, o motivo para não criar um diretório inicial é para um usuário cujo diretório inicial não deveria existir. Aqui sim, o que tem uma grande chance de ser um erro do administrador do sistema (por exemplo, um copiar e colar incorreto ou um script com erros). Como você realmente pretendia usar um diretório inicial existente, ignore este aviso.

[root@LinuxAcademy ~]# su Jerry
bash-4.1$ bash: /home/panos/.bashrc: Permission denied
bash-4.1$ 

Você fez login como Jerry. Esse bash 4.1 está rodando como Jerry. Jerry não tem permissão para ler seu arquivo ~/.bashrc, seja porque o arquivo .bashrcsó pode ser lido panos(e talvez por um grupo ao qual Jerry não pertence) ou porque o diretório /home/panosem si não é acessível ( xpermissão) para Jerry. Então o bash informa que não consegue ler seu arquivo de inicialização e exibe seu prompt padrão.

Ter vários usuários com o mesmo diretório inicial é muito incomum (excluindo contas do sistema cujo diretório inicial não importa). O que você deve fazer com relação às permissões depende do que você está tentando alcançar com isso. Você provavelmente deseja permitir pelo menos que todos esses usuários leiam seu diretório inicial.

Responder2

Bem, claro. Ele está tentando ler e executar arquivos /home/panos/.bashrc. Esse arquivo pertence a user panose provavelmente está definido como -rwx------ou algo parecido. Então Jerrytenta ler e não consegue. Permission denied, assim como diz.

É possível que Jerryna verdadeélogado. Tente whoami.

Então, coloque-os no mesmo grupo e torne-o group-rx, ou torne-o world-rx, ou algo parecido. E faça o mesmo para o diretório inicial (executável, para um diretório, significa pesquisável).

Responder3

$ mv /home/jerry /home/xxx
$ userdel -r jerry
$ rm -rf /var/spool/mail/jerry
$ useradd jerry
$ mv /home/xxx /home/jerry

Jerry Home já existe, então você irá perguntar como

bash-4.1$ bash 

Para evitar mv diretório inicial existente, novo local e criar usuário novamente

informação relacionada