Como eu faço isso? Criei um usuário sem um diretório inicial e agora quero criar um. Não é apenas uma pasta chamada new_user, quero o diretório inicial padrão com todas as suas pastas e arquivos ocultos, etc.
command-line
home-directory
Jo Rijo
fonte
fonte
su new_user
: Dsudo -i -u new_user
mas não funciona. Eu acho que precisamos "simular um login X" ... não sei como fazer isso.Respostas:
Use o seguinte (como root ou com sudo, se não for root):
Para que isso funcione, a pasta
/home/username
não deve existir.Para pastas relacionadas ao X (área de trabalho, downloads, etc.), você precisará fazer login em um ambiente gráfico; eles serão gerados automaticamente na primeira vez que você fizer login.
fonte
ls -l /home
. Eu descobri que o novo diretório era legível por todos os outros usuários, então removi essas permissões comchmod go-r-x /home/username
.Os subdiretórios (Documentos, Downloads, etc ...) são criados automaticamente quando o usuário efetua login pelo GNOME, desde que o diretório inicial seja criado com as permissões corretas. Aqui está uma demonstração:
Você pode verificar se o diretório inicial do usuário está definido corretamente, marcando a entrada
/etc/passwd
. Por padrão, você deve ver o diretório inicial definido como/home/testinguser
:Se você não vir o diretório inicial
/home/testinguser
, precisará executar o comandosudo usermod -d /home/testinguser testinguser
para atualizá-lo, embora não precise usar esse comando, pois ele deve ser definido por padrão (de acordo comuseradd
as páginas de manual do usuário).Saí da minha conta e entrei novamente com
testinguser
, e aqui estão os subdiretórios criados automaticamente:Não precisei copiar o conteúdo de
/etc/skel
.Se possível, tente seguir estas etapas, criando outro novo usuário? Quando terminar, você pode remover esse novo usuário por
sudo deluser testinguser && sudo rm -r /home/testinguser
.Se tudo isso não funcionou com você, acho que é um bug.
fonte
useradd
, o diretório inicial padrão do novo usuário não é definido automaticamente como/home/username
. Então, primeiro o ypu deve ter certeza disso.useradd
: "useradd usará o diretório base especificado pela variável HOME em/etc/default/useradd
, ou/home
por padrão". A variável HOME in/etc/default/useradd
não é definida por padrão, portanto o useradd sempre usará/home
. De qualquer forma, vou editar minha resposta e mover a parte para verificar/etc/passwd
./bin/sh
na linha de usuário/etc/passwd
que você tem que adicionar um shell para esse usuário, por exemplo, o shell padrão comusermod -s /bin/sh testuser
ATUALIZAÇÃO: A solução está quebrada e não está funcionando para mim também.
Se você deseja criar o diretório inicial do usuário, se ele não existir, execute o
useradd
comando com o-m
sinalizador Isso copiará todos os arquivos do/etc/skel
diretório.Pode ser necessário definir as configurações do seu sistema. De acordo com a página do manual:
e indica ainda:
fonte
-m
sinalizador ao criar um novo usuário, e ele não funcionou; apenas copia os arquivos do esqueleto./etc/skel
não cria os subdiretórios no diretório inicial. Além disso,useradd -m
é usado ao criar um novo usuário, não quando o usuário já foi adicionado.Se você criou o novo usuário com o
adduser
comando, não precisa criar um diretório inicial para o novo usuário. Um diretório inicial nomeado com o nome do usuário no/home
diretório, com os seguintes subdiretórios: Área de trabalho, Downloads, Documentos, Música, Imagens, Vídeos (e outros), para o novo usuário, será criado automaticamente.Se você criou o novo usuário com o
useradd
comando, execute os seguintes comandos no terminal:editar
/etc/passwd
arquivo como raiz (esta é a etapa mais importante). Encontre a linha com o nome do novo usuário e defina o diretório inicial padrão para ele algo como isto:Nesta linha, você também pode adicionar um nome real para o novo usuário ou definir o shell padrão. Algo assim:
Cuidado, não faça outras alterações.
Depois de salvar o arquivo, antes de sair da conta raiz, execute os seguintes comandos:
Depois de tudo isso, a pasta pessoal do novo usuário será preenchida automaticamente após o primeiro login.
Consulte também: Como criar a pasta base do usuário após a criação da conta?
fonte
/etc/passwd
(se ainda não estiver lá). Depois que o usuário efetuar login, a pasta inicial será preenchida automaticamente com esses subdiretórios. No entanto, tudo isso é resolvido: alguém adiciona um usuário usandoadduser
, em vez deuseradd
.adduser
: a pasta pessoal é criada automaticamente. E, de fato, a pasta pessoal será preenchida automaticamente após o primeiro login.cp /etc/skel/* /home/new_username
? Além disso, existe uma razão para você usar doischown
comandos consecutivos ?Tudo o que você precisa é a pasta pessoal para que ela funcione. Como raiz,
O login pela primeira vez deve criar todos os arquivos necessários, que parecem ser os seguintes:
fonte