15 ví dụ về lệnh useradd - Cách tạo người dùng trong Linux

Chúng ta đều biết các lệnh phổ biến nhất được gọi là 'useradd' hoặc 'adduser' trong Linux. Đôi khi, một System Administrator của Linux được yêu cầu tạo tài khoản người dùng trên Linux với các thuộc tính, giới hạn hoặc bình luận cụ thể.

Trong Linux, lệnh 'useradd' là tiện ích cấp thấp được sử dụng để thêm hoặc tạo tài khoản người dùng trong Linux và các hệ điều hành tương tự Unix khác. Lệnh 'adduser' rất giống lệnh 'useradd', vì nó chỉ là một liên kết tượng trưng đến nó.

Trong một số bản phân phối Linux, lệnh 'useradd' có thể có phiên bản khác nhau một chút. Tôi đề nghị đọc tài liệu trước khi sử dụng hướng dẫn của chúng tôi để tạo tài khoản người dùng mới trong Linux.

Khi chúng ta chạy lệnh 'useradd' trong terminal Linux, nó thực hiện các nhiệm vụ chính sau:

  • Nó 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 ra.
  • 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 lệnh Useradd

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

useradd [options] username

Trong bài viết này, chúng ta sẽ thực hiện 15 lệnh 'useradd' thông thường nhất được sử dụng với các ví dụ thực hành trong Linux.

1. Cách thêm người dùng mới trong Linux

Để thêm hoặc tạo người dùng mới, bạn phải sử dụng lệnh 'useradd' hoặc 'adduser' theo sau bởi 'tên người dùng'. 'Tên người dùng' là tên đăng nhập mà người dùng sử 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, và chưa tồn tại trên hệ thống.

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

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 tạo trong trạng thái bị 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
Tạo người dùng trong Linux

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

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
Xem Thông tin Người dùng trong Linux
Xem thông tin người dùng trong Linux

Mục nhập trên đó chứa một tập hợp bảy trường được ngăn cách bởi dấu hai chấm, mỗi trường có ý nghĩa riêng của nó.

Hãy xem những 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ó từ 1 đến 32 ký tự.
  • Mật khẩu – Mật khẩu của 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.
  • ID người dùng (UID) – Mỗi người dùng phải có Mã Định Danh Người dùng (UID), viết tắt của Mã Số Nhận Diện Người Dùng. 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 đến 99 được dành riêng cho các tài khoản định nghĩa trước khác. Ngoài ra, các UID trong khoảng từ 100 đến 999 được dành riêng cho các tài khoản và nhóm hệ thống.
  • ID nhóm (GID) – ID Nhóm Chính (GID), viết tắt của Mã Số Nhận Diện Nhóm, được lưu trữ trong tệp ‘/etc/group‘.
  • Thông tin người dùng – Trường này là tùy chọn và cho phép bạn xác định thông tin bổ sung về người dùng, chẳng hạn như họ và tên đầy đủ của người dùng. Thông tin này có thể được điền bằng lệnh finger.
  • Thư mục home – Vị trí tuyệt đối của thư mục home của người dùng.
  • Shell – Vị trí tuyệt đối của shell của người dùng, ví dụ /bin/bash.

2. Cách tạo người dùng bằng thư mục chính khác

Mặc định, lệnh 'useradd' tạo thư mục home 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 home mặc định cho người dùng 'tecmint' là '/home/tecmint'.

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

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

Bạn có thể xem thư mục home của người dùng và thông tin về người dùng khác, chẳng hạn như ID người dùng, ID nhóm, shell và bình luận bằng cách sử dụng lệnh 'cat' sau.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash
Tạo Người dùng với Thư mục Home trong Linux
Tạo người dùng với thư mục Home trong Linux

3. Cách tạo người dùng với User ID cụ thể

Trong Linux, mỗi người dùng có một Mã Định Danh Người dùng (UID) riêng. Mặc định, khi chúng ta tạo một tài khoản người dùng mới trong Linux, nó gán ID người dùng 500501502, và như vậy.

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

useradd -u 1002 navin

Bây giờ, hãy kiểm tra xem người dùng được tạo với userid đã xác định (1002) bằng lệnh sau.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash
Tạo Người dùng với User ID trong Linux
Tạo người dùng với User ID trong Linux

4. Cách tạo người dùng với Group ID cụ thể

Tương tự, mỗi người dùng đều có GID (Nhóm Định Danh). Chúng ta cũng có thể tạo người dùng với các ID nhóm cụ thể bằng cách sử dụng tùy chọn ''-g''.

Trong ví dụ này, chúng ta sẽ thêm một người dùng 'tarunika' với một UID và GID cụ thể cùng một lúc bằng cách sử dụng các tùy chọn ''-u'' và ''-g''.

useradd -u 1005 -g tecmint tarunika

Bây giờ, kiểm tra ID người dùng và ID nhóm được gán trong tệp '/etc/passwd'.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

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

id -gn tarunika
Tạo Người dùng với Group ID trong Linux
Tạo người dùng với Group ID trong Linux

5. Cách 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 ngăn cách bằng dấu phẩy, không có khoảng trắng chèn giữa.

Trong ví dụ này, chúng ta đ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 minh rằng nhiều nhóm được gán cho người dùng với 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 vào nhóm trong Linux

6. Cách thêm người dùng không cần thư mục Home

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

Để tạo người dùng mà không có thư mục home của họ, ta sử dụng tùy chọn ''-M''. Ví dụ, lệnh sau sẽ tạo người dùng 'shilpi' mà không có thư mục home.

useradd -M shilpi

Bây giờ, hãy xác minh rằng người dùng được tạo mà không có thư mục home bằng lệnh 'ls' sau.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Tạo Người dùng mà không có Thư mục Home trong Linux
Tạo người dùng mà không có thư mục Home trong Linux

7. Cách tạo người dùng có ngày hết hạn trong Linux

Mặc định, khi chúng ta thêm người dùng bằng lệnh 'useradd', tài khoản người dùng không hết hạn, có nghĩa là ngày hết hạn của tài khoản được đặt thành '0' (tức là không hết hạn).

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'', có định dạng 'YYYY-MM-DD'. Điều này hữu ích để tạo tài khoản tạm thời trong một khoảng thời gian cụ thể.

Trong ví dụ này, chúng ta tạo một người dùng 'aparna' với ngày hết hạn tài khoản là '27 tháng 8 năm 2021', theo định dạng 'YYYY-MM-DD'.

useradd -e 2021-08-27 aparna

Tiếp theo, xác minh các thông tin về tài khoản và mật khẩu sử dụng lệnh 'chage' cho người dùng 'aparna' sau khi đặt ngày hết hạn tài khoản.

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	: 7
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 tài khoản

8. Cách tạo người dùng có 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' làm cho tài khoản người dùng không hoạt động ngay lập tức 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 thành '-1', có nghĩa là nó không bao giờ hết hạn.

Trong ví dụ này, chúng ta sẽ đặt ngày hết hạn mật khẩu là '45' ngày cho người dùng 'mansi' bằng cách sử dụng các tùy chọn ''-e'' và ''-f''.

useradd -e 2014-04-27 -f 45 mansi
Tạo Người dùng với Ngày Hết hạn Mật khẩu
Tạo người dùng với ngày hết hạn mật khẩu

9. Cách thêm người dùng bằng nhận xét trong Linux

Tùy chọn ''-c'' cho phép bạn thêm bình luận tùy chỉnh, chẳng hạn như họ và tên đầy đủ của người dùng, vào tệp '/etc/passwd'. Bình luận có thể được thêm vào dưới dạng một dòng duy nhất mà không có khoảng trắng.

Ví dụ, 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 bình luận.

useradd -c "Manis Khurana" mansi

Bạn có thể xem bình luận được chèn vào tệp '/etc/passwd' trong phần bình luận sử dụng lệnh 'tail' sau.

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 người dùng với tên đầy đủ

10. Cách tạo Shell đăng nhập người dùng trong Linux

Đôi khi, chúng ta thêm người dùng mà không liên quan gì đến shell đăng nhập hoặc đôi khi chúng ta yêu cầu gán các shell khác nhau cho người dùng của chúng tôi. Chúng ta có thể gán các shell đăng nhập khác nhau cho mỗi người dùng với tùy chọn ''-s''.

Ở đây, ví dụ này, chúng ta sẽ thêm 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 có thể 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 Shell đăng nhập
Tạo người dùng với Shell đăng nhập

11. Cách tạo người dùng với Home, Shell và Comment được chỉ định

Lệnh sau sẽ tạo người dùng 'ravi' với thư mục home '/var/www/tecmint', shell mặc định là '/bin/bash' và 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 Thư mục Home và Shell đăng nhập
Tạo người dùng với thư mục Home và Shell đăng nhập

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

12. Cách tạo người dùng với Home, Shell, Comment, UID/GID được xác định

Lệnh rất giống với lệnh ở trên, nhưng ở đây chúng ta xác định shell là '/bin/zsh' và đặt UID và GID tùy chỉnh cho người dùng 'tarunika'. Tùy chọn ''-u'' xác định UID người dùng mới (tức là '100'), và tùy chọn ''-g'' xác định GID (tức là '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
Tạo người dùng với UID và GID

13. Cách tạo người dùng có Home, No Shell, Comment và UID

Lệnh sau rất giống với hai lệnh trên. Điểm khác biệt duy nhất là ở đây, chúng tôi đã 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 (tức là 1019 ).

Tùy '-s'chọn đặt shell mặc định thành /bin/bash , nhưng trong trường hợp này, chúng tôi đặt shell đăng nhập thành ' /usr/sbin/nologin '. Điều đó 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
Create User with NoLogin and Group
Tạo người dùng bằng UID và Nologin

14. Cách tạo người dùng với Home, Shell, Skeleton và UID được chỉ định

Thay đổi duy nhất trong lệnh này là chúng tôi đã sử dụng tùy '-k'chọn để đặt thư mục khung tùy chỉnh thành /etc/custom.skell thay vì thư mục mặc định, /etc/skel . Chúng tôi cũng sử dụng '-s'tùy chọn này để xác định một shell khác, /bin/tcsh , cho người dùng ' navin '.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "Không có thành viên tích cực của TecMint" -u 1027 navin
Tạo người dùng với Shell và UID

15. Cách tạo người dùng không có Home, Shell hoặc Group bằng Comment

Lệnh sau rất khác với các lệnh khác được giải thích ở trên. Ở đây, chúng tôi đã sử dụng '-M'tùy chọn tạo người dùng mà không cần thư mục chính của người dùng và tùy '-N'chọn này được sử dụng để hướng dẫn hệ thống chỉ tạo tên người dùng (không có nhóm). Tùy chọn này '-r'là để tạo 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 bằng NoLogin và Group

Để biết thêm thông tin và các tùy chọn về “ useradd ”, hãy chạy lệnh “ useradd ” trong terminal để xem các tùy chọn có sẵn

useradd

Nếu bạn muốn sửa đổi các thuộc tính tài khoản người dùng như sửa đổi tên người dùng, ID người dùng (UID), thư mục chính, shell, v.v., hãy sử dụng lệnh usermod.