Terminaldeki mevcut kullanıcı için varsayılan giriş dizini oluştur


150

Bunu nasıl yaparım? Giriş dizini olmayan bir kullanıcı oluşturdum ve şimdi bir tane oluşturmak istiyorum. Sadece new_user adlı bir klasör değil, varsayılan giriş dizinini tüm klasörler ve gizli dosyalar vb. İle istiyorum.


Kullanıcı oturum açtığında, bu alt dizinler (Belgeler, İndirmeler vb.) Otomatik olarak oluşturulur. Her ne kadar girişini terminal üzerinden "simüle etmenin" yollarını arıyorum.
Alaa Ali,

@Alaa su new_user: D
Radu Rădeanu,

1
@ RaduRădeanu evet zaten denedim, ayrıca denedim sudo -i -u new_userama işe yaramadı. Sanırım "bir X girişini simüle etmeliyiz" ... ... bunun nasıl yapıldığını bilmiyorum.
Alaa Ali,

2
oturum açmak, evdeki alt dizinleri oluşturmaz.
Jo Rijo,

Yanıtlar:


230

Aşağıdakileri kullanın (root olarak veya root değilse sudo ile):

mkhomedir_helper username

Bunun çalışması için klasör /home/usernamebulunmamalıdır.

X ile ilgili klasörler (Masaüstü, İndirmeler vb.) İçin bir grafik ortamında giriş yapmanız gerekir; ilk giriş yaptığınızda otomatik olarak oluşturulurlar.


1
Basit ve kullanışlı. Bu şekilde, yeni oluşturulan ana dizinin sistem politikalarınızla uyumlu olduğundan ve bunları hiçbir zaman el ile değiştirmeden emin olabileceğinizden de emin olabilirsiniz.
gerlos

Bu doğru cevap, en azından Ubuntu 14.04.2 LTS'de benim için çalıştı.
Christian Wilkie,

1
Bu benim için işe yaramadan önce kullanıcı adımı / etc / passwd içinde kullanmak zorunda kaldım.
user79878 11:15

3
Basit .. sadece işe yarar (tm). Kabul edilen cevap olmalı
Newtopian

Yönetmenin izinlerini kontrol etmeyi unutma ls -l /home. Yeni dizinin diğer tüm kullanıcılar tarafından okunabildiğini buldum, bu nedenle bu izinleri kaldırdım chmod go-r-x /home/username.
Don Kirkby

33

Alt dizinler (Belgeler, İndirmeler vb.), Kullanıcı giriş dizininin doğru izinlerle oluşturulması şartıyla GNOME üzerinden ilk giriş yaptığında otomatik olarak oluşturulur. İşte bir gösteri:

alaa @ aa-lu: ~ $ sudo kullanici testuser alaa
 @ aa-lu: ~ $ sudo sifre testuser
Yeni UNIX şifresini girin:
Yeni UNIX şifresini tekrar yaz:
passwd: şifre başarıyla güncellendi
alaa @ aa-lu: ~ $ sudo ls -l / home
toplam 20
drwxr-xr-x 55 alaa alaa 4096 22 Ağustos 22:00 alaa
drwx ------ 2 root root 16384 Jun 5 09:46 kayıp + bulundu
alaa @ aa-lu: ~ $ sudo mkdir / home / testinguser
 alaa @ aa-lu: ~ $ sudo chown testinguser: testinguser / home / testinguser
 alaa @ aa-lu: ~ $ ls-l / ev
toplam 24
drwxr-xr-x 55 alaa alaa 4096 22 Ağustos 22:00 alaa
drwx ------ 2 root root 16384 Jun 5 09:46 kayıp + bulundu
drwxr-xr-x 2 testuser testuser 4096 Ağu 23 10:03 testuser
alaa @ aa-lu: ~ $ ls -l / ev / test kullanıcısı /
toplam 0
alaa @ aa-lu: ~ $

Girdiyi kontrol ederek kullanıcının giriş dizininin doğru ayarlanıp ayarlanmadığını kontrol edebilirsiniz /etc/passwd. Varsayılan olarak, giriş dizinine bakın /home/testinguser:

alaa @ aa-lu: ~ $ grep test kullanıcısı / etc / passwd
Test kullanıcısı: x: 1001: 1001 :: / Ev / Test kullanıcısı : / bin / sh

Giriş dizinini /home/testinguserorada görmüyorsanız, sudo usermod -d /home/testinguser testingusergüncellemek için komutu çalıştırmanız gerekir, ancak bu komutu kullanmanız gerekmemesi gerekir, çünkü varsayılan olarak ayarlanmalıdır ( useraddsayfalara göre).

Daha sonra hesabımdan çıktım ve tekrar giriş yaptım testinguserve işte otomatik olarak oluşturulan alt dizinler:

alaa @ aa-lu: ~ $ ls -l / ev / test kullanıcısı /
toplam 36
drwxr-xr-x 2 testuser testuser 4096 Ağu 23 10:05 Masaüstü
drwxr-xr-x 2 test kullanıcısı test kullanıcısı 4096 Ağu 23 10:05 Dökümanlar
drwxr-xr-x 2 testuser testuser 4096 Ağu 23 10:05 İndirilenler
drwxr-xr-x 2 test kullanıcısı test kullanıcısı 4096 Ağu 23 10:05 Müzik
drwxr-xr-x 2 test kullanıcısı test kullanıcısı 4096 Ağu 23 10:07 Resimler
drwxr-xr-x 2 testuser testuser 4096 Ağu 23 10:05 Genel
drwxr-xr-x 2 test kullanıcısı test kullanıcısı 4096 Ağu 23 10:05 Templates
drwxr-xr-x 2 testuser testuser 4096 Ağu 23 10:05 Videolar

İçeriğini kopyalamak zorunda değildim /etc/skel.

Mümkünse, lütfen başka bir yeni kullanıcı oluşturarak bu adımları izlemeyi deneyebilir misiniz? İşiniz bittiğinde, bu yeni kullanıcıyı kaldırabilirsiniz sudo deluser testinguser && sudo rm -r /home/testinguser.

Bütün bunlar seninle işe yaramadıysa, o zaman bunun bir hata olduğunu tahmin ediyorum.


Kullandığınızda bazı durumlarda useradd, yeni kullanıcı için varsayılan giriş dizini otomatik olarak ayarlanmamıştır /home/username. Bu yüzden, ilk ypu bundan emin olmalı.
Radu Rădeanu

Bana bu durumlardan bir örnek verebilir misiniz? Man sayfalarından useradd: "useradd, HOME değişkeni /etc/default/useraddveya /homevarsayılan olarak HOME değişkeni tarafından belirtilen temel dizini kullanır ". HOME değişkeni /etc/default/useraddvarsayılan olarak tanımlanmadığından, useradd her zaman kullanır /home. Her neyse, cevabımı düzenleyeceğim ve kontrol etmek için parçayı taşıyacağım /etc/passwd.
Alaa Ali,

Burada bir örnek . Başka bir örnek: Bir kullanıcıyı sildiniz, ancak dizinlerini ve dosyalarını silmediniz; ve sonra aynı ada sahip bir kullanıcıyı tekrar eklersiniz. Ve birçoğu var, ve hiçbir hata yok :)
Radu Rădeanu 23:13

Eğer /bin/shkullanıcı satırına sahip /etc/passwddeğilseniz, o kullanıcı için bir kabuk eklemek zorundasınız, örneğin usermod -s /bin/sh testuser
saatinde

Tüm sistemler GNOME'a sahip değildir ve birisinin bir kullanıcıyı sadece bir ev dizini oluşturmak için kaldırıp tekrar eklemesini önermek kötü bir tavsiyedir.
ntwrkguru

12

GÜNCELLEME: Çözüm bozuldu ve benim için de çalışmıyor.

Kullanmıyorsa, kullanıcının giriş dizinini oluşturmak istiyorsanız, useraddkomutu -mbayrakla çalıştırın . Bu, tüm dosyaları dizinden kopyalar /etc/skel.

useradd -m username

Sisteminiz için ayarları yapılandırmanız gerekebilir. Man sayfasına göre:

  -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.

    By default, if this option is not specified and CREATE_HOME is not enabled, no
    home directories are created.

ve ayrıca şunları gösterir:

CONFIGURATION

   The following configuration variables in /etc/login.defs change the behavior
   of this tool:

   CREATE_HOME (boolean)
       Indicate if a home directory should be created by default for new users.

8
bu bana yeni bir kullanıcı oluşturmaya çalışıyor gibi görünüyor, çünkü bana “kullanıcı“ yeni kullanıcı ”zaten var” diyor.
Jo Rijo

Ayrıca, yine de -myeni bir kullanıcı oluştururken bayrağını test ettim ve çalışmadı; yalnızca iskelet dosyalarını kopyalar.
Alaa Ali,

@Jo: Bu nasıl yanlış, çünkü ilk gönderiye göre, kullanıcı zaten var.
zanaatkar

3
Bu cevap sorunu çözmüyor. Kopyalama /etc/skel, giriş dizininde alt dizinleri oluşturmaz. Ayrıca, useradd -myeni bir kullanıcı oluştururken, kullanıcı önceden eklendiğinde kullanılmaz.
Alaa Ali,

Gönderiyi güncelledim, bu yüzden login.defs config dosyasında CREATE_HOME öğesini evet olarak ayarlayın.
zanaatkar

5

Yeni kullanıcıyı adduserkomutla oluşturduysanız, yeni kullanıcı için bir giriş dizini oluşturmanız gerekmez. /homeAşağıdaki alt dizinleri içeren dizinde, kullanıcının adıyla adlandırılmış bir giriş dizini : Yeni kullanıcı için Masaüstü, İndirilenler, Belgeler, Müzik, Resimler, Videolar (ve diğerleri) otomatik olarak oluşturulur.

Yeni kullanıcıyı useraddkomutla oluşturduysanız, aşağıdaki komutları terminalde çalıştırın:

sudo -i     #enter your user password when you are asked
gedit /etc/passwd

/etc/passwddosyayı kök olarak düzenlemek için (bu en önemli adımdır). Yeni kullanıcının adını içeren satırı bulun ve onun için varsayılan giriş dizinini ayarlayın:

new_username:x:1001:1001::/home/new_username:/bin/sh

Bu satırda yeni kullanıcı için gerçek bir isim ekleyebilir veya varsayılan kabuğu ayarlayabilirsiniz. Bunun gibi bir şey:

new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash

Dikkatli ol, başka değişiklikler yapma.

Dosyayı kaydettikten sonra, kök hesaptan çıkmadan önce, aşağıdaki komutları çalıştırın:

mkdir /home/new_username                                #to create the directory /home/new_username
cp -r /etc/skel/. /home/new_username                    #to copy skeleton files to /home/new_username
chown -R new_username:new_username /home/new_username   #to change the owner of /home/new_username to the new user

Bütün bunlardan sonra, yeni kullanıcının giriş klasörü ilk girişten sonra otomatik olarak doldurulur.

Ayrıca bakınız: Hesap oluşturulduktan sonra kullanıcı ana klasörü nasıl oluşturulur?


Hatırladığım kadarıyla, giriş klasörü otomatik olarak oluşturulmaz, onu el ile oluşturmanız ve kullanıcının girişini güncellemeniz gerekir /etc/passwd(zaten mevcut değilse). Kullanıcı oturum açtığında, giriş klasörü otomatik olarak bu alt dizinlerle doldurulur. Ancak, tüm bu halledilir biri adduseryerine kullanıcı kullanan bir kullanıcı ekler useradd.
Alaa Ali

@Alaa Sadece birkaç gün önce test edilmiş ve kullandığım adduser: giriş klasörü olduğu otomatik olarak oluşturulur. Ve gerçekten, giriş klasörü ilk girişten sonra otomatik olarak doldurulur.
Radu Rădeanu,

bu hiçbir şey yapmıyor gibi görünüyor. Belki de bash betiğini diğer sorudan deneyeceğim, ancak / home / isimli yeni bir klasörde bir klasör oluşturamadım ve / etc / skel içeriğini kopyalayamadım mı? bash betiğinin yaptığı şey bu mu?
Jo Rijo,

@JoRijo Cevabımı düzenledim.
Radu Rădeanu

@ RaduRădeanu demek istemiyor cp /etc/skel/* /home/new_usernamemusunuz? Ayrıca, iki ardışık chownkomut kullanmanızın bir nedeni var mı?
Alaa Ali,

3

Gerçekten ihtiyacınız olan şey, çalışması için ana klasör. Kök olarak

cd /home
cd mkdir username
chown username username
chgrp username username

İlk kez oturum açmak, gerekli gibi görünen tüm gerekli dosyaları oluşturmalıdır:

drwxr-xr-x 16 fotanus fotanus 4096 Jun  4 17:46 .
drwxr-xr-x  9 root    root    4096 Jun  4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun  4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun  4 17:46 .config
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Desktop
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Documents
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Downloads
drwx------  3 fotanus fotanus 4096 Jun  4 17:46 .gconf
drwxrwxr-x  2 fotanus fotanus 4096 Jun  4 17:46 .gstreamer-0.10
-rw-------  1 fotanus fotanus  334 Jun  4 17:45 .ICEauthority
drwxr-xr-x  3 fotanus fotanus 4096 Jun  4 17:45 .local
drwx------  4 fotanus fotanus 4096 Jun  4 17:45 .mozilla
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Music
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Pictures
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Public
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Templates
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Videos
-rw-------  1 fotanus fotanus   55 Jun  4 17:45 .Xauthority
-rw-------  1 fotanus fotanus  711 Jun  4 17:45 .xsession-errors
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.