Quản lý người dùng trong Unix/Linux




Có 3 kiểu tài khoản trên một hệ thống Unix:

  1. Tài khoản gốc (Root account): Nó còn được gọi là superuser và sẽ có sự điều khiển tuyệt đối tới hệ thống. Một superuser có thể chạy bất cứ lệnh nào mà không bị hạn chế. Người sử dụng này có thể được ví như người quản lý hệ thống.

  2. Các tài khoản hệ thống: Các tài khoản hệ thống được cần cho các hoạt động riêng trong hệ thống như tài khoản mail và các tài khoản sshd. Những tài khoản này thường được cần cho một số chức năng riêng trên hệ thống của bạn, và bất cứ sự chỉnh sửa nào tới chúng có thể ảnh hưởng bất lợi tới hệ thống.

  3. Các tài khoản người dùng cá nhân: Các tài khoản này cung cấp sự truy cập mang tính tương tác tới hệ thống với người dùng và nhóm sử dụng và thường bị giới hạn truy cập vào những file và thư mục có tính chất quan trọng.

Unix hỗ trợ một khái niệm là tài khoản nhóm Group Account mà tạo nhóm một số tài khoản một cách logic. Mỗi tài khoản sẽ là một phần của bất cứ tài khoản nhóm nào. Nhóm trong Unix đóng vai trò quan trọng trong việc thực hiện sự quản lý về tiến trình và cho phép tới file.

Quản lý người và nhóm sử dụng trong Unix/Linux

Có 4 file chính quản lý người sử dụng:

  1. /etc/passwd: Giữ tài khoản người dùng và thông tin mật khẩu. File này giữ các thông tin quan trọng về các tài khoản trên hệ thống Unix.

  2. /etc/shadow: Giữ mật khẩu được biên thành mật mã của tài khoản tương ứng. Không phải tất cả các hệ thống đều hỗ trợ file này.

  3. /etc/group: File này giữ thông tin nhóm cho mỗi tài khoản.

  4. /etc/gshadow: File này giữ các thông tin tài khoản nhóm bảo mật.

Bạn có thể kiểm tra tất cả các file trên với lệnh cat.

Dưới đây là các lệnh có trong phần lớn các hệ thống Unix để tạo và quản lý các tài khoản cá nhân và nhóm.

LệnhMiêu tả
useraddThêm các tài khoản cá nhân tới hệ thống.
usermodChỉnh sửa các thuộc tính của tài khoản cá nhân.
userdelXóa các tài khoản cá nhân từ hệ thống.
groupaddThêm các tài khoản nhóm tới hệ thống.
groupmodChỉnh sửa các thuộc tính của tài khoản nhóm.
groupdelDỡ bỏ các tài khoản nhóm khỏi hệ thống.

Bạn có thể sử dụng các lệnh trong Trang trợ giúp (Manpage Help) để kiểm tra cú pháp đầy đủ cho mỗi lệnh được đề cập ở trên.

Tạo một nhóm trong Unix/Linux

Bạn có thể sẽ cần tạo các nhóm trước khi tạo bất kỳ một tài khoản nào, nếu không thì bạn phải sử dụng các nhóm đang tồn tại trên hệ thống của bạn. Bạn sẽ có tất cả các nhóm được liệt kê trong tệp /etc/groups.

Tất cả các nhóm mặc định sẽ là các nhóm tài khoản cụ thể trên hệ thống và nó không được đề nghị để sử dụng chúng cho các tài khoản thông thường. Vì thế, dưới đây là cú pháp để tạo một nhóm tài khoản mới.

 groupadd [-g gid [-o]] [-r] [-f] groupname

Bảng dưới liệt kê chi tiết các tham số:

Tùy chọnMiêu tả
-g GIDGiá trị số của ID nhóm.
-oTùy chọn này cho phép để thêm nhóm với GID không duy nhất.
-rDấu hiệu này chỉ thị sự thêm nhóm tới tài khoản hệ thống.
-f Tùy chọn này khiến cho nó chỉ thoát ra với trạng thái thành công nếu nhóm đã xác định đã tồn tại. Với –g, nếu GID đã tồn tại, thì GID khác (duy nhất) được chọn.
groupnameTên nhóm thực sự được tạo.

Nếu bạn không xác định bất cứ tham số nào thì hệ thống sẽ sử dụng các giá trị mặc định.

Ví dụ sau sẽ tạo một nhóm developers với các giá trị mặc định, mà được chấp thuận bởi hầu hết các nhà quản lý.

$ groupadd developers

Chỉnh sửa một nhóm trong Unix/Linux

Để chỉnh sửa một nhóm, sử dụng cú pháp lệnh groupmod:

$ groupmod -n new_modified_group_name old_group_name

Để thay đổi tên nhóm developers_2 thành deverloper, bạn gõ như sau:

$ groupmod -n developer developer_2

Dưới đây là cách thay đổi GID thành 545:

$ groupmod -g 545 developer

Xóa một nhóm trong Unix/Linux

Để xóa một nhóm đang tồn tại, tất cả thứ bạn cần làm là lệnh groupdel và tên nhóm đó. Để xóa nhóm developer, lệnh là:

$ groupdel developer

Lệnh này chỉ gỡ bỏ nhóm, không phải bất kỳ file nào liên quan tới nhóm. Các file là vẫn có thể truy cập được bởi người sở hữu của nó.

Tạo một tài khoản cá nhân trong Unix/Linux

Hãy cùng chúng tôi xem cách tạo một tài khoản cá nhân mới trên hệ thống Unix của bạn. Dưới đây là cú pháp để tạo một tài khoản cá nhân:

useradd -d homedir -g groupname -m -s shell -u userid accountname

Bảng dưới liệt kê chi tiết các tham số:

Tùy chọnMiêu tả
-d homedirXác định thư mục chính cho tài khoản.
-g groupnameXác định một tài khoản nhóm cho tài khoản cá nhân này.
-mTạo thư mục chính nếu nó không tồn tại.
-s shellXác định shell mặc định cho tài khoản cá nhân này.
-u useridBạn có thể xác định ID cá nhân cho tài khoản này.
accountnameTên tài khoản cá nhân thực sự được tạo ra.

Nếu bạn không xác định bất kỳ tham số nào thì hệ thống sẽ sử dụng các giá trị mặc định. Lệnh useradd chỉnh sửa các tệp /etc/passwd, /etc/shadow, /etc/group và tạo một thư mục chính.

Dưới đây là ví dụ mà sẽ tạo một tài khoản mcmohd thiết lập thư mục chính của nó tới /home/mcmohd và nhóm là developers. Người sử dụng này là Kenny Chính mà được chỉ định cho nó.

$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd

Trước khi thông báo lệnh trên, bảo đảm rằng bạn đã có nhóm developers được tạo bằng lệnh groupadd.

Khi một tài khoản cá nhân được tạo, bạn có thể thiết lập mật khẩu cho nó bằng cách sử dụng lệnh passwd như sau:

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

Khi bạn gõ passwd accountname, nó cung cấp cho bạn tùy chọn để thay đổi mật khẩu được cung cấp nếu bạn là superuser, nếu không thì bạn chỉ có thể thay đổi mật khẩu sử dụng lệnh tương tự nhưng không xác định tên tài khoản của bạn.

Chỉnh sửa một tài khoản

Lệnh usermod cho bạn khả năng để tạo các thay đổi tới một tài khoản cá nhân đang tồn tại từ dòng lệnh. Nó sử dụng các đối số như lệnh useradd, cộng với đối số -l, mà cho phép bạn thay đổi tên tài khoản.

Ví dụ, để thay đổi tên tài khoản cá nhân mcmohd thành mcmohd20 và thay đổi thư mục chính, bạn sẽ cần thông báo lệnh sau:

$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

Xóa một tài khoản trong Unix/Linux

Lệnh userdel có thể được sử dụng để xóa một tài khoản cá nhân đang tồn tại. Lệnh này là rất nguy hiểm nếu không được sử dụng với sự cẩn trọng.

Chỉ có một đối số hoặc một tùy chọn có sẵn cho lệnh: .r, để gỡ bỏ thư mục chính và mail của tài khoản.

Ví dụ, để gỡ bỏ tài khoản mcmohd20, bạn cần thông báo lệnh sau:

$ userdel -r mcmohd20

Nếu bạn muốn giữ thư mục chính cho các mục sau, bạn không sử dụng tùy chọn .r. Bạn có thể gỡ bỏ thư mục chính vào lần sau.

Loạt bài hướng dẫn học UNIX cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học UNIX phổ biến khác tại VietJack: