ls -l中显示的内容如下:
<code>-rwxrw-r‐-1 root root 1213 Feb 2 09:39 file01</code>
- 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:改变文件属主和属组
<code>[root@liang-study home]</code><code># ll yull.txt </code>
<code>-rw-r--r--. 1 root root 0 Dec 14 23:16 yull.txt</code>
<code>[root@liang-study home]</code><code># chown user02:user01 yull.txt </code>
<code>-rw-r--r--. 1 user02 user01 0 Dec 14 23:16 yull.txt</code>
-R:递归修改目录下所有文件的属主和属组
--reference 参考文件 被修改文件:将被修改文件的属主和属组修改为参考文件的属主和属组
chgrp:修改文件的属组
<code>-rw-r--r--. 1 user02 root 0 Dec 14 23:16 yull.txt</code>
chmod:修改文件权限
修改三组用户权限
<code>[root@liang-study home]</code><code># chmod 755 yull.txt #修改权限为755</code>
修改某类用户的权限
<code>[root@liang-study home]</code><code># chmod g=rwx yull.txt #修改组权限</code>
<code>[root@liang-study home]</code><code># chmod a=rwx yull.txt #修改所有权限</code>
<code>[root@liang-study home]</code><code># chmod o=w,u=rwx yull.txt #修改其他用户为写入权限,属主为读写执行</code>
修改某类用户的某个权限
<code>[root@liang-study home]</code><code># chmod o+w yull.txt #给其他用户添加写权限</code>
<code>[root@liang-study home]</code><code># chmod o-x yull.txt #给其他用户删除执行权限</code>
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值。
例子:
<code>[root@liang-study tmp]</code><code># umask 023</code>
<code>[root@liang-study tmp]</code><code># touch a.txt</code>
<code>[root@liang-study tmp]</code><code># mkdir test</code>
<code>[root@liang-study tmp]</code><code># ll</code>
<code>total 4</code>
<code>-rw-r--r-- 1 root root 0 Dec 16 17:26 a.txt</code>
<code>drwxr-xr-- 2 root root 4096 Dec 16 17:26 </code><code>test</code>
注:上例中,我们设置了umask码为023,因此创建目录test时权限为777-023=754
按照前面的叙述,创建文件a.txt文件时应为666-023为643,但实际表现为644,这是因为linux默认不允许文件有执行权限,故如果umask设置为文件有执行权限,在创建时会自动加1。
本文转自 亮公子 51CTO博客,原文链接:http://blog.51cto.com/iyull/1882856