基础:
drwxr-xr-x 2 oracle dba 4.0K Feb 18 13:36 emc
-rw-r--r-- 1 oracle dba 2.3K Mar 25 17:48 init.ora
以上的drwx 之类的表示文件或目录权限, d表示目录,- 表示文件,第一个rwx 表示用户权限,第二个rwx表示组权限,第三个rwx 表示其他用户权限 。
一 权限掩码umask
umask是chmod配套的,总共为4位(gid/uid, 属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限)
二 umask的作用
默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道umask的用途了吧,它是为了控制默认权限,不要使默认的文件和目录具有全权而设的
三 修改umask值
知道了umask的作用后,你可以修改umask的值了,例如:umask 024则以后建立的文件和目录的默认权限就为642,753了
四 将umask值保存到环境文件
若要长期修改umask的值,可以把它写进/etc/profile或~/.profile或~/.bash_profile中,大家应该知道这几个文件是干什么用的吧。
语法:
umask [选项] [权限掩码]
-S 以字符的方式来表示权限掩码
例:
一、设置文件的权限掩码,使文件自动生成默认权限为rw-rw----
rw-rw----对应的数字就是660,其实每一位用三位2进制来表示,所以3位二进制组成十进制数就得出660,由于要生成的文件默认权限改变,其权限掩码值为:666-660=006
linux@server:~$ umask 006
linux@server:~$ touch abc
linux@server:~$ ll abc
-rw-rw---- 1 linux linux 0 2010-12-11 21:44 abc
umask 777 #创建文件会没有任何权限,他和chmod是相反的。
umask 000 #具有所有权限。但文件没有x权限。
注意:
对于文件的执行权限(即X权限)使用umask命令是无法使其起作用的,系统强制关闭文件的X默认执行权限,只能通过chmod修改
umask只对当前shell环境起作用。