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

6

Digamos que eu tenha um usuário chamado panos e ele tenha seu diretório home localizado em /home/panos . Em seguida, crio outro usuário chamado Tom :

adduser Tom

Cria um usuário Tom que possui o diretório inicial: /home/Tom

A pergunta é: e se eu quiser criar um novo usuário e dar a ele como home dir o diretório home de outro usuário. Por exemplo, vamos criar o usuário Jerry e passá-lo como seu home dir no diretório home do usuário Panos :

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 arquivo /etc/passwd :

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 logar como Jerry:

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

isso me impede de logar como Jerry e também muda meu prompt (o PS1 ).

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

    
por drpaneas 14.06.2014 / 21:40

3 respostas

4

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

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

Isso não é um erro, é um aviso. Geralmente, o motivo para não criar um diretório inicial é para um usuário cujo diretório inicial não deve existir. Aqui está, o que tem uma grande chance de ser um erro do administrador do sistema (por exemplo, um script ruim de copiar e colar ou de um buggy). 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á sendo executado como Jerry. Jerry não tem permissão para ler seu ~/.bashrc , porque o arquivo .bashrc é legível apenas para panos (e talvez para um grupo ao qual Jerry não pertence) ou porque o diretório /home/panos em si não está acessível ( x permission) para Jerry. Então o bash lhe diz que não pode 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 as contas do sistema cujo diretório base não importa). O que você deve fazer em relação às permissões depende do que você está tentando alcançar com isso. Você provavelmente quer pelo menos permitir que todos esses usuários leiam o diretório inicial.

    
por 15.06.2014 / 23:02
3

Bem, claro. Está tentando ler e executar /home/panos/.bashrc . Esse arquivo pertence ao usuário panos e, presumivelmente, está definido como -rwx------ ou algo parecido. Então Jerry tenta ler e não consegue. Permission denied , exatamente como diz.

É possível que Jerry , na verdade, esteja conectado. Tente whoami .

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

    
por 14.06.2014 / 22:24
-2
$ 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 existente home dir nova localização e crie o usuário novamente

    
por 15.10.2015 / 17:19

Tags