Linux Basic 04
Introduction
EHCTF
Category: Misc
Write-up date: 03/03/2025
Question: Trong linux, cách để set một file mà owner có quyền viết, thực thi đọc; Group và Other User không có quyền gì cả
Point: 200
Solve
Trong linux chia ra làm 3 nhóm phân quyền chính có thể tác động đến file là:
- Owner: quyền của user sở hữu file.
- Group: quyên của những user thuộc một group mà sở hữu file này.
- Other: Quyền của các user khác trên máy tính.
Và cấu trúc phân quyền của linux thì tuần tự từ trái sang phải với quyền của owner được đặt ở đầu và other được đặt ở
cuối như sau:

Quyền trong linux thường được biểu diễn bằng hai dạng, dạng chữ và dạng số Và vì ở bài trên, tác giả yêu cầu biểu diễn bằng dạng số nên chúng ta sẽ tập chung vào giải thích dạng số.
Trong linux có bốn quyền cơ bản là read, write, execute và deny được biểu diễn bằng dạng số là
- read: 4 (100)
- write: 2 (010)
- execute: 1 (001)
- deny: 0 (000)
Theo cách tính số như trên, người dùng hoàn toàn có thể cộng vào với nhau để tạo thành một phân quyền hoàn chỉnh. Ví dụ người dùng a muốn đọc và viết file, ta hoàn toàn có thể biểu diễn bằng 4 + 2 = 6
Vậy để owner có quyền đọc, viết và thực thi file, ta cần có quyền là 4 (read) + 2 (write) + 1 (execute) = 7
Còn hai nhóm còn lại, đều không được đề cập đến nên mặc định chúng ta sẽ để quyền là 0
Kết hợp lại quyền ta cần đặt cho file đó là 700
Trong linux câu lệnh để gán quyền cho file là chmod, vậy cách set quyền cho một file mà owner có quyền viết, đọc và
thực thi là chmod 700. Vậy flag là EHCTF{chmod_700}nhưng khí chúng ta submit hệ thống báo lỗi, tại sao nhỉ.
Sau khi đọc kỹ lại đề, ta thấy đề bài không đề cập gì đến bản thân chúng ta là owner, vậy nếu muốn đặt quyền cho một
file bất kỳ mà chúng ta không phải owner, ta phải dùng quyền root để đặt. Vậy nên flag của chúng ta sẽ là
EHCTF{sudo_chmod_700}
FLAG: EHCTF{sudo_chmod_700}