Quản trị các nhóm tài khoản trong Linux

Chia sẻ
Quản trị sự truy cập các tài nguyên của user thông qua nhóm là một chiến lược đã được thử nghiệm và chứng tỏ rằng nó hoạt động tốt
Là con người, khi chúng ta phát hiện một cái gì mới, não chúng ta bắt đầu hoạt động. Đầu tiên chúng ta sẽ thấy tính năng của một đối tượng nào đó. Sau đó chúng ta đưa vật kia vào một nhóm và giúp chúng ta biết cách phân loại đối tượng trong tương lai. Ví dụ nếu một đứa trẻ phát hiện một cây búa, chúng sẽ nhận thức được cái búa được dùng để đóng đinh và có thể gây đau cho chúng. Sau đó chúng đưa cây búa vào một nhóm, một số đứa trẻ coi cây búa là một công cụ và nó chỉ được sử dụng khi cần, một số đứa trẻ khác lại coi cây búa như đồ chơi. Mặc dù chức năng của cây búa là không đổi, vì vậy hãy để ý tới lũ trẻ của bạn. Ví dụ trên đã khái quát về tác dụng của nhóm
Nhóm trong Linux rất quan trọng vì mỗi users được system định nghĩa dành cho mỗi công việc khác nhau. Nhóm các users theo chức năng, hoặc theo quyền truy cập là một cách hoàn hảo để đảm bảo admin có những đặc quyền riêng cho admin và những user bình thường chỉ có thể làm những công việc mà họ được phân công. Người dùng được chia thành 3 loại riêng biệt để quá trình chia nhóm được dễ dàng hơn một chút

  • Superusers – Chịu trách nhiệm cho việc quản trị hệ thống. User root là một superuser chính và có UID 0
  • System users – Những tài khoản người dùng được tạo ra bởi hệ thống để chạy các processes hoặc daemons. Mỗi users có những files và resources riêng. UIDs nằm trong khoảng từ 1 – 999
  • Regular users – Tài khoản để hoàn thiện những công việc thường ngày. Họ bị giới hạn trong quyền truy cập vào hệ thống và phải dùng quyền của sudoer để thực hiện những tác vụ quản trị. UID thường lớn hơn 1000

Nếu bạn muốn biết chi tiết hơn về user và nhóm cơ bản, bạn có thể xem bài quản lí tài khoản với UIDs hay GIDs. Với phần còn lại của bài này, tôi sẽ tập trung vào việc tạo nhóm, phân quyền và các đoạn mã định danh, cũng như cấp quyền superuser cho một nhóm

Primary Group

Tất cả user được gán vào primary group theo mặc định. Với tài khoản local, primary GID giống như cái được ghi trong file /etc/passwd. Điều này có nghĩa rằng user name và group name là giống nhau. Điều này có nghĩa là user là một thành viên duy nhất của group. Ví dụ

[root@server ~]# useradd user01
[root@server ~]# su - user01
[user01@server ~]$ id
uid=1002(user01) gid=1002(user01) groups=1002(user01) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Tác dụng phụ của thiết kế này là nó làm cho việc quản lý quyền đối với tệp đơn giản hơn nhiều cho người dùng và quản trị viên. Nếu bạn muốn đưa người dùng vào một nhóm cho một mục đích chung, bạn cần tạo một nhóm và sau đó thêm những người dùng mong muốn cho nhóm đó.

Group creation

Để demo, tôi sẽ tạo group có tên là demogroup. Chúng ta có thể thất nhóm đã được tạo ra và được gán GID 1007

[root@server ~]# groupadd demogroup
[root@server ~]# tail /etc/group
cockpit-wsinstance:x:975:
flatpak:x:974:
rngd:x:973:
admin:x:1001:
user01:x:1002:
user02:x:1003:
user03:x:1004:
user04:x:1005:
user05:x:1006:
demogroup:x:1007:

Sau đó hãy chuyển GID sang 10007

[tcarrigan@server ~]$ sudo groupmod -g 10007 demogroup
Output Omitted
[tcarrigan@server ~]$ sudo tail /etc/group
Output Omitted
demogroup:x:10007:
Sử dụng câu lệnh sau để sửa GID nếu cần

groupmod -g GID groupname

Nếu bạn cần sửa tên group. Sử dụng lệnh

groupmod -n NEWNAME oldname

Sau đây là ví dụ

[tcarrigan@server ~]$ sudo groupmod -n usergroup demogroup
[tcarrigan@server ~]$ sudo tail /etc/group
Output Omitted
usergroup:x:10007:

Chúng tôi đã để demogroup thành usergroupVà GID của group được giữ nguyên là 1007

Adding users to a group

Chúng ta sẽ thêm một số user vào nhóm usergroup

[tcarrigan@server ~]$ sudo usermod -g usergroup user01
[tcarrigan@server ~]$ sudo usermod -g usergroup user02
[tcarrigan@server ~]$ sudo usermod -g usergroup user03
[tcarrigan@server ~]$ sudo usermod -g usergroup user04
[tcarrigan@server ~]$ sudo usermod -g usergroup user05

Sau đó chúng ta lgin vào user01 và kiểm tra ID của chúng

[user01@server ~]$ id
uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Supplementary group

Một user có thể thuộc về một group bổ sung
Ví dụ để add wheel là group bổ sung cho user01

[tcarrigan@server ~]$ sudo usermod -aG wheel user01
[tcarrigan@server ~]$ su - user01
Output Omitted
[user01@server ~]$ id
uid=1002(user01) gid=10007(usergroup) groups=10007(usergroup),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Sudo group config

Nếu bạn muốn gán quyền admin cho nhóm usergroup. Bạn cần tạo ra files /etc/sudoers.d/usergroup 

[root@server ~]# echo "%usergroup ALL=(ALL) ALL" >> /etc/sudoers.d/usergroup
[root@server ~]# su - user02
[user02@server ~]$ sudo cat /etc/sudoers.d/usergroup
[sudo] password for user02:
%usergroup ALL=(ALL) ALL

Bạn có thể thấy user02 nằm trong nhóm usergroup đã có quyền admin
Nguồn: Redhat

Chia sẻ