hyj 发表于 2014-1-17 00:23:43

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

本帖最后由 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. 用数字表示法修改权限
         给文件所有权限chmod 777 aa.txt       给属主执行权限chmod 755 aa.txt
          给属主和属组权限chmod 770 aa.txt2. 文本表示法
       减去所有用户的执行权限chomd ugo-x aa.txt       给属主增加执行权限


chmod u+x aa.txt

   修改文件的属性组


chgrp wangxujun aa.txt 给所有人执行权限
chmod a+x aa 给所有人减去执行权限


chmod a-x aa 给所有人所有权限
chmod a+x ,a+r ,a+w aa

   3.更换用户    上面讲的只是文件权限的增加和减少,下面举例该如何更换用户   范例 :
   将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :chown jessie:users file1.txt   将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :chown -R lamport:users *   将test3.txt文件的属主改为test用户。# ls -l test3.txt
-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt
# chown test:root test3.txt
# ls -l test3.txt
-rw-r–r– 1 test root 0 2009-10-23 9:59chown所接的新的属主和新的属组之间可以使用:连接,属主和属组之一可以为空。如果属主为空,应该是“:属组”;如果属组为空,“:”可以不用带上。 # ls -l test3.txt
-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt

# chown :test test3.txt <==把文件test3.txt的属组改为test
# ls -l test3.txt
-rw-r–r– 1 test test 0 2009-10-23 9:59 test3.txtchown也提供了-R参数,这个参数对目录改变属主和属组极为有用,可以通过加 -R参数来改变某个目录下的所有文件到新的属主或属组。# ls -l testdir <== 查看testdir目录属性
drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==文件属主是usr用户,属组是 root用户
# ls -lr testdir <==查看testdir目录下所有文件及其属性
total 0
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test1.txt
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test2.txt
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test3.txt
# chown -R test:test testdir/ <==修改testdir及它的下级目录和所有文件到新的用户和用户组
# ls -l testdir
drwxr-xr-x 2 test test 0 2009-10-23 10:38 testdir/
# ls -lr testdir
total 0
-rw-r–r– 1 test test 0 2009-10-23 10:38 test1.txt
-rw-r–r– 1 test test 0 2009-10-23 10:38 test2.txt
-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) -- 所有用户都有读、写、执行权限。更不可取的做法。





页: [1]
查看完整版本: 云技术基础:如何解决linux超级用户root不能操作文件-文件权限解析及修改