Estou tentando entender a administração do sistema no Ubuntu. Então, como exemplo, eu crio um usuário fictício usando
sudo useradd -d /home/linda linda
e passwd
para criar a senha. Verifico se uma entrada foi feita usandocat /etc/passwd
linda:x:1004:1004::/home/linda:/bin/sh
No entanto, quando su - linda
eu recebo
No directory, logging in with HOME=/
e, de fato, nenhum diretório inicial foi criado. o que estou perdendo?
Obrigado.
command-line
bash
users
home-directory
tchakravarty
fonte
fonte
adduser
mas ainda assim o diretório inicial criado contém apenas um arquivoexamples.desktop
e nada mais. Como faço para o Ubuntu criar as pastas padrão Desktop, Downloads e assim por diante? (Estou logado via ssh)adduser
também não criará o diretório se alguém tiver alterado CREATE_HOME em /etc/login.defs para "no". Você pode substituir isso pela-m
bandeira.você pode corrigir isso simplesmente criando o diretório home.
tente fazer login novamente e isso deve funcionar.
fonte
De acordo com
man useradd
, a-d /home/linda
opção não criará o diretório/home/linda
, se estiver ausente. Então, você precisa criá-lo manualmente. Para fazer isso, execute os seguintes comandos no terminal:Consulte também: Como criar a pasta base do usuário após a criação da conta?
fonte
Veja
/etc/defaults/useradd
se você deseja alterar os padrões. Usar:useradd -m -d /home/joe -s /bin/bash
.fonte
-m, --create-home Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.
@astrojuanluVocê também pode modificar
/etc/pam.d/common-session
para fazer com que o diretório inicial de um usuário seja criado no primeiro login. Adicione a seguinte linha a esse arquivo.Isso é particularmente útil se o seu sistema estiver em uma rede na qual os usuários são gerenciados externamente à sua máquina, por LDAP, por exemplo.
fonte
Use em
-m
vez de-d
, para que o diretório seja criado para você:sudo useradd -m linda
Além disso, se
linda
for um usuário normal, convém que ele use/bin/bash
como padrãoshell
:sudo useradd -m linda -s /bin/bash
fonte
Adicione a entrada abaixo
/etc/login.defs
e salve:Agora, tente criar contas de usuário. Isso criará o diretório inicial.
fonte
Use
adduser
.useradd
você precisa adicionar todas as opções. Incluindo permissões e outras coisas.adduser
faz isso com base em padrões saudáveis (e também adiciona o diretório home por si só).Se você precisar usar o adduser, provavelmente precisará da opção -b junto com a opção -d!
fonte
Se
/home/linda
não estiver presente antes de você adicionar linda como usuário, você também precisará adicionar--create-home
.fonte
A razão mais provável pela qual você não criou o diretório inicial é porque não possui o
CREATE_HOME yes
in/etc/login.defs
.Você pode corrigir isso seguindo o que o @OmPS ou o @Radu Rădeanu sugeriram.
Mas existem muitas maneiras de superar esse problema no futuro usando um dos comandos abaixo:
Resultado de
sudo adduser linda
Os padrões para adduser são escolhidos
/etc/adduser.conf
se a--home
opção não for especificada. Observe que ele também copia o/etc/skel
conteúdo.Use adduser com
--home
O mesmo que a opção anterior, exceto que você pode desejar isso se o diretório inicial do usuário for diferente do nome de usuário que você atribuiu.
Especifique o diretório base para o
useradd
comando:Use login.defs: modifique
/etc/login.defs
e adicione a linha abaixo antes de fazersudo useradd
:Nota: se o fizer
man login.defs
, atualmente dizMuitas das funcionalidades que costumavam ser fornecidas pelo conjunto de senhas shadow agora são tratadas pelo PAM. Portanto, o /etc/login.defs não é mais usado pelo passwd (1) ou menos pelo login (1) e su (1). Por favor, consulte os arquivos de configuração do PAM correspondentes.
Use o módulo PAM pam_mkhomedir: da
man pam_mkhomedir
página, adicione a linha abaixo para/etc/pam.d/login
:fonte