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