Hướng dẫn tạo, chỉnh sửa và xóa tài khoản người dùng trên Linux bằng dòng lệnh

Hướng dẫn tạo, chỉnh sửa và xóa tài khoản người dùng trên Linux bằng dòng lệnh

Quản trị tài khoản người dùng là một phần không thể thiếu trong công việc hàng ngày của bất kỳ quản trị viên hệ thống Linux nào. Bài viết này sẽ hướng dẫn bạn cách tạo tài khoản mới, chỉnh sửa thông tin người dùng, và xóa tài khoản không còn sử dụng, tất cả đều được thực hiện qua dòng lệnh bằng các công cụ mặc định sẵn có trên hệ thống Linux: useraddusermod và userdel. Đây là những tiện ích mạnh mẽ giúp bạn quản lý người dùng một cách hiệu quả, bảo mật và linh hoạt trong môi trường máy chủ hoặc hệ thống doanh nghiệp.

Trong hướng dẫn này, bạn sẽ được học:

  • Ý nghĩa của tệp /etc/login.defs
  • Cách tạo tài khoản người dùng với nhiều tùy chọn khác nhau bằng lệnh useradd
  • Cách sửa đổi tài khoản người dùng bằng lệnh usermod
  • Cách xóa tài khoản người dùng bằng lệnh userdel

Yêu cầu phần mềm và Quy ước sử dụng

Danh mục Chi tiết
Hệ thống Phân phối Linux độc lập
Phần mềm Các tiện ích useradd, usermod và userdel (được cài sẵn theo mặc định)
Yêu cầu khác Quyền root để thực hiện các tác vụ quản trị hệ thống

Quy ước cú pháp lệnh:

  • # – yêu cầu các lệnh Linux được thực thi với quyền root, tức là trực tiếp dưới tài khoản root hoặc sử dụng lệnh sudo
  • $ – yêu cầu các lệnh Linux được thực thi với tư cách người dùng thông thường không có đặc quyền

Cài đặt mặc định

Các thiết lập mặc định được áp dụng khi tạo một tài khoản người dùng được định nghĩa trong tệp /etc/login.defs. Nếu bạn xem tệp này trên một hệ thống Fedora, bạn sẽ thấy các tùy chọn được định nghĩa trong đó; những tùy chọn này có thể được ghi đè tại thời điểm chạy bằng các tùy chọn dòng lệnh. Dưới đây là một số định nghĩa:

TÙY CHỌN Ý NGHĨA GIÁ TRỊ MẶC ĐỊNH
CREATE_HOME Xác định xem có nên tạo thư mục home cho người dùng mới hay không yes
ENCRYPT_METHOD Phương pháp mã hóa được dùng để mã hóa mật khẩu SHA512
UID_MIN Giá trị uid tối thiểu được tự động gán cho người dùng tiêu chuẩn 1000
UID_MAX Giá trị uid tối đa được tự động gán cho người dùng tiêu chuẩn 60000
SYS_UID_MIN Giá trị uid tối thiểu được tự động gán cho người dùng “system” 201
SYS_UID_MAX Giá trị uid tối đa được tự động gán cho người dùng “system” 999
PASS_MAX_DAYS Số ngày tối đa mà mật khẩu có thể được sử dụng 99999
PASS_MIN_DAYS Số ngày tối thiểu giữa các lần thay đổi mật khẩu 0
PASS_WARN_AGE Số ngày cảnh báo trước khi mật khẩu hết hạn 7

Những mục trên chỉ là một phần nhỏ của các tùy chọn được định nghĩa trong tệp /etc/login.defs, nhưng đã đủ để cung cấp một ý niệm tổng quát.

Tạo tài khoản người dùng mới

Để tạo một tài khoản người dùng mới trên hệ thống Linux, chúng ta sử dụng tiện ích useradd; cú pháp như sau:

useradd [options] LOGIN

Trong đó, LOGIN là tên đăng nhập của tài khoản sẽ được tạo ra. Giả sử chúng ta muốn tạo một tài khoản mới cho người dùng có tên “newuser”, ta sẽ chạy lệnh:

$ sudo useradd newuser

Lệnh trên sẽ tạo tài khoản “newuser” trên hệ thống; thêm vào đó, một thư mục home sẽ được tạo cho người dùng này, vì theo bảng trên, tùy chọn CREATE_HOME được đặt là yes theo mặc định. Nếu bạn muốn yêu cầu tạo thư mục home cho người dùng mới một cách rõ ràng, bạn có thể dùng tùy chọn -m (viết tắt của –create-home). Ngược lại, nếu muốn tránh việc tạo thư mục này, bạn nên sử dụng tùy chọn -M (viết tắt của –no-create-home).

Sau khi tạo người dùng, cách khuyến nghị để đặt mật khẩu cho người dùng mới là sử dụng tiện ích passwd – nhớ rằng, đây là bước quan trọng!

Chỉ định shell đăng nhập

Một yêu cầu phổ biến khi tạo người dùng mới là chỉ định shell đăng nhập của họ. Việc này được thực hiện bằng cách sử dụng tùy chọn -s (hoặc --shell) và cung cấp đường dẫn đến file nhị phân của shell. Nếu không cung cấp tùy chọn này, shell được xác định bởi biến $SHELL sẽ được sử dụng (trên Fedora thường là /bin/bash). Ví dụ, để chỉ định rõ shell đăng nhập cho người dùng mới, ta chạy:

$ sudo useradd -s /bin/bash newuser

Chỉ định thủ công User UID

Mặc định, khi người dùng mới được tạo ra, UID đầu tiên có giá trị lớn hơn hoặc bằng UID được chỉ định bởi tùy chọn UID_MIN trong tệp /etc/login.defs, lớn hơn bất kỳ UID nào của người dùng khác và nhỏ hơn hoặc bằng giá trị của UID_MAX sẽ được gán cho người dùng đó. Nếu bạn muốn chỉ định thủ công một UID, hãy sử dụng tùy chọn -u (hoặc --uid) và cung cấp giá trị UID bạn muốn sử dụng (phải là một giá trị không âm). Để tạo một người dùng với UID bằng 1005, ta chạy:

$ sudo useradd -u 1005 newuser

Tạo tài khoản người dùng “system”

Nếu không khai báo rõ ràng, lệnh useradd sẽ tạo ra các người dùng “tiêu chuẩn”, tức là người dùng với UID ≥ 1000. Nếu bạn muốn tạo một người dùng “system” (người dùng hệ thống), tức là tài khoản không có thông tin về tuổi tác (aging information) trong tệp /etc/shadow, bạn cần sử dụng tùy chọn -r (hoặc --system). Tài khoản hệ thống thường được sử dụng bởi các daemon hoặc ứng dụng khác, do đó thư mục home sẽ không được tạo cho chúng. UID của tài khoản này được chọn trong khoảng được định nghĩa bởi các tùy chọn SYS_UID_MIN và SYS_UID_MAX trong tệp /etc/login.defs. Để tạo một tài khoản người dùng “system”, ta chạy:

$ sudo useradd -r newuser

Chỉ định các nhóm bổ sung cho người dùng mới

Khi một người dùng tiêu chuẩn được tạo ra, mặc định một nhóm có tên giống như tài khoản đó sẽ được tạo ra và người dùng sẽ được gán vào nhóm đó làm nhóm chính. Nếu bạn muốn chỉ định một loạt các nhóm bổ sung mà người dùng cần thuộc về, bạn hãy sử dụng tùy chọn -G (viết tắt của --groups) và cung cấp danh sách nhóm, ngăn cách nhau bằng dấu phẩy. Ví dụ, để thêm người dùng vào nhóm wheel (nhóm này cho phép người dùng sử dụng lệnh sudo), ta chạy:

$ sudo useradd -G wheel newuser

Sửa đổi tài khoản người dùng bằng tiện ích usermod

Khi tiện ích useradd được sử dụng để tạo một tài khoản người dùng, tiện ích usermod (như tên gọi cho thấy) được dùng để sửa đổi tài khoản người dùng đã tồn tại. Cú pháp của lệnh usermod tương tự như useradd:

usermod [options] LOGIN

Dưới đây là một số ví dụ về cách sử dụng tiện ích này.

Thêm người dùng hiện có vào các nhóm bổ sung

Như đã thấy ở phần tạo người dùng, chúng ta có thể thêm người dùng vào các nhóm bổ sung bằng tùy chọn -G của lệnh useradd. Tuy nhiên, nếu tài khoản đã tồn tại và muốn thêm vào các nhóm phụ, bạn cần sử dụng tùy chọn -a (viết tắt của –append) kết hợp với -G và đưa vào danh sách các nhóm cần thêm. Ví dụ, để thêm người dùng vào nhóm newgroup, ta chạy:

$ sudo usermod -G -a newgroup user

Chú ý: Tùy chọn -a phải được sử dụng cùng với -G. Nếu chỉ sử dụng -G mà không có -a, danh sách các nhóm bổ sung mà người dùng tham gia sẽ bị ghi đè hoàn toàn bằng danh sách mới được chỉ định.

Khóa và mở khóa mật khẩu người dùng

Đôi khi, bạn có thể muốn khóa mật khẩu của người dùng để ngăn họ đăng nhập bằng mật khẩu đó. Trong những trường hợp như vậy, ta có thể sử dụng tùy chọn -L (viết tắt của –lock) với lệnh usermod:

$ sudo usermod -L newuser

Khi thực hiện lệnh này, ký tự ! sẽ được thêm vào trước mật khẩu đã mã hóa, từ đó vô hiệu hóa nó:

newuser:!$6$ISaqNDTydf51adbj$6ciHWBByfhe9k0sfg8Cky2F3HhgxdfMtmrWyq0323rvuCUu/un0d4rldwI0ELj4aSyFv0.cki3c/oLJFFNGyt/:18602:0:99999:7:::

Để mở khóa mật khẩu của người dùng, bạn cần sử dụng tùy chọn -U (hoặc –unlock):

$ sudo usermod -U newuser

Thay đổi uid của người dùng và gid của nhóm chính

Nếu cần thay đổi uid của một người dùng đã tồn tại, hãy sử dụng tùy chọn -u của lệnh usermod và cung cấp giá trị uid mới. Lưu ý, giá trị uid mới không được trùng với uid hiện có của bất kỳ người dùng nào khác; nếu không, bạn sẽ nhận được thông báo lỗi:

$ sudo usermod -u 1000 newuser
usermod: UID '1000' already exists

Khi thay đổi uid của người dùng, tất cả các tập tin trong thư mục home của người dùng đó cũng sẽ được cập nhật uid tương ứng, ngoại trừ khi thư mục home có uid khác so với uid hiện tại của người dùng.

Bạn cũng có thể muốn thay đổi gid (ID nhóm) của nhóm chính của người dùng (nhóm này được tạo cùng với tài khoản người dùng, thường có gid giống với uid). Để thực hiện điều này, sử dụng lệnh usermod với tùy chọn -g (hoặc –gid); lưu ý rằng nhóm mới phải đã tồn tại:

$ sudo usermod -g 1006 newuser

Khi thay đổi nhóm chính, các tập tin trong thư mục home (được sở hữu bởi nhóm cũ) sẽ tự động được chuyển sang nhóm mới.

Thay đổi tên đăng nhập của người dùng

Để thay đổi tên đăng nhập của một người dùng, bạn sử dụng tùy chọn -l (hoặc –login) của lệnh usermod, cung cấp tên đăng nhập mới làm đối số đầu tiên và tên đăng nhập hiện tại làm đối số thứ hai. Giả sử bạn muốn thay đổi tên đăng nhập từ “newuser” thành “linuxconfig”, ta chạy:

$ sudo usermod -l linuxconfig newuser

Lưu ý rằng lệnh trên chỉ thay đổi tên đăng nhập của người dùng, không thay đổi bất kỳ thứ gì khác. Thư mục home của người dùng sẽ không được đổi tên. Nếu bạn muốn thay đổi thêm các thành phần khác, hãy tham khảo mục sau.

Thay đổi thư mục home của người dùng và chuyển tất cả các tập tin

Đôi khi, bạn cần thay đổi thư mục home của một người dùng. Để thực hiện việc này, hãy sử dụng lệnh usermod với tùy chọn -d (viết tắt của –home) và cung cấp đường dẫn đến thư mục mới. Nếu muốn chuyển tất cả các tập tin hiện có từ thư mục cũ sang thư mục mới, bạn cần thêm tùy chọn -m (viết tắt của –move-home). Thư mục home mới sẽ chỉ được tạo nếu thư mục hiện tại tồn tại; quyền sở hữu tập tin, chế độ truy cập, ACL và các thuộc tính mở rộng sẽ được cập nhật theo cấu hình mới, nhưng có thể cần thêm một số chỉnh sửa thủ công. Ví dụ, để thay đổi thư mục home của người dùng “newuser” từ /home/newuser sang /home/newuser_new và chuyển tất cả các tập tin, ta chạy:

$ sudo usermod -d /home/newuser_new -m newuser

Xóa tài khoản người dùng bằng tiện ích userdel

Sau khi đã tìm hiểu cách tạo và sửa đổi tài khoản người dùng, giờ chúng ta sẽ xem cách dùng tiện ích userdel để xóa tài khoản và tất cả các tập tin liên quan. Cú pháp của lệnh userdel cũng tương tự như useradd và usermod:

userdel [options] LOGIN

Tiện ích này có ít tùy chọn hơn so với useradd và usermod vì mục đích sử dụng khá đơn giản. Trường hợp phổ biến nhất là xóa tài khoản cùng với tất cả các tập tin nằm trong thư mục home và thư mục spool của người dùng, cũng như chính các thư mục đó. Để làm việc này, hãy sử dụng tùy chọn -r (viết tắt của –remove). Giả sử bạn muốn xóa tài khoản “newuser” cùng với thư mục home và thư mục spool, ta chạy:

$ sudo userdel -r newuser

Nếu người dùng đang đăng nhập, hệ thống sẽ trả về lỗi và từ chối xóa. Nếu muốn bắt buộc thao tác này, cần kết hợp thêm tùy chọn -f (viết tắt của –force). Tuy nhiên, hãy cẩn trọng khi sử dụng tùy chọn này vì nó có thể khiến hệ thống trở nên không nhất quán.

Kết luận

Thông qua hướng dẫn này, bạn đã nắm vững cách sử dụng ba tiện ích dòng lệnh quan trọng trong Linux – useraddusermod và userdel – để thực hiện các thao tác tạo mới, chỉnh sửa và xóa tài khoản người dùng một cách chính xác và hiệu quả. Các ví dụ thực tế và tình huống cụ thể trong bài giúp bạn áp dụng linh hoạt vào môi trường hệ thống thực tế. Nếu bạn muốn tìm hiểu sâu hơn về các tham số nâng cao, hãy tham khảo tài liệu man page của từng lệnh để khai thác toàn bộ sức mạnh của các công cụ quản trị người dùng này trên Linux.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *