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:
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.
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.
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:
/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.
/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.
/etc/group: File này giữ thông tin nhóm cho mỗi tài khoản.
/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ệnh | Miêu tả |
---|---|
useradd | Thêm các tài khoản cá nhân tới hệ thống. |
usermod | Chỉnh sửa các thuộc tính của tài khoản cá nhân. |
userdel | Xóa các tài khoản cá nhân từ hệ thống. |
groupadd | Thêm các tài khoản nhóm tới hệ thống. |
groupmod | Chỉnh sửa các thuộc tính của tài khoản nhóm. |
groupdel | Dỡ 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ọn | Miêu tả |
---|---|
-g GID | Giá trị số của ID nhóm. |
-o | Tùy chọn này cho phép để thêm nhóm với GID không duy nhất. |
-r | Dấ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. |
groupname | Tê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ọn | Miêu tả |
---|---|
-d homedir | Xác định thư mục chính cho tài khoản. |
-g groupname | Xác định một tài khoản nhóm cho tài khoản cá nhân này. |
-m | Tạo thư mục chính nếu nó không tồn tại. |
-s shell | Xác định shell mặc định cho tài khoản cá nhân này. |
-u userid | Bạn có thể xác định ID cá nhân cho tài khoản này. |
accountname | Tê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.
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube: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:
- Quản lý File
- Thư mục
- Quyền truy cập File
- Cài đặt Unix/Linux
- Các tiện ích cơ bản
- Các Pipe & Bộ lọc (Filter)