Life would be so much simple if we don't care so much

Posts tagged ‘umask’

Linux – quyền truy cập default – umask

Khi tạo mới 1 thư mục hoặc 1 file thì có lẽ mọi quyền truy cập sẽ là như nhau. umask là 1 cơ chế để thiết lập quyền truy cập file default cho file và thư mục.

1. Check giá trị umask

Sau khi đã hoàn tất login vào OS thì umask đã được thiết lập sẵn. Bởi vì trong file /etc/bashrc (là file được execute khi login vào OS) đã có 1 descriptor dùng để assign giá trị umask cho user.
Để check giá trị umask hiện tại có thể run command umask mà không cần chỉ định option

$ umask
0002
Giá trị umask hiện tại đang là 0002 (ý nghĩa của giá trị này sẽ giải thích sau)

Nếu chỉ định option「-S」thì có thể confirm được quyền truy cập default của thư mục dưới dạng symbol mode

$ umask -S
u=rwx,g=rwx,o=rx
***Note

Đối với từng account thì giá trị umask sẽ được thiết lập.

2. Setting umask

Để setting umask thì ở lệnh umask sẽ viết giá trị umask và run

vd: Trong trường hợp set giá trị umask thành 0022
$ umask
0002 ← giá trị hiện tại 0002

$ umask 0022 ← set umaskt thành 0022

$ umask
0022 ← giá trị umask bây giờ là 0022

3. Cách tính umask

Dựa theo option mà cách thức tính giá trị umask sẽ được giải thích ở phần này.
Đối với file và folder thì cách tính toán sẽ khác nhau nhưng xác định được bạn muốn quyền truy cập default sẽ như thế nào thì có thể setting được.

Bạn có thể tính umask value bằng cách trừ đi giá trị quyền truy cập default từ 666 (đối với file) và 777 (đối với thư mục) (Giá trị umask có 1 số ngoại lệ nên hãy tham khảo table thêm. Không thể assign được phân quyền cho giá trị inital của file.)

Trường hợp muốn set giá trị access default của file và thư mục là 755 thì làm như sau:

777-755=022

umask 022 hoặc umask 0022 thì phần numeric có thể được set trong 4 ký tự. Có thể set default quyền access của thư mục là 755

4. Bảng cheat umask

Đối với giá trị umask đã chỉ định, thì dưới đây là bảng so sánh giữa quyền truy cập của file và thư mục

umask value default access of directory default access of file
0 rwx rw-
1 rw- rw-
2 r-x r–
3 r– r–
4 -wx -w-
5 -w- -w-
6 –x —
7 — —

5. Chỉ định symbol mode cho umask

Có thể execute giá trị umask theo symbol mode dưới đây. Cũng giống như symbol mode của chmod

umask u=rwx,g=rwx,o=rx
memo

※ Phần execute authority của file được tạo sẽ bị ignored.

Các sample sử dụng
$ umask -S
u=rwx,g=rwx,o=rx  ← Phần Other ko set phân quyền cho quyền write

$ umask u=rwx,g=rwx,o=rwx ← Phần Other không được chỉ định rwx

$ umask -S
u=rwx,g=rwx,o=rwx  ← Phần Other đã trở thành rwx

$ mkdir dir
$ ls -l
drwxrwxrwx 2 user1 user1 4096 7月 30 09:21 dir ← Default quyền truy cập ở phần Other của directory trở thành rwx
$ umask u=rwx,g=rwx,o=rx  ← Phần Other thì w đã bị remove

$ umask -S
u=rwx,g=rwx,o=rx

$ umask
0002

$ mkdir dir2
$ ls -l
drwxrwxr-x 2 user1 user1 4096 7月 30 09:21 dir2 ← Phần Other thì w đã bị remove
symbol mode của umask hay cũng giống như symbol mode của chmod thì có thể thêm hoặc xoá bớt ký tự

$ umask -S
u=rwx,g=rwx,o=rx

$ umask o+w  ← Phần Other thì w (quyền write) được thêm vào

$ umask -S
u=rwx,g=rwx,o=rwx ← Phần Other thì w (quyền write) được thêm vào

Tham khảo