sbf888官方线路
  咨询电话:15554828473

sbf888备用客服

Linux编程 17 文件权限(权限设置chmod,改变文件属主属组关系chown,chgrp)

一. 概述

  如果创建了一个目录或文件,有时会需要改变它的安全性设置,在linux系统上有一些工具可以完成这任务,包括使用chmod命令改变已有默认权限,分别能对属主,属组,其它用户的权限的控制分别以读取、写入、执行3种权限来区分设置,还有使用chown,chgrp来改变默认属主属组关系。

  1 . 改变权限 chmod    chmod命令用来改变文件和目录安全性设置,该命令的三种用法格式如下:      

    model模式参数可以使用八进制或符号模式进行安全性设置,八进制模式设置非常直观,直接用期望赋予文件的标准3位八进制权限码即可。符号模式的权限在设置上就复杂多了,就不讲了,下面来看如何读懂八进制。

    1.1 八进制 模式      八进制模式是指:先取得权限(rwx)的值,然后将其转换成3位二进制值,这二进制值用一个8进制值来表示。 然后组合的3个8进制值分别代表属主,属组,其它用户的权限。

权限

二进制值

八进制值

描述

---

000

0

没有任何权限

--x

001

1

执行权限

-w-

010

2

写入权限

-wx

011

3

写入和执行权限

r--

100

4

读取权限

r-x

101

5

读取和执行权限

rw-

110

6

读取和写入权限

rwx

111

7

全部权限

      通过上面表格说明,我们就能根据文件和目录需要的权限来组合八进制值。例如举列:      如果目录或文件的八进制,组合值为777,代表所有用户都有读,写,执行权限。

      如果目录或文件的八进制,组合值为666,代表所有用户都有读,写权限。

      如果目录或文件的八进制,组合值为744,代表属主有读,写,执行权限。属组有读权限,其它用户有读权限。

      如果目录或文件的八进制,组合值为740,代表属主有读,写,执行权限。属组有读权限,其它用户没有任何权限。

    1.2   演示文件权限

      下面创建一个file1.txt文件,默认权限是:属主有读写权限,属组和其它用户有只读权限。如下图所示:        |

      使用属主root用户操作file1.txt,有写读权限,如下图所示:              使用其它用户hsr,操作file1.txt, 只有读权限,如下图所示:              切换到root用户下,使用chmod命令,增加其它用户写入权限,设置如下图所示:              切换到其它用户hsr,操作file1.txt,此时有了读和写的权限,如下图所示:        

 

  2. 改变属主关系

    有时需要改变文件的属主,比如:有人离职要改变属主,或者文件要改变到属主下。在linux中提供了两个命令一是chown命令用来改变文件的属主。二是chgrp命令用来改变文件的默认属组。

    2.1 chown      使用chown来改变文件的属主,可以用登录名或UID来指定文件的新属主。之前在安装mysql时,使用chown -R将/usr/local/mysql目录下的所有文件和目录。属主改为了mysql用户和属组为mysql组。如下图所示:

              chown的-R选项可以递归改变子目录和文件的所属关系。-h选择可以改变文件的所有符号链接文件的所属关系。

        (1)   修改属主关系,在root用户下创建,默认是root属主,使用chown -R修改属主为hsr,如下图所示:                (2)   修改属主和属组关系。在root用户下创建,默认是root属组,使用chown -R修改属组为hsr, 注意hsr.hsr第二个hsr 是组名。如下图所示:             2.2 chgrp

       上面使用root用户在创建文件时,默认的属组是root组,使用了chown来改变了属组,下面使用chgrp命令也可以改变默认属组,如下将file文件默认属主改为root,如下图所示