Linux

SUID trong linux

SUID là gì

SUID (Set owner User ID up on execution) là một loại file permission đặc biệt. Thông thường một file trong linux khi chạy thì sẽ được kế thừa từ user đang log in. SUID sẽ cấp quyền "tạm thời" cho user chạy file quyền của user tạo ra file (owner). Nói một cách khác, user chạy sẽ có UID và GID của người tạo ra file, khi chạy 1 file hay command.

Một vài ví dụ về SUID

passwd command

Khi thay đổi password chúng ta dùng passwd command, là utility được tạo bởi root. Command passwd sẽ cố để thay đổi một số file như /etc/passwd hay là /etc/shadow. Những file đó cũng là những file được tạo bởi root và chỉ được nhìn bởi root, tuy nhiên vì passwd đã được set SUID nên bạn có thể thực hiện câu lệnh mà không cần sudo.

ping command

Với ping command, khi chạy ping thì ping phải tạo socket files và mở port để gửi, nhận IP packet. User thông thường không có quyển mở file socket cũng như port. Do ping đã được set SUID nên bất kì user nào cũng có thể làm được thao tác này.

Setup SUID

Có thể dùng symbolic hoặc number để set SUID

chmod u+s file1.txt
chmod 4750 file1.txt

Sau khi set SUID

-rwsr--r-- 1 xyz xyzgroup 148 Dec 22 03:46 file1.txt
Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration