天天看点

linux基础--文件权限管理

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

继续阅读