Ubuntu 14.04: Người dùng mới được tạo từ dòng lệnh bị thiếu các tính năng


17

Tôi đang cố gắng tạo một người dùng mới trong Ubuntu 14.04 LTS từ dòng lệnh bash. Tôi sử dụng các lệnh sau:

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

Sau khi tạo người dùng mới này, tôi gặp phải 3 vấn đề:

  1. Tôi không thể đăng nhập vào Ubuntu bằng cách sử dụng sam người dùng. Bất cứ khi nào tôi đăng nhập, tôi được gửi trở lại màn hình đăng nhập.

  2. Khi tôi nhìn vào /etc/passwdtệp, tôi có thể thấy rằng không có trình bao mặc định nào được xác định cho người dùng sam:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Thư mục nhà của Sam không được tạo, tức là /home/samkhông tồn tại.

Bất kỳ manh mối về những gì có thể gây ra tất cả những vấn đề này?

Tôi cần lưu ý ở đây rằng khi tôi tạo người dùng bằng Unity Control Center, những sự cố này không xảy ra. Nhưng tôi muốn có thể sử dụng dòng lệnh vì tôi có hàng tá người dùng để tạo.

Câu trả lời:


29

Đầu tiên lưu ý rằng tốt hơn là sử dụng adduser và không useradd.

Bây giờ trở lại lệnh của bạn:

Bạn nên chạy lệnh theo cách sau:

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.

Vì vậy, bạn bỏ lỡ để sử dụng -sđể thêm vỏ đăng nhập của bạn và -mđể tạo ra ngôi nhà của bạn.

Nếu bạn muốn thêm nhiều người dùng cùng một lúc, tốt hơn là sử dụng lệnh newusers. Nó sẽ đơn giản hóa nhiệm vụ của bạn.

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

Dưới đây là một số hướng dẫn về newuserslệnh:


Tại sao tôi nhận được "tùy chọn m" chưa biết? Tôi đang dùng phiên bản AWS Ubuntu chạy 14.04.
Donato

2

Tạo người dùng

Tạo thư mục nhà của người dùng

Xác định shell đăng nhập

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

Xóa người dùng

Thư mục nhà của người dùng Deleter

userdel -r username

1

Trong khi bạn đang thiếu cờ và các câu trả lời khác không nhất thiết phải sai, xem xét chạy adduser nếu bạn muốn nó toàn diện hơn trong tương lai. Đây là phiên bản đẹp hơn của useradd. Cụ thể, nó sẽ tạo một thư mục chính theo mặc định không giống như useradd. Cũng lưu ý khi nó yêu cầu rất nhiều thứ, nó lưu trữ nội tuyến đó trên tệp / etc / passwd và bạn không phải điền bất kỳ nội dung nào vào đó.


1

Cảm ơn mọi người. Với câu trả lời của bạn, tôi đã có thể khắc phục sự cố bằng các dòng lệnh sau.

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

Mật khẩu được đặt passwdđể nó đã được mã hóa (nếu không "hello-1234" sẽ không được mã hóa trong / etc / passwd).


0

Bạn đang thiếu cờ trong lệnh useradd. '-m' để tạo thư mục người dùng, '-s / bin / bash' để thêm bash shell. Mặc định là không tạo thư mục người dùng và gán shell mặc định. Hệ thống của tôi đã làm điều tương tự khi tôi thử nghiệm nó để có vẻ như Ubuntu 14.04 sử dụng khoảng trống làm vỏ mặc định. Bạn không thể đăng nhập vì bạn không có vỏ.

Tạo thư mục nhà mặc định cho người dùng hiện tại trong thiết bị đầu cuối (Câu hỏi 335961, Câu trả lời thứ 3)

Từ Ubuntu Manpage cho 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.

Làm thế nào để bạn thay đổi shell mặc định cho TẤT CẢ NGƯỜI SỬ DỤNG thành bash? Câu 335961

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.