3324 words
17 minutes
Linux Basic
2025-03-21

Nguồn gốc của Unix#

  • Năm 1964, MIT, Bell Labs và GE cùng phát triển một hệ điều hành tiên tiến tên là Multics. Nhưng do quá phức tạp, Bell Labs rút lui khỏi dự án.
  • Năm 1969, tại Bell Labs, Ken Thompson viết một hệ điều hành mới trên máy PDP-7 – gọi là UNICS, sau đổi tên thành UNIX.
  • Đến năm 1973, Dennis Ritchie và Thompson viết lại UNIX bằng ngôn ngữ C → giúp nó có thể chạy được trên nhiều loại máy khác nhau – một bước đột phá lớn.
  • UNIX nhanh chóng lan rộng trong giới học thuật. Tại UC Berkeley, họ phát triển ra một biến thể riêng gọi là BSD.
  • Năm 1983, AT&T chính thức phát hành UNIX System V – phiên bản thương mại đầu tiên.
  • Unix là một hệ điều hành đa nhiệm, chủ yếu dùng cho doanh nghiệp/server
  • Khác với Windows hay MacOS chủ yếu dùng cho cá nhân. HĐH Unix ổn định, bảo mật và khả năng vận hành lâu dài hơn.
  • Một số hệ điều hành dựa trên Unix:
    • BSD
    • Minix
    • Linux: (Có nhiều bản phân phối - distribution)
      • Red Hat: RHEL, CentOS
      • Debian: Ubuntu, Kali Linux

Tất cả những phần này điều dùng POSIX để viết những Command-line


Linux là gì? bắt nguồn từ đâu? Sự khác biệt cơ bản giữa Linux và Windows#

  • Linux là một hệ điều hành có mã nguồn mở (Open-source - OS), được tạo ra vào năm 1991 bởi Linus Torvalds.

  • Được cộng đồng phát triển rộng rãi, Linux hiện nay được sử dụng trên nhiều thiết bị như: máy chủ, thiết bị nhúng, máy tính cá nhân, siêu máy tính…

  • So sánh sự khác biệt Linux - Windows

Tiêu chíLinuxWindows
Tính chất mã nguồnMã nguồn mở, người dùng có quyền truy cập, thay đổi và phân phối lại mã nguồn.Mã nguồn đóng, phát triển độc quyền bởi Microsoft.
Bảo mậtBảo mật cao hơn nhờ khả năng cập nhật nhanh, ít bị tấn công do thị phần nhỏ.Thường là mục tiêu của phần mềm độc hại do thị phần lớn hơn.
Quản lý tài nguyênHoạt động tốt trên phần cứng yếu, sử dụng ít tài nguyên hệ thống.Tiêu thụ nhiều tài nguyên, đặc biệt trên hệ thống cấu hình thấp.
Cập nhật hệ thốngRolling-release hoặc fixed-release, không yêu cầu khởi động lại khi cập nhật.Cập nhật bắt buộc, thường yêu cầu khởi động lại, đôi khi gây gián đoạn công việc.
Cộng đồng hỗ trợCộng đồng mã nguồn mở lớn, hỗ trợ từ diễn đàn và wiki.Hỗ trợ chính thức từ Microsoft và cộng đồng người dùng lớn.
Khả năng tùy chỉnhTùy chỉnh cao, người dùng có thể thay đổi từ kernel đến giao diện người dùng.Giới hạn về tùy chỉnh, phần lớn dựa vào các cài đặt sẵn có.
Ứng dụng và phần mềmPhần mềm mã nguồn mở nhiều, phải sử dụng Wine để chạy ứng dụng Windows.Nhiều phần mềm thương mại hỗ trợ, đặc biệt trong môi trường doanh nghiệp.
Phù hợp cho máy chủPhổ biến cho máy chủ web và máy chủ doanh nghiệp nhờ tính ổn định và bảo mật cao.Ít phổ biến hơn trong môi trường máy chủ, nhưng Windows Server được sử dụng nhiều trong doanh nghiệp.
Giá thànhMiễn phí, đa số các bản phân phối Linux không có phí bản quyền.Tốn phí bản quyền cho hệ điều hành và các phần mềm bổ sung như Microsoft Office.
Bảo trì hệ thốngBảo trì ít phức tạp hơn, không cần khởi động lại thường xuyên khi cập nhật hệ thống.Bảo trì phức tạp hơn, đặc biệt với các bản cập nhật bắt buộc từ Windows Update.
Thị phần và độ phổ biếnPhổ biến trong máy chủ, hệ thống nhúng, và tổ chức phát triển phần mềm.Phổ biến nhất trên thị trường máy tính cá nhân, đa số người dùng hàng ngày.

Nguồn: Linus Vs. Windows


Các bản phân phối nổi bật trong của Linux. Tìm hiểu về bản phân phối RHEL và Centos. Tìm hiểu về giấy phép trong Linux và chu kỳ phát triển của một bản phân phối#

Các bản phân phối - Linux Distrubution#

alt text

Tìm hiểu về bản phân phối RHEL và Centos#

  • RHEL - RedHat Enterprise Linux: một bản phân phối của Linux, nó nổi bật với độ tin cậy, tính ổn định và khả năng bảo mật cao và được tạo bởi Red Hat
  • RHEL phù hợp cho server, data center, cloud, ứng dụng doanh nghiệp.
  • Dành cho các doanh nghiệp có trả phí

Tham khảo: Hướng dẫn RHEL

  • Centos là một bản sao của RHEL dành cho người dùng mà không cần trả phí, nó được tạo bởi Cộng đồng, dựa trên mã nguồn của RHEL.
  • Phiên bản:
    • CentOS Linux (đến phiên bản 8): Bản dựng lại của RHEL, không hỗ trợ thương mại.
    • CentOS Stream (hiện nay): Dòng phát triển rolling-release, cập nhật trước RHEL — trở thành bản tiền nhiệm (preview) của RHEL.

Tham khảo: Thông tin về Centos

Tìm hiểu về giấy phép trong Linux và chu kỳ phát triển của một bản phân phối#

  • Linux Kernel: Được phát hành theo giấy phép GNU General Public License v2 (GPLv2).

    • Cho phép người dùng tự do sử dụng, sao chép, sửa đổi và phân phối mã nguồn, miễn là các phần mềm phát sinh cũng phải được phát hành dưới giấy phép GPL.
  • Giấy phép mã nguồn mở phổ biến khác:

    • MIT License: Đơn giản, cho phép sử dụng tự do với ít ràng buộc.
    • Apache License 2.0: Giấy phép tự do kèm điều khoản về bằng sáng chế.
    • BSD License: Rất ít ràng buộc, cho phép sử dụng mã nguồn một cách linh hoạt.
  • Ý nghĩa giấy phép:

    • Tạo điều kiện cho việc phát triển cộng đồng.
    • Cho phép doanh nghiệp tái sử dụng và tùy chỉnh.
    • Đảm bảo tính minh bạch và chia sẻ trong phát triển phần mềm.
  • Chu kỳ phát triển cơ bản:

    • Lên kế hoạch (Planning): Xác định tính năng, mục tiêu.
    • Phát triển (Development): Viết mã, tích hợp gói phần mềm.
    • Kiểm thử (Testing): Kiểm tra lỗi, hiệu suất, bảo mật.
    • Phát hành (Release): Cung cấp phiên bản chính thức.
    • Hỗ trợ (Support): Vá lỗi, cập nhật bảo mật trong suốt vòng đời hỗ trợ.
  • Vòng đời hỗ trợ:

    • RHEL:
      • Hỗ trợ 10 năm (bao gồm Mainstream + Extended Support).
      • Chu kỳ phát hành phiên bản chính thường là 3 năm/lần.
      • Nguồn: RHEL
    • Ubuntu LTS:
      • Hỗ trợ 5 năm.
      • Chu kỳ phát hành: 2 năm/lần (tháng 4 các năm chẵn).
      • Nguồn: Ubuntu
    • Fedora:
      • Chu kỳ phát hành 6 tháng/lần.
      • Hỗ trợ khoảng 13 tháng.
      • Nguồn: Fedora

Tìm hiểu các tổ chức, website phát triển các dự án liên quan đến Linux và các bản phân phối. Các website liên quan đến đóng góp, fix lỗi bug, đóng góp code#

Tổ chức / NhómPhát triển cái gìWebsite chính
The Linux FoundationKernel Linux và dự án mã nguồn mở kháclinuxfoundation.org
Debian ProjectDistro Debiandebian.org
CanonicalUbuntu (dựa trên Debian)ubuntu.com
Red Hat / Fedora ProjectFedora & RHELgetfedora.org
Arch Linux TeamArch Linuxarchlinux.org

Cấu trúc Kernel và quá trình khởi động trong Linux và các INIT Level#

Cấu trúc của Kernel#

  • Kernel là trái tim của hệ điều hành, giao tiếp giữa các phần cứng và phần mềm. Gồm các phần chính như:
    • Process Scheduler: Quản lý tiến trình, lập lịch ai dùng CPU trước – đảm bảo công bằng và hiệu quả. Ex: Vừa nghe nhạc, vừa gõ văn bản – máy tự chia thời gian xử lý.
    • Memory Management: Quản lý RAM: cấp phát bộ nhớ, phân trang, tạo bộ nhớ ảo (swap) nếu cần. Ex: Khi mở nhiều ứng dụng, RAM đầy → hệ thống dùng ổ cứng làm RAM tạm.
    • File System: Quản lý dữ liệu trong ổ cứng: đọc, ghi, tổ chức file, thư mục theo định dạng (ext4, xfs…). Ex: Khi bạn mở file Word hoặc lưu một bức ảnh, file system sẽ tìm đúng file đó trên ổ cứng, đọc dữ liệu và trả về.
    • Device Drivers: Là “phiên dịch viên” giúp kernel giao tiếp với phần cứng: chuột, bàn phím, USB, máy in… Ex: Khi cắm máy in vào máy tính thông qua USB, nó sẽ hoạt động in tài liệu thông qua Driver của nó
    • Networking: Xử lý mạng: gửi/nhận dữ liệu qua Internet, tách gói tin nhỏ rồi gửi đi đúng theo thứ tự đảm bảo đầy đủ thông qua giao thức TCP/IP. Ex: Khi mình mở trình duyệt và truy cập YouTube, phần mạng trong kernel chịu trách nhiệm gửi yêu cầu đến máy chủ YouTube, sau đó nhận video về và truyền dữ liệu cho trình duyệt hiển thị.
    • System Call Interface: Là “Cầu nối” giao tiếp giữa phần mềm ứng dụng (user-space) và phần cứng hoặc các dịch vụ do kernel cung cấp (kernel-space). Ứng dụng không thể tự ý truy cập trực tiếp phần cứng mà phải qua system call.

Hãy tưởng tượng bạn đang dùng một ứng dụng (như trình duyệt web, phần mềm nghe nhạc, trình soạn thảo văn bản…). Ứng dụng này không thể tự ý “đụng” trực tiếp vào phần cứng như ổ cứng, RAM, card mạng vì như vậy rất nguy hiểm và dễ gây lỗi. Ví dụ: Muốn mở một file ảnh để xem. Ứng dụng không tự mở file trực tiếp, mà gọi một “cuộc gọi” đến kernel bằng system call tên là open(). read(), open(), write(), send()

Quá trình khởi động - Booting process#

Boot process - quá trình khởi động hệ điều hành — chuyển máy tính từ trạng thái tắt sang trạng thái sẵn sàng chạy hệ điều hành.

Nếu boot process bị lỗi, máy không thể chạy hệ điều hành → không thể sử dụng server được. Đặc biệt với Linux Server, ta thường xuyên phải làm việc với bootloader, kernel, init system để tùy chỉnh, debug hoặc bảo mật.

8 bước chính của boot process#

alt text

B1: Power On#

Bật nút nguồn → máy cấp điện cho các linh kiện (CPU, RAM, ổ cứng,…).

B2: BIOS/UEFI#

  • Xác định máy dùng ROM: BIOS (cũ) hay UEFI (mới).
  • Thực hiện POST (Power-On Self Test) kiểm tra phần cứng (RAM, CPU, ổ cứng,…).
  • Nếu OK → tìm ổ cứng có hệ điều hành để tiếp tục boot.
Terminal window
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS" # Kiểm tra BIOS hay UEFI

B3: Bootloader#

BIOS/UEFI sẽ tìm chương trình nhỏ gọi là Bootloader (thường là GRUB) — như “trình chọn đường đi” giúp chọn khởi động vào Linux.

Terminal window
cat /boot/grub/grub.cfg # Xem cấu hình GRUB

B4: Kernel Loading#

GRUB nạp kernel Linux vào RAM. Kernel là trung tâm hệ điều hành, quản lý CPU, RAM, thiết bị,… Nó được nạp đầu tiên để bắt đầu điều khiển toàn bộ hệ thống.

Terminal window
uname -r # Xem phiên bản kernel đang chạy

B5: Initramfs#

  • Ngay sau khi kernel được nạp, kernel sẽ nạp thêm initramfs – một bộ công cụ tạm thời trong RAM.
  • Nó chứa:
    • Driver thiết bị (cho ổ cứng, USB…)
    • Một số lệnh và file system cần thiết Mục đích: giúp kernel khởi động được hệ thống gốc (root filesystem) thành công.
Terminal window
lsinitramfs /boot/initrd.img-$(uname -r) # Liệt kê nội dung initramfs

B6: Init system#

Init system là chương trình đầu tiên, chịu trách nhiệm khởi chạy tất cả các dịch vụ cần thiết như mạng, giao diện,… để máy tính hoạt động bình thường.

Terminal window
ps -p 1 -o comm= # Kiểm tra tiến trình PID 1 là gì (systemd, init,...)

B7: Runlevel / Target#

  • Sau khi init system bắt đầu chạy, hệ thống cần biết “chế độ” để hoạt động, tức là máy tính sẽ chạy theo kiểu nào:
    • Chế độ dòng lệnh (CLI): Chỉ có cửa sổ dòng lệnh, không có giao diện đồ họa. Thường dùng cho server hoặc khi cần tiết kiệm tài nguyên.
    • Chế độ giao diện đồ họa (GUI): Có màn hình desktop, các biểu tượng, cửa sổ như máy tính để bàn bạn thường thấy.
    • Chế độ phục hồi (Recovery mode): Dùng để sửa lỗi khi hệ thống gặp vấn đề.
  • Ở đây, tùy theo hệ thống init bạn dùng:
    • Nếu dùng SysVinit, chế độ gọi là runlevel (một số mức như 0-6, mỗi mức tương ứng chế độ khác nhau).
    • Nếu dùng systemd (hệ thống phổ biến hiện nay), chế độ gọi là target.

Ví dụ:

  • multi-user.target (runlevel 3) – chế độ server
  • graphical.target (runlevel 5) – chế độ desktop
Terminal window
runlevel # nếu SysVinit
systemctl get-default # nếu systemd

B8: Login#

Giao diện đăng nhập hiện ra, máy đã sẵn sàng sử dụng.

Terminal window
whoami # Xem user đang đăng nhập
loginctl # Quản lý phiên đăng nhập

Tham khảo: Youtube Tài liệu: PDF

Các INIT Level#

Lệnh initTên GọiMô Tả ChínhTrường Hợp Dùng
init 0Tắt Hệ Thống (Shutdown)Tắt toàn bộ dịch vụ và nguồn hệ thống.Khi muốn tắt máy hoàn toàn.
init 1Chế Độ Người Dùng ĐơnChỉ root đăng nhập, không mạng, không đa nhiệm.Bảo trì hệ thống, sửa lỗi nghiêm trọng.
init 2Đa Nhiệm Không Có MạngCho phép nhiều user, không có kết nối mạng.Làm việc nội bộ, kiểm thử không cần internet.
init 3Đa Nhiệm Có Mạng, Không GUICó mạng, không có giao diện đồ họa.Máy chủ server hoặc SSH remote.
init 4Chế Độ Tùy ChỉnhKhông dùng mặc định, có thể cấu hình riêng.Dành cho tùy biến nâng cao.
init 5Đa Nhiệm + Mạng + GUIHoạt động đầy đủ với mạng và giao diện đồ họa.Dành cho người dùng thường, máy tính cá nhân.
init 6Khởi Động Lại (Reboot)Khởi động lại hệ thống sau khi dừng dịch vụ.Áp dụng thay đổi hệ thống hoặc update.
init s/SChế Độ Bảo Trì (Maintenance)Console duy nhất, không dịch vụ, không mạng.Sửa lỗi hệ thống cấp thấp.
init m/MTương Tự s/S (Maintenance)Giống init s/S.Cũng dùng để bảo trì.

Nguồn: INIT Level


Filesystem là gì ? Các type filesystem được Linux hỗ trợ, So sách các loại này. Cấu trúc thư mục phân cấp trong Linux.#

  • Filesystem là cách tổ chức và quản lý dữ liệu trên ổ cứng, để hệ điều hành có thể đọc, ghi, tìm kiếm và bảo mật dữ liệu.

Ex: trong thư viện đầy sách - (ổ cứng), Nếu mình vứt lung tung thì sẽ không tìm được cuốn sách nào cả. Vì thế Filesystem là sắp xếp theo từng mục - dễ tìm kiếm,…

Các type filesystem được Linux hỗ trợ và so sánh#

  • Linux hỗ trợ rất nhiều loại filesystem
Loại FSMô tả ngắn gọnƯu điểmNhược điểmHệ thống dùng nhiều
ext2Hệ thống tệp truyền thống của LinuxĐơn giản, nhẹKhông hỗ trợ journaling → dễ mất dữ liệu khi mất điệnThẻ nhớ, thiết bị nhúng
ext3ext2 + journalingAn toàn hơn ext2, tương thích ngượcHiệu suất thấp hơn ext4Máy chủ cũ
ext4Phiên bản cải tiến của ext3Hiệu suất cao, ổn định, hỗ trợ file lớnCó thể thừa tính năng với hệ thống nhỏMặc định trên Ubuntu, Debian
XFSFS hiệu năng cao, hỗ trợ journalingRất nhanh khi xử lý file lớnKhông tốt cho file nhỏ, resize partition khóRed Hat, CentOS
BtrfsFS hiện đại, hỗ trợ snapshot, RAIDHỗ trợ snapshot, quản lý volume linh hoạtĐôi khi chưa ổn định trong môi trường productionSUSE, Fedora
FAT32 / exFATHệ thống cũ dùng trong WindowsTương thích đa hệ điều hànhKhông hỗ trợ phân quyềnUSB, thẻ nhớ
NTFSHệ thống của WindowsTương thích tốt với WindowsLinux chỉ hỗ trợ đọc/ghi có giới hạn (trừ khi dùng ntfs-3g)Dùng để chia sẻ dữ liệu với Windows

Cấu trúc thư mục phân cấp trong Linux#

  • Linux sử dụng cấu trúc thư mục dạng cây, với thư mục gốc là /. Dưới đây là một số thư mục chính:
Thư mụcVai trò
/Root – gốc của toàn bộ hệ thống file
/binChứa các chương trình thiết yếu (vd: ls, cp, mv, bash,…)
/bootChứa các file khởi động (kernel, grub,…)
/etcChứa các file cấu hình hệ thống
/homeThư mục của người dùng (vd: /home/dk)
/libThư viện dùng cho các file trong /bin/sbin
/mediaThư mục mount thiết bị ngoài như USB, ổ cứng di động
/mntDùng để mount tạm thời hệ thống file khác
/optChứa các phần mềm bên ngoài được cài thêm
/rootThư mục cá nhân của user root
/sbinChứa các chương trình quản trị hệ thống
/tmpFile tạm, sẽ bị xóa khi khởi động lại
/usrPhần mềm và file chia sẻ cho người dùng
/varDữ liệu thay đổi thường xuyên: log, cache, mail, spool,…

Hiểu cấu trúc thư mục cây trong linux, khái niệm về đường dẫn, sử dụng các lệnh cơ bản thao tác với 1 thư mục cd, pwd, ls. Trong Linux các thư mục, socket … thực chất là gì ?#

File System Tree Structure#

  • Linux sử dụng cấu trúc cây (tree structure) để tổ chức file và thư mục
/ (gốc)
├── bin/
├── boot/
├── etc/
├── home/
│ ├── user1/
│ └── user2/
├── var/
└── tmp/
  • Đường dẫn tuyệt đối (Absolute path): Bắt đầu từ /
Terminal window
/home/hieubt/Documents/file.txt
  • Đường dẫn tương đối (Relative path): Tính từ vị trí hiện tại
Terminal window
./file.txt #file trong thư mục hiện tại
../file.txt #thư mục cha
../../etc/passwd #Đi lên 2 thư mục rồi tìm file

Các lệnh cơ bản thao tác với thư mục#

  • pwd : In đường dẫn hiện tại
Terminal window
$ pwd
/home/hieubt
  • cd [path] : Di chuyển thư mục
Terminal window
cd /etc # Vào thư mục etc
cd .. # Quay về thư mục cha
cd ~ # Về thư mục người dùng (home)
cd / # Về thư mục gốc
  • ls : Liệt kê nội dung
Terminal window
ls # Hiển thị file và folder
ls -l # Hiển thị chi tiết (quyền, người sở hữu, thời gian,...)
ls -a # Hiển thị cả file ẩn
ls -lh # Hiển thị chi tiết với đơn vị dễ đọc (KB, MB,...)

Trong Linux, thư mục, socket,… thực chất là gì?#

  • Trong Linux: “Mọi thứ đều là file” – kể cả thư mục, thiết bị, socket,…
LoạiMô tảKý hiệu khi dùng ls -l
-File thường-rw-r--r--
dThư mục (directory)drwxr-xr-x
lSymbolic link (liên kết tượng trưng)lrwxrwxrwx
cCharacter device filecrw-rw----
bBlock device filebrw-rw----
sSocket (giao tiếp giữa các tiến trình)srwxrwxrwx
pNamed pipeprw-r--r--

Tìm hiểu lệnh man#

  • man là viết tắt của manual (sách hướng dẫn).
Terminal window
man [tên_lệnh]
  • Khi mà chạy man [tên_lệnh], thì sẽ thấy những mục như sau: | Mục | Ý nghĩa | | --------------- | --------------------------------------------------------- | | NAME | Tên lệnh và mô tả ngắn gọn | | SYNOPSIS | Cách sử dụng lệnh, cú pháp | | DESCRIPTION | Mô tả chi tiết về chức năng và cách hoạt động | | OPTIONS | Các tuỳ chọn có thể đi kèm (vd: -a, -l, --help,…) | | EXAMPLES | Ví dụ sử dụng (nếu có) | | SEE ALSO | Các lệnh liên quan khác bạn có thể tham khảo |

Câu lệnh làm việc với tập tin như đọc, ghi,.. (liệt kê tất cả có thể)#

LệnhMô tảVí dụ
mkdirTạo thư mục mớimkdir testLinux
touchTạo file rỗngtouch file.txt
catĐọc file, hiển thị nội dungcat file.txt
less / moreĐọc file lớn (cuộn trang)less log.txt
headHiện 10 dòng đầuhead file.txt
tailHiện 10 dòng cuốitail file.txt
nano / vi / vimMở file để chỉnh sửanano file.txt
echoGhi nội dung vào fileecho "Hello world" > hello.txt
>Ghi đè nội dungecho "hieubt" > file.txt
>>Ghi nối vào cuốiecho " 19/10/2006" >> file.txt
cpSao chép filecp file.txt sao_luu.txt
mvDi chuyển hoặc đổi tênmv file.txt /home/dk/ hoặc mv a.txt b.txt
rmXóa filerm file.txt
statXem thông tin filestat file.txt
fileKiểm tra loại filefile file.txt
wcĐếm dòng, từ, ký tựwc file.txt
diffSo sánh 2 filediff a.txt b.txt
cmpSo sánh nhị phâncmp file1 file2
cut, awk, sedTrích xuất, chỉnh sửa dòngcut -d: -f1 /etc/passwd
chmodPhân quyền filechmod 755 file.txt
chownThay đổi chủ sở hữuchown dk file.txt

Tìm hiểu về nhóm người dùng trong Linux#

  • Trong Linux, nhóm(group) là tập hợp tất cả các tài khoản user được gộp lại với nhau

Mục đích: Dùng để quản lý quyền truy cập file, thư mục và tài nguyên hệ thống để theo dõi một nhóm thay vì từng cá nhân.

  • Một hệ thống Linux thì có nhiều người dùng. Thay vì cấp quyền cho từng user, ta có thể tạo nhóm và gán quyền cho nhóm đó. User nào thuộc nhóm đó sẽ thừa hưởng quyền của nhóm.

Cấu Trúc

  • Mỗi user sẽ có một nhóm chính (primary group), thường tạo cùng lúc với user.
  • Ngoài ra, user còn có thể thuộc nhiều nhóm phụ (secondary groups) khác.

Ví dụ: User: hieubt Nhóm chính: hieubt Nhóm phụ: devops, docker

Các lệnh

  • Xem nhóm hiện có trong hệ thống
Terminal window
cat /etc/group #Xem nhóm của user hiện tại
  • Xem nhóm của user hiện tại
Terminal window
groups
  • Tạo nhóm mới
Terminal window
sudo groupadd ten_nhom
  • Xóa nhóm
Terminal window
sudo groupdel ten_nhom
  • Thêm user vào nhóm
Terminal window
sudo usermod -aG ten_nhom username

-a là append (thêm vào) -G chỉ định nhóm phụ

  • Xóa user khỏi nhóm
  • Linux không có lệnh trực tiếp xóa user khỏi nhóm, phải chỉnh sửa file /etc/group hoặc dùng các công cụ quản lý người dùng.
Terminal window
sudo nano /etc/group
# Phần cuối là danh sách user thuộc nhóm đó, cách nhau bằng dấu phẩy.
testgroup:x:1002:hieubt,otheruser
testgroup:x:1002:otheruser

Tìm hiểu về người dùng trong User. Các loại người dùng trong Linux. Với mỗi loại họ có quyền gì trong hệ thống#

Linux Basic
https://fuwari.vercel.app/posts/dops3/02-linux-basic/linux-basic/
Author
Tan Hieu Bui
Published at
2025-03-21
License
CC BY-NC-SA 4.0