分享

云技术基础:如何解决linux超级用户root不能操作文件-文件权限解析及修改

hyj 发表于 2014-1-17 00:23:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 7694
本帖最后由 pig2 于 2014-1-17 13:05 编辑

在操作Linux的时候,有时候root都没有权限,我们百思不得其解,root已经是最大权限,为啥还不能操作。原因是文件权限被修改了。那么我们就需要认识一下文件权限,及改变文件权限的命令。

    一、该如何读文件权限,权限解析
    每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。
    利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为
    准。第一个字段由10个字符组成,如下:
        -rwxr-xr-x
    第一位表示文件类型,-表示文件,d表示目录
    2-4位表示文件所有者的权限,u权限
    5-7位表示文件所有者所属组成员的权限,g权限
    8-10位表示所有者所属组之外的用户的权限,o权限   
    2-10位的权限总和有时称为a权限
    以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,
    所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。

上面对文件的权限认识了,认识之后该如何修改文件权限。

二、修改文件权限

       修改文件权限的方式有两种一种数字法,一种是文本表示法

     1. 用数字表示法修改权限

         给文件所有权限
  1. chmod 777 aa.txt
复制代码
        给属主执行权限
  1. chmod 755 aa.txt
复制代码

          给属主和属组权限
  1. chmod 770 aa.txt
复制代码
2. 文本表示法
       减去所有用户的执行权限
  1. chomd ugo-x aa.txt
复制代码
      给属主增加执行权限


  1. chmod u+x aa.txt
复制代码


   修改文件的属性组



  1. chgrp wangxujun aa.txt
复制代码
给所有人执行权限
  1. chmod a+x aa
复制代码
给所有人减去执行权限



  1. chmod a-x aa
复制代码
给所有人所有权限

  1. chmod a+x ,a+r ,a+w aa
复制代码


   3.更换用户
    上面讲的只是文件权限的增加和减少,下面举例该如何更换用户
     范例 :
     将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
  1. chown jessie:users file1.txt   
复制代码
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
  1. chown -R lamport:users *   
复制代码
将test3.txt文件的属主改为test用户。
  1. # ls -l test3.txt
  2. -rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt
  3. # chown test:root test3.txt
  4. # ls -l test3.txt
  5. -rw-r–r– 1 test root 0 2009-10-23 9:59
复制代码
chown所接的新的属主和新的属组之间可以使用:连接,属主和属组之一可以为空。如果属主为空,应该是“:属组”;如果属组为空,“:”可以不用带上。
  1. # ls -l test3.txt
  2. -rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt
  3. # chown :test test3.txt <==把文件test3.txt的属组改为test
  4. # ls -l test3.txt
  5. -rw-r–r– 1 test test 0 2009-10-23 9:59 test3.txt
复制代码
chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,可以通过加 -R参数来改变某个目录下的所有文件到新的属主或属组。
  1. # ls -l testdir <== 查看testdir目录属性
  2. drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==文件属主是usr用户,属组是 root用户
  3. # ls -lr testdir <==查看testdir目录下所有文件及其属性
  4. total 0
  5. -rw-r–r– 1 usr root 0 2009-10-23 10:38 test1.txt
  6. -rw-r–r– 1 usr root 0 2009-10-23 10:38 test2.txt
  7. -rw-r–r– 1 usr root 0 2009-10-23 10:38 test3.txt
  8. # chown -R test:test testdir/ <==修改testdir及它的下级目录和所有文件到新的用户和用户组
  9. # ls -l testdir
  10. drwxr-xr-x 2 test test 0 2009-10-23 10:38 testdir/
  11. # ls -lr testdir
  12. total 0
  13. -rw-r–r– 1 test test 0 2009-10-23 10:38 test1.txt
  14. -rw-r–r– 1 test test 0 2009-10-23 10:38 test2.txt
  15. -rw-r–r– 1 test test 0 2009-10-23 10:38 test3.txt
复制代码
以下为常用权限可以记住:

-rw------- (600) -- 只有属主有读写权限。

-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。

-rwx------ (700) -- 只有属主有读、写、执行权限。

-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。

-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。

-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。






没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条