Tác vụ xử lý tệp tin Linux: Liên kết và quản lý người dùng

1. Khái niệm loại tệp tin

1. Chi tiết thông tin tệp tin:
   Cột 1: Số inode
      inode (nút chỉ mục): số nhận dạng trong hệ thống máy tính
   Cột 2: Loại tệp tin
   Cột 3: Số lượng liên kết cứng
   Cột 4: Tên người dùng sở hữu
   Cột 5: Nhóm sở hữu
   Cột 6: Kích thước tệp tin
   Cột 7-9: Thời gian sửa đổi tệp tin
   Cột 10: Tên tệp tin (không phải thuộc tính)

2. Số inode:
   Định danh duy nhất của tệp tin trong hệ thống Linux, số nhận dạng của tệp tin trong máy tính
   Liên kết trực tiếp với địa chỉ lưu trữ trong bộ nhớ hệ thống

3. Liên kết cứng và liên kết mềm:
   1. Liên kết cứng:
      Liên kết cứng trỏ đến số inode

   2. Liên kết mềm:
      Liên kết mềm trỏ đến đường dẫn tệp tin tương ứng (đường dẫn tệp tin mất đi thì liên kết mềm cũng mất hiệu lực)
      Tương tự như shortcuts trong Windows

   3. Lệnh tạo:
      ln [đường dẫn tệp tin] [đường dẫn tệp tin liên kết] - tạo liên kết cứng
      Tham số:
         -s:
            ln -s [đường dẫn tệp tin] [đường dẫn tệp tin liên kết]

   4. Logic xóa tệp tin ở tầng thấp:
      1. Xóa liên kết cứng
      2. Kiểm tra số lượng liên kết cứng của tệp tin có bằng 0 không
      3. Nếu bằng 0 thì xóa tệp tin khỏi đĩa
      4. Nếu không bằng 0, chỉ xóa liên kết cứng tương ứng

2. Cơ sở để xác định loại tệp tin

Ký tự đầu tiên trong kết quả hiển thị đại diện cho loại tệp tin
   1. Tệp tin thông thường: f (-)
   2. Thư mục: d
   3. Tệp tin liên kết: l
   4. Tệp tin thiết bị: b, c
      b: tệp tin đĩa
      c: tệp tin ký tự
   5. Tệp tin socket: s
   6. Tệp tin pipe: p

Ký tự kết thúc tệp tin
   .conf: thường là tệp tin cấu hình
   .py: thường là tệp tin Python
   .sh: thường là kịch bản

Cài đặt MySQL
   yum install mariadb* -y

Lưu ý:
   Không thể xác định loại tệp tin dựa trên màu sắc
   Tạo màu sắc:
      --color=auto

3. Lưu trữ liên quan - inode và block

1. inode:
   Số inode không vô hạn, khi sử dụng hết sẽ báo lỗi
   no space left on device (không gian đĩa không đủ)

2. block:
   Mỗi block 4KB, hệ thống đọc đĩa theo đơn vị block
   Tệp tin có thể chiếm nhiều block, block cuối cùng không đủ 4KB cũng không được dùng cho tệp tin khác
   Đĩa đầy sẽ báo lỗi

4. Người dùng và nhóm người dùng

1. Người dùng:
   Tương đương với tài khoản
   root: người dùng siêu quản trị

2. Nhóm người dùng:
   Tập hợp các tài khoản có thuộc tính giống nhau
   root: nhóm siêu quản trị, quyền hạn siêu quản trị được chia sẻ một phần cho thành viên

3. Lệnh tạo người dùng hoặc nhóm người dùng: mặc định tạo người dùng thông thường
   useradd [tên người dùng]
      Tham số:
         -g: chỉ định nhóm người dùng (nhóm người dùng phải tồn tại)
            useradd [tên người dùng] -g [tên nhóm]
         -r: tạo người dùng hệ thống
            useradd [tên người dùng] -r
         -M: không tạo thư mục home
            useradd [tên người dùng] -M
         -u: chỉ định ID người dùng khi tạo
            useradd -u [ID] [tên người dùng]

   Người dùng hệ thống:
   ID trong khoảng 0-999, có thể coi là người dùng hệ thống
   Người dùng hệ thống thường dùng để khởi động chương trình, thường không cần đăng nhập

   Người dùng thông thường:
   ID lớn hơn 1000, coi là người dùng thông thường
   Người dùng thông thường thường dùng để đăng nhập

4. Xem ID người dùng hoặc nhóm:
   id [tên người dùng]

5. Tạo nhóm người dùng:
   groupadd
      Tham số:
         -g: chỉ định ID nhóm người dùng
            groupadd -g [ID nhóm] [tên nhóm]

6. Chuyển đổi người dùng:
   su - [tên người dùng]
   su [tên người dùng]

7. Xem chi tiết người dùng:
   /etc/passwd
   cat /etc/passwd

   root:x:0:0:root:/root:/bin/bash
      root: tên người dùng
      x: trình giữ chỗ mật khẩu
      0: ID người dùng
      0: ID nhóm
      root: mô tả nhận dạng
      /root: thư mục home
      /bin/bash: trình phân tích mặc định

8. Trình phân tích:
   bash
   sh
   zsh
   Có thể cài đặt trình phân tích bằng yum

5. Tệp tin liên quan đến người dùng

1. /etc/passwd
   root:x:0:0:root:/root:/bin/bash
      root: tên người dùng
      x: trình giữ chỗ mật khẩu
      0: ID người dùng
      0: ID nhóm
      root: mô tả nhận dạng
      /root: thư mục home
      /bin/bash: trình phân tích mặc định
   
2. /etc/shadow
   root:$6$CGjG08HR$MgY5/z9rrRxGAZSje8WRhuOgW3oIfV7YEoQHC3FfRGMtRiJ5vc9/eSQu.6F7idv41KWWXdVqvNF7wX9dz1FXP1:18974:0:99999:7:::
   Lưu ý: chỉ có người dùng root có quyền đọc tệp tin này
   Lưu ý: nếu tệp tin này thay đổi quyền cần lưu ý có phải bị tấn công độc hại
   Tên người dùng:
   Mật khẩu đã mã hóa:
   Thời gian sửa đổi lần cuối: số ngày từ 1.1.1970 đến ngày sửa đổi mật khẩu
   Khoảng thời gian tối thiểu giữa các lần sửa đổi: 0: có thể thay đổi bất cứ lúc nào, nếu có số thì là n ngày không thể thay đổi mật khẩu
   Thời hạn hiệu lực mật khẩu: mặc định 99999. Có thể đặt, sau n ngày phải thay đổi mật khẩu
   Số ngày cảnh báo trước khi thay đổi mật khẩu: mặc định 7. Hệ thống tự động nhắc nhở 7 ngày trước khi mật khẩu hết hạn
   Thời gian miễn trừ sau khi mật khẩu hết hạn: sau khi mật khẩu hết hạn mà chưa thay đổi, mật khẩu này còn hiệu lực trong bao lâu, n là n ngày, 0 là hết hiệu lực ngay lập tức, -n là không bao giờ hết hiệu lực
   Thời gian hết hạn tài khoản: từ 1.1.1970 đến một khoảng thời gian, tài khoản sẽ hết hạn sau đó
   Trường giữ chỗ
      Không có chức năng, chờ thêm chức năng mới

3. /etc/group
   root:x:0:
      root: tên nhóm
      x: trình giữ chỗ mật khẩu nhóm
      0: ID nhóm
      : người dùng phụ thuộc trong nhóm

4. /etc/gshadow
   root:::
      root: tên nhóm
      : mật khẩu nhóm (!: khi trường này trống là !, có nghĩa là không có quản trị viên nhóm)
      : quản trị viên nhóm
      : người dùng phụ thuộc trong nhóm

6. Bài tập

Tạo người dùng không dùng useradd
   1. Vào tệp tin lưu thông tin người dùng bằng vim, vào chế độ chỉnh sửa
   2. Nhập tên người dùng + :
   3. Nhập mật khẩu có thể trống + :
   4. Nhập ID (người dùng hệ thống 1-999, người dùng thông thường 1000 trở lên) + :
   5. Nhập ID nhóm (có thể nhập 0 hoặc ID nhóm bất kỳ) + :
   6. Nhập thông tin mô tả có thể bỏ qua + :
   7. Nhập /home/[tên người dùng] (đây là thư mục home của người dùng) + :
   8. Nhập /bin/bash (đây là trình phân tích)
   9. Thoát vim
   10. Nhập su [tên người dùng] để kiểm tra

Thẻ: linux inode file system user management file operations

Đăng vào ngày 19 tháng 5 lúc 09:33