Ubuntu 14.04: Komut satırından oluşturulan yeni kullanıcının eksik özellikleri var


17

Bash komut satırından Ubuntu 14.04 LTS'de yeni bir kullanıcı oluşturmaya çalışıyorum. Aşağıdaki komutları kullanıyorum:

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

Bu yeni kullanıcıyı oluşturduktan sonra 3 sorunla karşılaştım:

  1. Sam kullanıcısını kullanarak Ubuntu'ya giriş yapamıyorum. Her giriş yaptığımda giriş ekranına geri gönderiliyorum.

  2. /etc/passwdDosyaya baktığımda , sam kullanıcısı için tanımlanmış varsayılan kabuklar olmadığını görebiliyorum:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Sam'in giriş klasörü oluşturulmadı, yani /home/sammevcut değil.

Tüm bu sorunlara neyin sebep olabileceğine dair ipuçları var mı?

Unity Control Center'ı kullanarak bir kullanıcı oluşturduğumda bu sorunların ortaya çıkmadığını burada belirtmeliyim. Ancak onlarca kullanıcı oluşturacağımdan komut satırını kullanabilmek istiyorum.

Yanıtlar:


29

İlk olarak, adduser kullanmanın ve useradd kullanmanın daha iyi olduğuna dikkat edin.

Şimdi emrine geri dön:

Komutu aşağıdaki şekilde çalıştırmalısınız:

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

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

Yani -sgiriş kabuğunuzu eklemek için kullanmak ve -mevinizi oluşturmak için özledim .

Aynı anda birden fazla kullanıcı eklemek istiyorsanız, komutu kullanmak daha iyidir newusers. Görevinizi basitleştirecek.

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

İşte newuserskomut hakkında bazı öğretici :


Neden "bilinmeyen seçenek m" alıyorum? 14.04 çalışan AWS Ubuntu örneğindeyim.
Donato

2

Kullanıcı oluştur

Kullanıcının giriş dizinini oluştur

Giriş kabuğunu tanımla

useradd -m -d /home/username username -s /bin/bash

Kullanıcıyı sil

Kullanıcının Ana Dizini Sil

userdel -r username

1

Bayrakları kaçırırken ve diğer cevaplar mutlaka yanlış olmasa da, gelecekte daha kapsamlı olmasını istiyorsanız adduser'ı çalıştırmayı düşünün . Bu useradd'ın daha güzel bir versiyonudur. Yani useradd'ın aksine varsayılan olarak bir giriş dizini oluşturur. Ayrıca bir ton şey istediğinde, bu satırı / etc / passwd dosyasında saklar ve hiçbirini doldurmanız gerekmez.


1

Herkese teşekkürler. Yanıtlarınızla, aşağıdaki komut satırlarını kullanarak sorunu çözebildim.

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

Parola passwdzaten şifrelenmiş olarak ayarlanır (aksi takdirde "hello-1234" / etc / passwd içinde şifrelenmemiş görünür).


0

Useradd komutunda bayraklar eksik. Kullanıcı dizini oluşturmak için '-m', bash kabuğunu eklemek için '-s / bin / bash'. Varsayılan, bir kullanıcı dizini oluşturmamak ve varsayılan kabuğu atamaktır. Sistemim test ettiğimde aynı şeyi yaptı, bu yüzden ubuntu 14.04 varsayılan kabuk olarak boş kullanıyor gibi görünüyor. Kabuğunuz olmadığı için giriş yapamazsınız.

Terminaldeki mevcut kullanıcı için varsayılan giriş dizini oluştur (Soru 335961, 3. Cevap)

Useradd için Ubuntu Manpage'den

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

TÜM KULLANICILAR için varsayılan kabuğu bash olarak nasıl değiştirirsiniz? Soru 335961

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.