Linux权限管理

(一)权限管理

    rw-,rw-,r--就是代表不同用户所拥有的权限。以三个为一组,且均为【rwx】,其中r表示可读,w表示可写,x表示可执行,-表示没有该权限

   而后面的qecode,qecode分别代表了该文件的拥有者以及所在的群组。

   第一组(rw-)为文件拥有者(qecode具备的权限:可读,可写但不可执行。

   第二组(rw-)为所在群组成员(qecode具备的权限:可读,可写当不可执行。

   第三组(r--)为其他账号具备的权限:可读,当不可写,不可执行。

   除了使用【rwx】表示权限之外,也可以使用数字来表示:r:4,w:2,x:1。所以[rw-,rw-,r--]也可以表示为[6,6,4],该文件的权限属性为664。

(二)权限的意义

    文件:

    r:可读取此一文件的实际内容,如读取文本文件的文字内容等。

    w:可以编辑、新增或者是修改该文件的内容(但不含删除该文件,拥有当前目录的wx权限,才可以删除文件)。

    x:该文件具有可以被系统执行的权限。

    注意: 

        (1)我们的文件是否能被执行是由“x”这个权限决定的,而跟文件名是没有绝对的关系。 

        (2)当你对一个文件具有w权限是,并不具备删除该文件本身的权限。对于文件的r,w,x来说,主要都是针对“文件的内容”而言,与文件名的存在与否没有关系。

    目录:

    r:表示具有读取目录结构列表的权限。 

    w:具有更改该目录结构列表的权限。包括: 

        新建新的文件和目录 

        删除已经存在的文件与目录 删除需要同时拥有wx权限,因为删除时需要先进入到目录中

        将已存在的目录或文件进行重命名 

        转移该目录内的文件,目录位置 

    x:代表用户能否进入该目录成为工作目录的途径。

(三)修改权限的指令

    chgrp :改变文件所属群组

    可以使用chgrp改变文件所属的群组,不过群组必须存在。

chgrp [-R] groupName fileName/dirName //-R表示递归将该目录下所有文件及目录修改群组

    chown :改变文件拥有者

    可以使用chown改变文件的拥有者,不过用户必须存在。

    

chown [-R] groupName fileName/dirName
//也可以使用chown修改群组和拥有者,用户名与群组之间用.或:隔开
chown user.group fileName/dirName 
chown user:group fileName/dirName

    chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性

(四)使用数字类型改变文件的权限

    Linux 文件的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的 read/write/execute 权限。其中r=4,w=2,x=1。

chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

    如果想将文件的属性改为740(即rwxr-----),则指令为

 chmod 740 fileName

(五)使用字符类型改变文件的权限

    当我们需要重新给文件赋予新的权限时,使用数字类型的权限比较方便,而如果想单独修改其中一个权限,或者在原来的权限基础上进行修改,则字符类型的权限比较方便。如果是使用字符类型的权限,则指令如下:

Linux权限管理_第1张图片

    u:user,g:group,o:others,a:all

    如果想赋予文件新的权限,可以

chmod u=rwx,go=rx fileName //表示user的权限为rwx,group和others的权限为rx

    如果想单独给文件拥有者增加可读权限,可以

chmod u+r fileName //表示给user增加r权限

    如果想给分组减去可写权限

chmod g-w fileName
//表示group失去了可写权限

(六)文件预设权限umask

    在创建文件或目录时,其默认的权限跟umask有关。

# 查看umask的方式
umask # 输出0022,后面三个数字022就是权限
umask -S # u=rwx,g=rx,o=rx

    若使用者建立为『文件』则预设『没有可执行( x )权限』,亦即只有 rw 这两个权限,也就是最大为 666 分,预设权限为:rw-rw-rw-

    若用户建立为『目录』,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,预设权限为:drwxrwxrwx

    而文件或目录实际的权限为预设权限减去umask的数值。如umask 为 022 ,即 user 并没有被拿掉任何权限,不过 group与 others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者

    建立文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--

    建立目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x

    注意:如果是使用umask -S来显示umask的话,则显示出来的数值是默认可以保留的权限。

        即如果目录的user预设权限为rwx,而umask:u=rwx(表示user可以保留rwx的权限),则创建的目录,user的权限为rwx。而如果user的预设权限为rw-,则创建目录时,user的权限为rw-。

        如果目录的预设权限为rwx,而umask:u=rw-(表示user可以保留rw的权限),则创建的目录,user的权限为rw-。

 

你可能感兴趣的:(linux)