
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/passwd
arquivo:
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 .bashrc
só pode ser lido panos
(e talvez por um grupo ao qual Jerry não pertence) ou porque o diretório /home/panos
em si não é acessível ( x
permissã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 panos
e provavelmente está definido como -rwx------
ou algo parecido. Então Jerry
tenta ler e não consegue. Permission denied
, assim como diz.
É possível que Jerry
na 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