Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Các hàm chmod, fchmod và fchmodat cho phép chúng tôi thay đổi quyền truy cập tệp

cho một tệp


hiện có. chmod cho
phép thay đổi quyền (read, write, execute) của các tệp và thư
mục. chown cho phép thay đổi chủ sở hữu (user, group) của một tệp hoặc thư
mục nhất định
int chmod(const char *pathname, mode_t mode);

Quyền được tạo ra sẽ được tính bằng tổng của các con số được quy ước như sau:

Number Permission
4 Read
2 Write
1 Execute
<?php
chmod("/somedir/somefile.txt", 764);
chmod("/somedir/somefile2.txt", "u+rwx,go+rx");
?>
Khi sử dụng số ví dụ 764 thì vị trí đầu tiên (số 7) là quyền của người dùng, vị trí
thứ 2 (số 6) là quyền của nhóm, vị trí thứ 3 (số 4) là quyền của người dùng khác.

Như vậy với 764 ta có:

 Người dùng: 7 = 4 + 2 + 1 = read + write + execute


 Nhóm: 6 = 4 + 2 = read + write
 Người dùng khác: 4 = read

Cú pháp của lệnh chown rất đơn giản. VD:


chown -R chungtran:admin /somedir

Lệnh này có ý nghĩa như sau:

Hey babe, cho người dùng  chungtran  từ nhóm  admin  làm chủ sở hữu của thư
mục  /somedir  và các thư mục con của nó giúp tôi nha.

 Umask (viết tắt của user file-creation mode mask  hay user-mask) và Base Permission là gì?

Trong Linux, khi một file hay một thư mục được tạo ra thì các quyền hạn truy cập đối với chúng
là (read, write, execute) cho các chủ thể (owner, group, other) sẽ được xác định dựa trên hai giá
trị là quyền truy nhập cơ sở (base permission)  và mặt nạ (mask).
  Base Permission là giá trị được thiết lập sẵn từ trước, và ta không thể thay đổi được

+ đối với file thông thườnggiá trị base perm là 666 (rw-rw-rw-)

+ đối với thư mục (file đặc biệt) giá trị base perm là 777 (rwxrwxrwx)

 Mask là giá trị đựợc thiết lập bởi người dùng bằng lệnh umask

Giá trị Mask sẽ “che đi” một số bit trong Base Permission để tạo ra quyền truy cập chính thức cho
file (tương tự như cơ chế của subnet mask).

Cụ thể, quyền truy cập chính thức được tính bằng cách lấy“giá trị nhị phân của Base permission
”AND“ dạng biểu diễn  bù 1  của mask”

Ví dụ:

Vì Base Permission của file bất kỳ luôn là 666 (tức 110110110 khi chuyển sang dạng nhị phân),
nên nếu giá trị mask là 022 (có dạng nhị phân là 000010010 => dạng bù 1 của nó thì chuyển 1-
>0, 0->1 nên ta được 111101101) thì quyền truy nhập chính thức của file sẽ là:

110 110 110 AND 111 101 101 = 110 100 100 = 644 (rw-r–r–)

Cũng có thể tính quyền truy cập chính thức đơn giản hơn bằng cách lấy 666 – 022 = 644

You might also like