Hướng dẫn quản lý Người dùng (user) và Nhóm (group) trong Linux

Trong phần trước chúng ta đã tìm hiểu về các câu lệnh lọc dữ liệu file trong Linux. Tiếp theo chúng ta sẽ tìm hiểu về cách quản lý người dùng và nhóm trong Linux nhé!

Người dùng (user) và nhóm (group) là hai khái niệm quan trọng trong hệ thống Linux. Người dùng là các tài khoản cá nhân được tạo ra trên hệ thống, mỗi người dùng có một tên đăng nhập và mật khẩu riêng. Họ định danh cá nhân và có quyền hạn cụ thể trong hệ thống. Nhóm là một cách để tổ chức người dùng thành các tập hợp. Mỗi người dùng có thể thuộc một hoặc nhiều nhóm khác nhau. Nhóm giúp quản lý và chia sẻ tài nguyên một cách hiệu quả, cũng như xác định quyền truy cập trong Linux.

Xem thêm: Các câu lệnh lọc dữ liệu file trong Linux

1. Quản lý user trong Linux

1.1 User là gì?

  • User là tài khoản mà người dùng được cung cấp để thao tác với hệ thống.
  • Mỗi tài khoản sẽ có quyền làm gì và không được làm gì.
  • Tài khoản có quyền cao nhất là root và root có quyền làm tất cả.

1.2 File “/etc/passwd”

  • Là file văn bản chứa thông tin về các tài khoản user trên máy.
  • Mỗi user đều có thể đọc tập tin này nhưng chỉ có user root mới có quyền thay đổi.
  • Cấu trúc file: trong file /etc/passwd được chia làm 4 trường chính và mỗi trường cách nhau bởi dấu hai chấm.
Cấu trúc file

Giải thích:

    • 1 - Tên user ( login name )
    • 2 - Mật khẩu group đã được mã hóa ( vì có file /etc/shadow ) nên mặc định ở đây là x
    • 3 - User ID ( uid )
    • 4 - Group ID ( gid )
    • 5 - Tên mô tả người sử dụng ( comment )
    • 6 - Thư mục home của user ( thường là /home/user_name )
    • 7 - Loại shell sẽ hoạt động khi user login , thường là /bin/bash
  • Khi tạo user thì số UID sẽ được tự động tạo từ UID_MIN và UID_MAX nằm trong file /etc/login.defs và để xem được user tạo ra thì ta tìm kiếm dòng có chỉ số UID nằm trong đó.

[root@localhost ~]# grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

UID_MIN                  1000

UID_MAX                 60000

[root@localhost ~]#

1.3 Tạo, sửa, xóa user

Ta có thể tạo user bằng lệnh “useradd”

useradd [options] [tên user]

  • Options:
    • -m : đồng thời tạo thư mục ở home
    • -d : tên thư mục tạo ở home
    • -c : thêm mô tả về thư mục đó

Ta có thể xóa user bằng lệnh ”userdel”

userdel [options] [tên user]

  • Options:
    • -m : dùng để xóa user
    • -r : xóa user đồng thời xóa cả file mà user đó tạo ra

Ta có thể chỉnh sửa user bằng lệnh “usermod”

usermod [options] [tên user]

  • options
    • -G: Thêm user vào group
    • -c : thay đổi thông tin người dùng
    • -e : thiết lập ngày hết hạn cho người dùng
    • -L : Khóa tài khoản
    • -U : mở khóa tài khoản
    • -s : thay đổi shell script cho user usermod -s /usr/bin/thanhquang thanhquang

Ta có thể tạo hoặc thay đổi password cho user bằng lệnh “passwd”. Chỉ có quyền root mới có thể thực hiện việc này.

passwd [user-name]

1.4 Chuyển đổi user

Khi ta muốn chuyển từ user này sang user khác ta có thể sử dụng lệnh “su” hoặc “sudo su”

sudo su [user-name]

Nhưng không phải user nào cũng có quyền sudo để thực hiện chuyển đổi tài khoản. Để có quyền sudo thì user đó phải nằm trong group “wheel” với centos và group “sudo” đối với ubuntu.Bạn có thể tham khảo lệnh sau:

usermod -aG wheel thanhquang

hoặc:

usermod -aG sudo thanhquang

2. Quản lý group trong Linux

2.1 Group là gì?

  • Group là một nhóm tập hợp các user.
  • Mỗi group có 1 tên duy nhất và 1 mã định danh duy nhất (gid).
  • Khi tạo ra 1 user ( không dùng option -g ) thì mặc định 1 group mang tên user được tạo ra.

2.2 File “/etc/group”

  • Là tập tin văn bản chứa thông tin về các group trên máy.
  • Mỗi user đều có quyền đọc tập tin này nhưng chỉ có user root mới có quyền thay đổi.
  • Cấu trúc file:
Cấu trúc file trong group

Giải thích:

    • 1 - Tên group
    • 2 - Mật khẩu group đã được mã hóa (vì có file /etc/gshadow) nên mặc định ở đây là x
    • 3 - Mã nhóm (gid)
    • 4 - Danh sách các user nằm trong nhóm

2.3 Các lệnh quản lý group

Để tạo 1 group ta sử dụng lệnh “groupadd”.

groupadd  [group_name]

Để tạo mật khẩu cho group ta sử dụng lệnh “gpasswd”.

gpasswd [group_name]

Để sửa lại thông tin về group ta sử dụng lệnh “groupmod”.

groupmod [options] [group_name]

  • Options
    • g [gid] : sửa lại mã nhóm ( gid )
    • n [group_name] : sửa lại tên group

Để xóa group ta sử dụng lệnh “groupdel”.

groupdel [group_name]

3. Các quyền quản lý trong linux

Trên thực tế mọi tập tin sẽ đều có chủ sở hữu, nó sẽ bao gồm user và group sở hữu tập tin đó.

Ta có thể sử dụng lệnh “ls -lh” để xem.

[root@localhost ~]# ls -lh

total 8.0K

-rw-------. 1 root root 1.3K Jan 19 03:54 anaconda-ks.cfg

-rwxr-xr-x. 1 root root 2.1K Jan 21 23:37 cmdlog.sh

[root@localhost ~]#

3.1 Các quyền của file

Tên quyền

giá trị(thập phân)

Mục đích sử dụng

r(read)

4

Đây là quyền được đọc file. Lệnh cat là ví dụ của quyền này

w(write)

2

Đây là quyền được chỉnh sửa. Lệnh vi là ví dụ của quyền này

x(execute)

1

Đây là quyền thực thi. Khi ta chạy bash cần quyền này

3.2 Các lệnh thay đổi quyền của file

Mỗi file sẽ đều có các quyền của mình và để xem được các quyền đó ta có thể sử dụng câu lệnh “ls -lh”.

Xem các quyền hiện tại

Ta nhận thấy rằng mỗi file sẽ quy định quyền cho 3 chủ thể là: user, group và other (user khác) được sắp xếp theo đúng thứ tự trên.

Ví dụ: file ssh_config thì chủ sở hữu file có quyền đọc và sửa, đối với group và other chỉ có quyền đọc.

Để thay đổi chủ sở hữu file ta dùng lệnh “chown”

chown [tên user mới] [tên file]

Để thay đổi group mới của file ta có dùng lệnh “chgrp”

chgrp [tên group mới] [tên file]

Để có thể thay đổi các quyền của file ta có thể sử dụng lệnh “chmod”

chmod [u/g/o][+/-][r/w/x] [tên file]

4. Một số lưu ý cần nhớ

Chỉ có quyền root mới có thể thực hiện câu lệnh “su”, còn các user khác muốn thực lệnh “su” thì đều cần quyền sudo.

Sự khác biệt giữa “su” và “su -”

  • Lệnh “su” sẽ giúp chúng ta chuyển đổi user mà vẫn giữ nguyên vị trí đang đứng trước đó.
  • Lệnh “su -” sẽ giúp chúng ta chuyển đổi user và đưa luôn chúng ta đến vị trí thư mục “/home/” của user đó.

Theo mặc định khi tạo ra các user thì nó sẽ không có quyền sudo nếu muốn user có quyền sudo thì phải thêm user đó vào group “wheel” đối với CentOS và group “sudo” đối với Ubuntu. Chỉ có quyền root mới có thể thực hiện điều này.

Kết luận

Quản lý group và user trong Linux là điều rất quan trọng. Khi thực hiện thao tác với user hay group, phải chắc chắn rằng bạn đang làm chính xác vì nếu như ai đó biết được tài khoản và mật khẩu của bạn thì họ có thể chiếm quyền kiểm soát thiết bị, gây ra hậu quả nghiêm trọng. Cùng trở lại suncloud.vn để cập nhật thêm các kiến thức bổ ích khác về hệ điều hành Linux trong phần sau nhé.

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật
Tin tức khác