轉自:https://www.cnblogs.com/ttop/p/4085414.html
1.umask掩碼
umask是chmod配套的,總共為4位(gid/uid, 屬主,組權,其它用戶的權限),不過通常用到的是后3個,例如你用chmod 755 file(此時這文件的權限是屬主讀(4)+寫(2)+執行(1),同組的和其它用戶有讀寫權限)
默認情況下的umask值是022(可以用umask命令查看),
- 此時你建立的文件默認權限是644(6-0,6-2,6-2),
- 建立的目錄的默認權限是755(7-0,7-2,7-2)
1.1 規則:
- 若使用者建立為『文件』則預設『沒有可執行 ( x ) 項目』,亦即只有 rw 這兩個項目,也就是最大為 666 分。即 –rw-rw-rw-
- 若使用者建立為『目錄』,則由於 x 與是否可以進入此目錄有關,因此預設為所有權限均開放,亦即為 777 分。 即drwxrwxrwx
2.修改默認umask
在/etc/profile或者~/.profile或~/.bash_profile添加一行命令:
umask ???
也可以在.bashrc中添加,.profile中登錄時自動執行.bashrc文件。
3.創建文件默認可執行?
例子:
[root@vbird test]# umask 003 [root@vbird test]# touch test3 [root@vbird test]# mkdir test4 [root@vbird test]# ll -rw-rw-r– 1 root root 0 Oct 22 00:03 test3 drwxrwxr– 2 root root 4096 Oct 22 00:03 test4/
針對文件test3,如果使用十進制來算666-003=663,那么針對其他用戶是3,即-wx?但實際上並不是這樣,而是-r-,所以此時不能通過十進制的方法來算。
正確算法:
(-rw-rw-rw-) – (——–wx)=-rw-rw-r–
使用rwx來計算。
那么設置新創建的文件為可執行,只能通過chmod命令了,默認情況下是不可以的。
chmod +x file.sh