Đây là một bài viết về Linux (Phần 2)

Chào mừng các bạn đến với bài viết khám phá Linux của mình

Trong loạt bài viết Đây là series về Linux, mình sẽ chia sẻ 6 Core Concept của hệ điều hành Linux, bao gồm:

Mở bài

Core Concept mình sẽ giới thiệu trong phần này (Phần 1 ở đây nhé!):

  • Users & Groups ✅

Khi anh em chuyển từ hệ điều hành Windows sang Linux, khái niệm về Users và Groups có thể làm anh em cảm thấy mới mẻ, vì trong Windows, chúng ta thường chỉ cần đăng nhập vào tài khoản rồi code, lướt web, xem phim, vân vân và mây mây mà không cần quan tâm đến Users và Groups. Tuy nhiên, trong Linux, việc quản lý Users và Groups là rất quan trọng

Users

Trong Linux, mặc định mỗi hệ thống sẽ có một user là root. Root user có quyền hạn rất lớn trong hệ thống, bao gồm thay đổi cấu hình, cài đặt phần mềm, và xóa các tệp tin quan trọng. Vì vậy, để đảm bảo an toàn và bảo mật cho hệ thống, chúng ta cần tạo nhiều user khác nhau với các quyền hạn phù hợp là cần thiết

Các account lưu trữ các thông tin như username, password, và UID (User ID). Mỗi user khi được tạo tài khoản thì đồng thời cũng sẽ được tạo một folder riêng trong home directory

Đây là 2 file lưu trữ thông tin user: /etc/passwd, /etc/shadow

/etc/passwd: Lưu trữ thông tin user. Sử dụng cat /etc/passwd để show nội dung của file

Ví dụ: thangit:x:1001:1001:ThangIT:/home/thangit:/bin/sh

Giải thích:

  • thangit: tên đăng nhập
  • x: mật khẩu (x nghĩa là bí ẩn, vì mật khẩu không hiển thị ở đây, ! nghĩa là mật khẩu chưa được đặt)
  • 1001: user id
  • 1001: group id của user (mặc định mỗi user sẽ có một group của nó)
  • ThangIT: thông tin của user
  • /home/thangit: đường dẫn đến home directory của user đó
  • /bin/sh: shell

/etc/shadow: Lưu trữ thông tin mật khẩu. Sử dụng sudo cat /etc/shadow để show nội dung của file

Ví dụ: thangit:$y$jxxxxxxxx:19518:0:99999:7:30:19538:

Giải thích:

  • thangit: tên đăng nhập
  • $y$jxxxxxxxx: mật khẩu được mã hóa
  • 19518: số ngày tính từ ngày thay đổi mật khẩu cuối cùng tới hiện tại. Lấy từ ngày 1/1/1970 + 19518 = 12/6/2023 (ngày mình đang viết bài này)
  • 0: trong bao nhiêu ngày nữa thì mới có thể đổi được mật khẩu lần tiếp theo (mặc định là 0 nếu không được cài đặt)
  • 99999: số ngày cần đổi mật khẩu trước khi bị vô hiệu hóa (mặc định là 99999)
  • 7: thời gian cảnh báo để người dùng nhận biết rằng mật khẩu sắp hết hạn và cần thay đổi mật khẩu gấp (mặc định là 7)
  • 30: số ngày tài khoản không đăng nhập thì sẽ bị vô hiệu hóa (mặc định là để trống)
  • 19538: số ngày tài khoản sẽ bị vô hiệu hóa (mặc định là để trống). Lấy từ ngày 1/1/1970 + 19538 = 30/6/2023

Các tác vụ chính quản lý user:

Hành độngLệnhMô tảVí dụ
Kiểm tra userwhoamiKiểm tra bạn là aiwhoami
Kiểm tra onlinewhoKiểm tra những ai đang onlinewho
Kiểm tra idid usernameKiểm tra id của user và id của những group mà user đang thuộc vềid thangit
Thêm useruseradd [options] usernameThêm user vào hệ thốngsudo useradd thangit
useradd -m -d home_path usernameTạo user với home directory tùy chỉnhsudo useradd -m -d /home/ThangIT thangit
useradd -e YYYY-MM-DD usernameCài đặt ngày hết hạn của tài khoảnsudo useradd -e 2023-06-30 thangit
useradd -c user_info usernameThêm thông tin của usersudo useradd -c “Thang – Lap Trinh Vien” thangit
Cài đặt passwordpasswd [options] usernameCài đặt password cho user, các options dùng để tùy chỉnh các thuộc tính (mình có giải thích các thuộc tính trong phần nói về tệp /etc/shadow ở trên)sudo passwd thangit
Chỉnh sửa userusermod [options] usernameChỉnh sửa những thông tin liên quan đến user
usermod -c user_info usernameĐổi thông tin của usersudo usermod -c “Thang – IT” thangit
usermod -s shell usernameĐổi shell của usersudo usermod -s /bin/bash thangit
Xóa useruserdel [options] usernameXóa user ra khỏi hệ thốngsudo userdel thangit
Thêm user vào groupusermod -a -G groupname usernameThêm user vào group (Có nhiều cách để thêm/xóa user trong group, cách thứ 2 mình giới thiệu ở phần Groups)sudo usermod -a -G developer thangit
Xóa user ra groupdeluser username groupnameXóa user vào group (Lưu ý là deluser chứ không phải userdel, 2 lệnh này có nét tương đồng nhưng có vài điểm khác nhau)sudo deluser thangit developer
Chuyển đổi usersu [options] usernamesu (viết tắt của switch user), chuyển từ user hiện tại sang user khác mà không cần phải logout rồi đăng nhập lạisu thangit

Groups

Linux hỗ trợ việc quản lý groups. Bạn có thể tạo ra nhiều groups và gán các users vào từng group tương ứng. Mặc định, khi tạo một user mới, hệ thống cũng sẽ tự động tạo một group có cùng tên với user đó

Việc sử dụng groups giúp quản lý quyền truy cập vào các tệp tin và thư mục linh động hơn. Thay vì phải cấu hình quyền truy cập cho từng user một cách độc lập, bạn có thể gán quyền truy cập cho một group và tất cả các thành viên trong group đó sẽ được cấp các quyền đã được cài đặt sẵn

Đây là 2 file lưu trữ thông tin group: /etc/group, /etc/gshadow

/etc/group: lưu thông tin group. Sử dụng cat /etc/group để show nội dung của file

Ví dụ: it:x:1003:thangit

Giải thích:

  • it: tên group
  • x: mật khẩu (x nghĩa là bí ẩn, vì mật khẩu không hiển thị ở đây, ! nghĩa là mật khẩu chưa được đặt)
  • 1003: group id
  • thangit: những user nằm trong group này

/etc/gshadow: lưu thông tin mật khẩu group. Sử dụng sudo cat /etc/gshadow để show nội dung của file

Ví dụ: it:$6$RFMnX/xxxxx/SA.:thangit:thangit,trandinhthang

Giải thích:

  • it: tên group
  • $6$RFMnX/xxxxx/SA.: mật khẩu được mã hóa
  • thangit: trưởng nhóm
  • thangit,trandinhthang: danh sách user nằm trong group này

Các tác vụ chính quản lý group:

Hành độngLệnhMô tảVí dụ
Liệt kê group của usergroupsLiệt kê các groups mà bạn thuộc vềgroups
Liệt kê users trong groupgetent group groupnameLiệt kê toàn bộ users nằm trong groupgetent group developer
Thêm groupgroupadd [options] groupnameTạo một group mớisudo groupadd developer
Chỉnh sửa groupgroupmod [options]Chỉnh sửa group
groupmod -n newgroup oldgroupĐổi tên groupsudo groupmod -n it developer
Xóa groupgroupdel [options] groupnameXóa group ra khỏi hệ thốngsudo groupdel it
Quản lý user, mật khẩu của groupgpasswd [options] groupnameThêm, xóa user trong group, đổi mật khẩu group,…
gpasswd -a username groupnameThêm user vào groupsudo gpasswd -a thangit developer
gpasswd -d username groupnameXóa user ra khỏi groupsudo gpasswd -d thangit developer
gpasswd -M multi_username groupnameThêm hàng loạt user vào groupsudo gpasswd -M thangit1,thangit2,thangit3 developer

Kết bài

Vậy là các bạn đã có một cái nhìn tổng quan về Users & Groups trong Linux

Thế giới Linux vẫn còn rất nhiều điều thú vị đang chờ đợi các bạn. Follow mình để cùng nhau khám phá những phần tiếp theo. Cảm ơn các bạn đã đọc

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top