ls -l中显示的内容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 file01
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:(属主)文件所有者的权限是读、写和执行
- 第二组rw-:(属组)与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:(其他用户)不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户属主
- root表示用户属组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- file01 表示文件名
权限管理:
chown、chgrp、chmod、umask
chown:改变文件属主和属组
[root@liang-study home]# ll yull.txt -rw-r--r--. 1 root root 0 Dec 14 23:16 yull.txt[root@liang-study home]# chown user02:user01 yull.txt [root@liang-study home]# ll yull.txt -rw-r--r--. 1 user02 user01 0 Dec 14 23:16 yull.txt
-R:递归修改目录下所有文件的属主和属组
--reference 参考文件 被修改文件:将被修改文件的属主和属组修改为参考文件的属主和属组
chgrp:修改文件的属组
[root@liang-study home]# ll yull.txt -rw-r--r--. 1 user02 root 0 Dec 14 23:16 yull.txt
chmod:修改文件权限
修改三组用户权限
[root@liang-study home]# chmod 755 yull.txt #修改权限为755
修改某类用户的权限
[root@liang-study home]# chmod g=rwx yull.txt #修改组权限[root@liang-study home]# chmod a=rwx yull.txt #修改所有权限[root@liang-study home]# chmod o=w,u=rwx yull.txt #修改其他用户为写入权限,属主为读写执行
修改某类用户的某个权限
[root@liang-study home]# chmod o+w yull.txt #给其他用户添加写权限[root@liang-study home]# chmod o-x yull.txt #给其他用户删除执行权限
umask:设置文件的遮罩码
什么是umask
你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命 令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile或.bashrc文件中。
管理员的umask为:0022
普通用户的umask为:0002
创建文件的默认权限就是666-umask
创建目录的默认权限就是777-umask
因此,假设使用root用户登录,umask为0022,则创建文件的权限的为666-022=644
假设使用普通用户登录,umask为0002,则创建文件的权限的为666-002=664
可以通过umask来设置umask值。
例子:
[root@liang-study tmp]# umask 023[root@liang-study tmp]# touch a.txt[root@liang-study tmp]# mkdir test[root@liang-study tmp]# lltotal 4-rw-r--r-- 1 root root 0 Dec 16 17:26 a.txtdrwxr-xr-- 2 root root 4096 Dec 16 17:26 test
注:上例中,我们设置了umask码为023,因此创建目录test时权限为777-023=754
按照前面的叙述,创建文件a.txt文件时应为666-023为643,但实际表现为644,这是因为linux默认不允许文件有执行权限,故如果umask设置为文件有执行权限,在创建时会自动加1。