+16

Đâ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 động Lệnh Mô tả Ví dụ
Kiểm tra user whoami Kiểm tra bạn là ai whoami
Kiểm tra online who Kiểm tra những ai đang online who
Kiểm tra id id username Kiểm tra id của user và id của những group mà user đang thuộc về id thangit
Thêm user useradd [options] username Thêm user vào hệ thống sudo useradd thangit
useradd -m -d home_path username Tạo user với home directory tùy chỉnh sudo useradd -m -d /home/ThangIT thangit
useradd -e YYYY-MM-DD username Cài đặt ngày hết hạn của tài khoản sudo useradd -e 2023-06-30 thangit
useradd -c user_info username Thêm thông tin của user sudo useradd -c "Thang - Lap Trinh Vien" thangit
Cài đặt password passwd [options] username Cà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 user usermod [options] username Chỉnh sửa những thông tin liên quan đến user
usermod -c user_info username Đổi thông tin của user sudo usermod -c "Thang - IT" thangit
usermod -s shell username Đổi shell của user sudo usermod -s /bin/bash thangit
Xóa user userdel [options] username Xóa user ra khỏi hệ thống sudo userdel thangit
Thêm user vào group usermod -a -G groupname username Thê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 group deluser username groupname Xó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 user su [options] username su (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ại su 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 động Lệnh Mô tả Ví dụ
Liệt kê group của user groups Liệt kê các groups mà bạn thuộc về groups
Liệt kê users trong group getent group groupname Liệt kê toàn bộ users nằm trong group getent group developer
Thêm group groupadd [options] groupname Tạo một group mới sudo groupadd developer
Chỉnh sửa group groupmod [options] Chỉnh sửa group
groupmod -n newgroup oldgroup Đổi tên group sudo groupmod -n it developer
Xóa group groupdel [options] groupname Xóa group ra khỏi hệ thống sudo groupdel it
Quản lý user, mật khẩu của group gpasswd [options] groupname Thêm, xóa user trong group, đổi mật khẩu group,...
gpasswd -a username groupname Thêm user vào group sudo gpasswd -a thangit developer
gpasswd -d username groupname Xóa user ra khỏi group sudo gpasswd -d thangit developer
gpasswd -M multi_username groupname Thêm hàng loạt user vào group sudo 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


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.