15 ví dụ về lệnh useradd trên Centos / Ubuntu / Debian / Fedora

Khi chạy lệnh 'useradd' trong terminal Linux sẽ thực hiện các công việc chính sau đây:

  • Chỉnh sửa các tệp /etc/passwd, /etc/shadow, /etc/group và /etc/gshadow cho các tài khoản người dùng mới được tạo.
  • Tạo và điền dữ liệu vào thư mục home cho người dùng mới.
  • Thiết lập quyền và sở hữu cho thư mục home.

Cú pháp cơ bản của lệnh useradd:

# useradd [options] username

Thêm người dùng mới trong Linux

Để thêm/tạo một người dùng mới, bạn cần sử dụng lệnh 'useradd' hoặc 'adduser' kèm theo 'tên_người_dùng'. Tên_người_dùng là tên đăng nhập được sử dụng bởi người dùng để đăng nhập vào hệ thống.

Chỉ có thể thêm một người dùng và tên_người_dùng phải là duy nhất (khác với các tên_người_dùng khác đã tồn tại trên hệ thống).

Ví dụ, để thêm một người dùng mới có tên là 'tecmint', sử dụng lệnh sau:

[root@tecmint ~]# useradd tecmint

Khi chúng ta thêm một người dùng mới trong Linux bằng lệnh 'useradd', tài khoản của người dùng sẽ được tạo ở trạng thái khóa. Để mở khóa tài khoản người dùng đó, chúng ta cần đặt mật khẩu cho tài khoản đó bằng lệnh 'passwd'. 

# passwd tecmint
Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Tạo người dùng trong Linux

Sau khi tạo một người dùng mới, thông tin của người dùng sẽ tự động được thêm vào tệp '/etc/passwd'. Tệp này được sử dụng để lưu trữ thông tin người dùng và mục nhập nên có dạng như sau:

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

Xem thông tin người dùng trong Linux

Mục nhập trên bao gồm bảy trường được phân tách bằng dấu hai chấm (:), mỗi trường có ý nghĩa riêng. Hãy xem các trường này là gì:

  • Tên_người_dùng: Tên đăng nhập của người dùng được sử dụng để đăng nhập vào hệ thống. Nó phải có độ dài từ 1 đến 32 ký tự.
  • Mật khẩu: Mật khẩu người dùng (hoặc ký tự 'x') được lưu trữ trong tệp /etc/shadow dưới dạng đã mã hóa.
  • User ID (UID): Mỗi người dùng phải có một User ID (UID) là số nhận dạng duy nhất.Mặc định, UID 0 được dành riêng cho người dùng root và các UID trong khoảng từ 1-99 được dành riêng cho các tài khoản được xác định trước. Ngoài ra, các UID trong khoảng từ 100-999 được dành riêng cho các tài khoản và nhóm hệ thống.
  • Group ID (GID) là số nhận dạng nhóm chính (Primary Group ID) được lưu trữ trong tệp /etc/group.
  • Thông tin người dùng (User Info) là một trường tùy chọn và cho phép bạn định nghĩa thông tin bổ sung về người dùng, ví dụ như họ và tên đầy đủ của người dùng. Trường này được điền thông qua lệnh 'finger'.
  • Thư mục gốc (Home Directory) là đường dẫn tuyệt đối của thư mục gốc của người dùng.
  • Shell là đường dẫn tuyệt đối của shell được sử dụng bởi người dùng, ví dụ /bin/bash.

Tạo người dùng với một thư mục gốc khác

Mặc định, lệnh 'useradd' tạo thư mục gốc của người dùng dưới thư mục /home với tên người dùng. Ví dụ, như đã thấy ở trên, thư mục gốc mặc định cho người dùng 'tecmint' là '/home/tecmint'. 

Tuy nhiên, hành động này có thể thay đổi bằng cách sử dụng tùy chọn '-d' kèm theo địa chỉ của thư mục gốc mới (ví dụ: /data/projects). Ví dụ, câu lệnh sau sẽ tạo một người dùng có tên là 'anusha' với thư mục gốc là '/data/projects'. 

# useradd -d /data/projects anusha
# passwd anusha

Bạn có thể xem thư mục gốc của người dùng và các thông tin khác về người dùng như user id, group id, shell và bình luận.

# cat /etc/passwd | grep anusha
anusha:x:1001:1001::/data/projects:/bin/bash

Tạo người dùng với Home Directory trong Linux

Tạo người dùng với User ID Cụ thể

Trong Linux, mỗi người dùng có một User ID (UID) riêng biệt. Mặc định, khi chúng ta tạo một tài khoản người dùng mới trong Linux, nó sẽ gán các user id là 500, 501, 502 và tiếp tục như vậy...

Nhưng chúng ta có thể tạo người dùng với User ID tùy chỉnh bằng cách sử dụng tùy chọn ‘-u‘. Ví dụ, câu lệnh sau sẽ tạo một người dùng có tên ‘navin‘ với User ID tùy chỉnh là ‘1002‘.

# useradd -u 1002 navin

Bây giờ, hãy xác nhận rằng người dùng đã được tạo với User ID đã xác định (1002) bằng cách sử dụng câu lệnh sau.

# cat /etc/passwd | grep navin
navin:x:1002:1002::/home/navin:/bin/bash

Tạo người dùng với ID người dùng trong Linux

LƯU Ý: Hãy đảm bảo giá trị của User ID là duy nhất so với bất kỳ người dùng nào khác đã được tạo trong hệ thống.

Tạo người dùng với Group ID cụ thể

Tương tự, mỗi người dùng có một GID (Group Identifier) riêng của họ. Chúng ta cũng có thể tạo người dùng với các Group ID cụ thể bằng cách sử dụng tùy chọn -g.

Ở ví dụ này, chúng ta sẽ thêm một người dùng có tên ‘tarunika‘ với UID và GID cụ thể đồng thời với sự trợ giúp của các tùy chọn ‘-u‘ và ‘-g‘. 

# useradd -u 1005 -g tecmint tarunika
Bây giờ, hãy xem User ID và Group ID được gán trong tệp ‘/etc/passwd‘. 
# cat /etc/passwd | grep tarunika
tarunika:x:1005:1000::/home/tarunika:/bin/bash

Để xác nhận GID của người dùng, sử dụng lệnh id:

# id -gn tarunika

Tạo người dùng với ID nhóm trong Linux

Thêm người dùng vào nhiều nhóm

Tùy chọn ‘-G‘ được sử dụng để thêm một người dùng vào các nhóm bổ sung. Mỗi tên nhóm được phân tách bằng dấu phẩy, không có khoảng trống.

Ở ví dụ này, chúng tôi đang thêm người dùng ‘tecmint‘ vào nhiều nhóm như admins, webadmin và developers. 

# groupadd admins
# groupadd webadmin
# groupadd developers
# usermod -a -G admins,webadmin,developers tecmint
# useradd -G admins,webadmin,developers paddy

Tiếp theo, xác nhận rằng người dùng đã được gán vào nhiều nhóm bằng lệnh id.

# id tecmint
uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

Thêm người dùng vào nhóm trong Linux

Thêm người dùng mà không có thư mục gốc

Trong một số tình huống, chúng ta không muốn gán thư mục gốc cho một người dùng vì lý do bảo mật, như vậy khi một người dùng đăng nhập vào hệ thống vừa khởi động, thư mục gốc của họ sẽ là /root. Nếu người dùng đó sử dụng lệnh su, thư mục đăng nhập của họ sẽ là thư mục gốc của người dùng trước đó.

Để tạo người dùng mà không có thư mục gốc, được sử dụng tùy chọn ‘-M‘. Ví dụ, câu lệnh sau sẽ tạo một người dùng có tên ‘shilpi‘ mà không có thư mục gốc. 

# useradd -M shilpi

Bây giờ, hãy xác nhận rằng người dùng đã được tạo mà không có thư mục gốc, sử dụng lệnh ls.

# ls -l /home/shilpi
ls: cannot access /home/shilpi: No such file or directory

Tạo người dùng không có thư mục chính trong Linux

Tạo người dùng với ngày hết hạn tài khoản

Mặc định, khi thêm người dùng với câu lệnh ‘useradd‘, tài khoản người dùng không bao giờ hết hạn, tức là ngày hết hạn được đặt thành 0.

Tuy nhiên, chúng ta có thể đặt ngày hết hạn bằng cách sử dụng tùy chọn ‘-e‘, trong định dạng YYYY-MM-DD. Điều này dùng để tạo tài khoản tạm thời trong một khoảng thời gian nhất định.

Ví dụ tạo một người dùng có tên ‘aparna‘ với ngày hết hạn tài khoản là ngày 27 tháng 8 năm 2021.

# useradd -e 2021-08-27 aparna

Tiếp theo, xác nhận tuổi của tài khoản và mật khẩu bằng lệnh ‘chage‘ cho người dùng ‘aparna‘.

# chage -l aparna
Last password change : Jun 25, 2021
Password expires : never
Password inactive : never
Account expires : Aug 27, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires

Tạo người dùng với ngày hết hạn tài khoản

Tạo người dùng với ngày hết hạn mật khẩu

Đối số ‘-f‘ được sử dụng để xác định số ngày sau khi mật khẩu hết hạn. Giá trị 0 sẽ vô hiệu hóa tài khoản người dùng ngay sau khi mật khẩu hết hạn. Mặc định, giá trị hết hạn mật khẩu được đặt là -1 là không bao giờ hết hạn.

Ví dụ đặt ngày hết hạn mật khẩu là 45 ngày cho người dùng ‘mansi‘ bằng tùy chọn ‘-e‘ và ‘-f‘.

# useradd -e 2014-04-27 -f 45 mansi

Tạo người dùng với mật khẩu ngày hết hạn

Thêm một người dùng với nhận xét tùy chỉnh

Tùy chọn ‘-c‘ cho phép thêm nhận xét tùy chỉnh, như tên đầy đủ của người dùng, số điện thoại, v.v. vào tệp /etc/passwd. Nhận xét được thêm dưới dạng một dòng duy nhất mà không có khoảng trắng.

Ví dụ, câu lệnh sau sẽ thêm một người dùng ‘mansi‘ và chèn tên đầy đủ của người dùng ( Manis Khurana) vào trường nhận xét.

# useradd -c "Manis Khurana" mansi

Bạn có thể xem nhận xét của mình trong tệp ‘/etc/passwd‘ trong phần nhận xét.

# tail -1 /etc/passwd
mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

Tạo người dùng với tên đầy đủ

Tạo một Shell đăng nhập cho người dùng trong Linux

Thêm người dùng mà không liên quan đến shell đăng nhập hoặc đôi khi cần gán các shell khác nhau cho người dùng. Chúng ta gán các shell đăng nhập khác nhau cho mỗi người dùng bằng tùy chọn ‘-s‘. 

Ở ví dụ này, thêm một người dùng ‘tecmint‘ mà không có shell đăng nhập, tức là shell ‘/sbin/nologin‘.

# useradd -s /sbin/nologin tecmint

Bạn kiểm tra shell đã được gán cho người dùng trong tệp ‘/etc/passwd‘.

# tail -1 /etc/passwd
tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

Tạo người dùng với Login Shell

Thêm một người dùng với thư mục gốc cụ thể, Shell mặc định và nhận xét tùy chỉnh

Tạo một người dùng có tên 'ravi' với thư mục chủ '/var/www/tecmint', shell mặc định là '/bin/bash' và thêm thông tin bổ sung về người dùng. 

# useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

Tạo người dùng với Home Directory và Login Shell

Trong lệnh trên, tùy chọn '-m -d' tạo một người dùng với thư mục chủ được chỉ định. Tùy chọn '-s' thiết lập shell mặc định của người dùng là '/bin/bash'. Tùy chọn '-c' thêm thông tin bổ sung về người dùng. Đối số '-U' tạo/thêm một nhóm có cùng tên với người dùng.

Thêm một người dùng với thư mục gốc, Shell tùy chỉnh, bình luận tùy chỉnh và UID/GID

Xác định shell là '/bin/zsh' và UID/GID tùy chỉnh cho người dùng 'tarunika'. Trong đó, tùy chọn '-u' xác định UID mới cho người dùng (ví dụ: 100), và tùy chọn '-g' xác định GID (ví dụ: 1000).

# useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

Tạo người dùng với UID và GID

Thêm một người dùng với thư mục gốc, không có Shell, bình luận tùy chỉnh và ID người dùng

Chúng ta vô hiệu hóa shell đăng nhập cho người dùng có tên 'avishek' với ID người dùng tùy chỉnh (1019).

Tùy chọn ‘-s’ thêm shell mặc định /bin/bash, nhưng trong trường hợp này, đặt shell đăng nhập là ‘/usr/sbin/nologin’. Có nghĩa là người dùng ‘avishek’ sẽ không thể đăng nhập vào hệ thống.

# useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

Tạo User với UID và Nologin

Thêm người dùng với thư mục chủ, Shell, Skeleton/Comment tùy chỉnh và ID người dùng

Sự thay đổi duy nhất trong lệnh này là sử dụng tùy chọn ‘-k‘ để đặt thư mục skeleton tùy chỉnh. Ví dụ: /etc/custom.skell, không phải là thư mục mặc định /etc/skel. Chúng ta sử dụng tùy chọn ‘-s‘ để xác định các shell khác nhau. Ví dụ: /bin/tcsh cho người dùng ‘navin‘.

# useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

Tạo người dùng với Shell và UID

Thêm người dùng mà không có thư mục chủ, không có shell, không có nhóm và comment tùy chỉnh

Sử dụng tùy chọn ‘-M‘ để tạo một người dùng mà không có thư mục chủ của người dùng. Đối số ‘-N‘ để hệ thống chỉ tạo một tên người dùng (không kèm nhóm). Đối số ‘-r‘ để tạo một người dùng hệ thống. 

# useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Tạo người dùng với NoLogin và Nhóm

Để biết thêm thông tin và tùy chọn về lệnh useradd, chạy lệnh ‘useradd‘ trên cửa sổ terminal để xem các tùy chọn có sẵn.

# useradd

Mọi người cũng tìm kiếm: ubuntu useradd, lệnh nào cho phép ta tạo một account user mới trên hệ thống, useradd, lệnh tạo user trong linux, useradd linux.