<![CDATA[Latest posts for the topic "Tìm hiểu về umask"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Tìm hiểu về umask Nguồn: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html http://www.sun.com/bigadmin/content/submitted/umask_permissions.html umask là gì? umask được sử dụng để kiểm soát quyền mặc định của các files mới khi nó được tạo ra. umask gồm 4 chữ số trong hệ cơ số 8 (four-digit octal) Gán umask mặc định như thế nào? Bạn có thể gán umask mặc định trong /etc/bashrc hoặc /etc/profile cho tất cả các users. Phần lớn các distro đều gán là 0022 hoặc 0002. Để gán umask cho một user xác định nào đó, bạn có thể chỉnh sửa ~/.bashrc của user đó và thêm vào dòng sau:
umask 022 
Lưu lại, logout và login lại để thay đổi trên có hiệu lực. 0022 và 0002 nghĩa là gì? umask mặc định 0002 được sử dụng cho normal user. Với mặt nạ (mask) này, quyền mặc định của thư mục sẽ là 775 và quyền mặc định của file sẽ là 664. umask mặc định cho root là 0022, nghĩa là quyền mặc định của thư mục sẽ là 755 và quyền mặc định của file sẽ là 644. Nôm na bạn có thể hiểu rằng: Trước khi file hoặc thư mục được tạo ra, quyền truy cập đối với chúng được xác định dựa vào hai giá trị: quyền truy cập cơ sở (base permissions) và mặt nạ (mask). Đối với thư mục, quyền truy cập cơ sở là 0777(rwxrwxrwx), còn đối với files là 0666 (rw-rw-rw). Thiết lập giá trị mask như thế nào? Giá trị "mask" được thiết lập nhờ lệnh umask. Tất cả các file và thư mục được tạo ra sau đó sẽ chịu ảnh hưởng của giá trị mask mới. Để tính toán quyền truy cập thư mục với umask 022 (root user): Quyền truy cập mặc định: 777 Giá trị umask: 022 Quyền truy cập cho phép: 755 Để tính toán quyền truy cập file với umask 022 (root user): Quyền truy cập mặc định: 666 Giá trị umask: 022 Quyền truy cập cho phép: 644 Lấy một ví dụ đơn giản: Bạn cần gán umask để các files được tạo ra sau đó sẽ có permissions là 600. Ta có: Quyền truy cập mặc định: 666 Giá trị umask: 066 Quyền truy cập cho phép: 600 Code:
$ umask 066
$ touch test.txt
$ ls -l test.txt 
-rw------- 1 quanta quanta 0 2008-02-16 17:38 test.txt
]]>
/hvaonline/posts/list/19296.html#115054 /hvaonline/posts/list/19296.html#115054 GMT
Re: Tìm hiểu về umask ??? ]]> /hvaonline/posts/list/19296.html#140141 /hvaonline/posts/list/19296.html#140141 GMT Re: Tìm hiểu về umask

281 wrote:
Đố vui: Quyền truy cập mặc định: 666 Giá trị umask: 123 Hỏi quyền truy cập cho phép: ???  
Bằng số: 543 Bằng chữ: rx r wx :D ]]>
/hvaonline/posts/list/19296.html#140145 /hvaonline/posts/list/19296.html#140145 GMT
Re: Tìm hiểu về umask

nil wrote:

281 wrote:
Đố vui: Quyền truy cập mặc định: 666 Giá trị umask: 123 Hỏi quyền truy cập cho phép: ???  
Bằng số: 543 Bằng chữ: rx r wx :D  
chưa đúng, :) ]]>
/hvaonline/posts/list/19296.html#140147 /hvaonline/posts/list/19296.html#140147 GMT
Re: Tìm hiểu về umask

281 wrote:

nil wrote:

281 wrote:
Đố vui: Quyền truy cập mặc định: 666 Giá trị umask: 123 Hỏi quyền truy cập cho phép: ???  
Bằng số: 543 Bằng chữ: rx r wx :D  
chưa đúng, :)  
Hì, đã gọi là đố vui mà, bác nil thật thà quá. Đáp án: 644]]>
/hvaonline/posts/list/19296.html#140149 /hvaonline/posts/list/19296.html#140149 GMT
Re: Tìm hiểu về umask /hvaonline/posts/list/19296.html#140154 /hvaonline/posts/list/19296.html#140154 GMT Re: Tìm hiểu về umask

learn2hack wrote:
Đúng là 644 thật, vừa mới test thử luôn. Tớ nghĩ nguyên do là vì 2 điểm sau, nếu không đúng mong mọi người góp ý: - owner lúc nào cũng có đầy đủ quyền hạn trên file do mình tạo ra mặc cho umask là thế nào. Trong trường hợp trên thì owner sẽ có quyền là rw (do quyền mặc định là 666). - user trong cùng group bao giờ cũng có quyền hạn cao hơn other. Trong trường hợp trên các user trong group có quyền đọc (r - tương ứng với 4), vì thế user không cùng group sẽ chỉ nhận được quyền tối đa là đọc mà không thể ghi (r - ứng với 4), mặc dù kết quả tương tác với umask ra là 3 (tức là có quyền ghi). Cho nên đáp án là 644 như quanta nói. 
Tiếc là giải thích này của learn2hack chưa chính xác, :) Quyền truy cập cho phép là kết quả giữa phép toán sau: Quyền truy cập cho phép = "quyền truy cập mặc định" AND (NOT (Giá trị umask)) Ví dụ: Quyền truy cập mặc định: 666 = 110 110 110 Giá trị umask: 123 = 001 010 011 --> NOT (Giá trị umask) = NOT (001 010 011) = 110 101 100 Quyền truy cập cho phép = 110 110 110 AND 110 101 100 = 110 100 100 = 644]]>
/hvaonline/posts/list/19296.html#140166 /hvaonline/posts/list/19296.html#140166 GMT
Re: Tìm hiểu về umask

281 wrote:
Quyền truy cập mặc định: 666 = 110 110 110  
Để ý thêm một chút là "execute bit" của "base permissions" bằng 0 (off), mà trong phép toán AND (logical), kết quả chỉ là 1 khi cả 2 bit đều bằng 1, do đó bạn không thể tạo ra một file với quyền thi hành (execute bit) bằng 1 (on) sẵn được (mà phải chmod sau khi file được tạo ra).]]>
/hvaonline/posts/list/19296.html#140188 /hvaonline/posts/list/19296.html#140188 GMT
Re: Tìm hiểu về umask /hvaonline/posts/list/19296.html#140303 /hvaonline/posts/list/19296.html#140303 GMT Re: Tìm hiểu về umask

mrtantien wrote:
Cám ơn các bác. Vậy mà em đọc tài liệu chỉ đọc được đoạn "777-022" hoặc "666-002". May mà đọc bài này mới biết thuật toán chính xác của bác quanta đưa ra. 
Đính chính: bạn 281 chỉ ra, không phải là tớ.]]>
/hvaonline/posts/list/19296.html#140304 /hvaonline/posts/list/19296.html#140304 GMT
Tìm hiểu về umask Nếu file mới tạo ra có quyền truy xuất là 236 thì umask là bao nhiêu? ]]> /hvaonline/posts/list/19296.html#209161 /hvaonline/posts/list/19296.html#209161 GMT Tìm hiểu về umask

shell-command wrote:
Hỏi ngược lại chút: Nếu file mới tạo ra có quyền truy xuất là 236 thì umask là bao nhiêu?  
236 = 010 011 110 Để ý bit execute ở trên. Bởi vì "bạn không thể tạo ra một file với quyền thi hành (execute bit) bằng 1 (on) sẵn được (mà phải chmod sau khi file được tạo ra)" nên sẽ không có umask nào thoả mãn yêu cầu của bạn.]]>
/hvaonline/posts/list/19296.html#217257 /hvaonline/posts/list/19296.html#217257 GMT
Tìm hiểu về umask /hvaonline/posts/list/19296.html#236071 /hvaonline/posts/list/19296.html#236071 GMT Tìm hiểu về umask

shankstocdo wrote:
sao umask =022 và umask=123 lại cho kết quả truy xuất giống nhau đều bằng 644 nhi? ai có thể giải thick không? 
Đơn giản là vì ( 666 & (^022) ) = (666 & (^123) ) = 644 Nếu tạo folder thì sẽ ra kết quả khác]]>
/hvaonline/posts/list/19296.html#236117 /hvaonline/posts/list/19296.html#236117 GMT
Tìm hiểu về umask /hvaonline/posts/list/19296.html#241238 /hvaonline/posts/list/19296.html#241238 GMT