zoukankan      html  css  js  c++  java
  • L015-linux系统文件权限体系手把手详解小结

    L015-linux系统文件权限体系手把手详解小结

    2016-5-24

    今天星期二,昨天和今天利用一些闲散时间把第15节课学完了,最近有点懒散哈,还得努力才是。、

    这节课内容不多,扩展的也少,主要就是3个命令

    chmod

    chown

    umask

    本来到umask换算感觉有点儿迷糊,结果最后老师来一句,用处太少,那就主要了解把,下节课会有更难的权限问题,提前有个心里准备,然后打好基础!!

    下面进入正题:

    到了权限还是从命令ll开始吧,直观

    [root@moban ~]# ll oldboy
    -rwxr-xr-x 1 root root 0 Apr  6 09:11 oldboy

    上面标黄的自然是权限了,3个一组,总共3组,他么他们分别对谁起作用呢?

    属主:标黄前三位+绿色root

    用户组:标黄4-6位+蓝色root

    其他用户:标黄7-9

     rwx-对应的数字权限是4 2 1 0

    计算后

    属主权限:7

    用户组:5

    其他用户:5

    由此可以看出权限最高也就是7

    一、更改权限(chmod)

    比如我想更改文件或者文件夹的权限,这时就要使用到chmod

    使用方法也很简单

    [root@moban ~]# chmod 777 we.txt     //777代表最高权限rwxrwxrwx
    [root@moban ~]# ll we.txt 
    -rwxrwxrwx 1 root root 13 Apr  6 09:22 we.txt    

    确实不难,知道命令套用一下就成了,那么我现在如果想把一个目录中的所有文件都更改成某一权限呢?

    说到这里,就不得不提man的重要性,如果对于一个陌生的命令,或者长时间不用的命令一定要man一下,看看对应的命令都有什么参数,这样才能少走弯路啊。

    因为对chmod不了解,我是用的find

    [root@moban ~]# find ./lkjiop/ -type f -exec chmod 755 {} ;
    [root@moban ~]# ll lkjiop
    total 76
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 123.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 23433456435252326236.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 2343345643525232626.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 234334564352523262.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 23433456435252326.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 2343345643525236.txt
    

    成功了!如果不往下听课的话我会非常满足。

    [root@moban lkjiop]# chmod -R 755 oldboy    //-R参数可以更改目录所有文件的权限
    total 76
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 123.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 23433456435252326236.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 2343345643525232626.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 234334564352523262.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 23433456435252326.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 2343345643525236.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 234334564352526.txt

    更为简便,so  man man man,重要的事情不光要说3遍,更要记三遍。

    二、用chmod字符式权限表示法

    有些人可能对数字形式的权限不感冒,那么可以试试这种办法:

     

    用户加权限:

    [root@moban ~]# ll oldboy
    ---x-wxrw-   1 root root       0 Apr  6 09:11 oldboy
    [root@moban ~]# chmod u+rw oldboy        //属主加上读写权限rw
    [root@moban ~]# ll oldboy
    -rwx-wxrw- 1 root root 0 Apr  6 09:11 oldboy

    用户组加权限:

    [root@moban ~]# chmod g=rx oldboy       //用户组设置成只有读和执行权限rx 
    [root@moban ~]# ll oldboy
    -rwxr-xrw- 1 root root 0 Apr  6 09:11 oldboy

    注意这个“=”,他是把现有的替换成rx权限,也就是覆盖。

    对文件多个权限位做处理:

    [root@moban ~]# chmod u=x,g=rwx,o=w oldboy      //用逗号间隔
    [root@moban ~]# ll oldboy
    ---xrwx-w- 1 root root 0 Apr  6 09:11 oldboy

    剪掉每个权限为的w(write)权限:

    [root@moban ~]# chmod ugo-w oldboy        //ugo代表全
    [root@moban ~]# ll oldboy
    ---xr-x--- 1 root root 0 Apr  6 09:11 oldboy

    等同于

    [root@moban ~]# chmod a-w oldboy        //a也代表全,更简便
    [root@moban ~]# ll oldboy
    ---xr-x--- 1 root root 0 Apr  6 09:11 oldboy

    综上,还是数字方便。o(∩_∩)o 

    三、修改文件和文件夹的用户和用户组属性 (chown)

    修改用户组属性:

    [root@moban ~]# ll oldboy
    ---xr-x--- 1 oldboy oldboy 0 Apr  6 09:11 oldboy
    [root@moban ~]# chown .root oldboy        //修改用户组属性 “.”后面接用户组,如果没有“.”就是用户属性
    [root@moban ~]# ll oldboy
    ---xr-x--- 1 oldboy root 0 Apr  6 09:11 oldboy

    或者使用chgrp命令

    当只想更改用户属性的时候可以使用chgrp

    [root@moban ~]# chgrp oldboy oldboy
    [root@moban ~]# ll oldboy
    ---xr-x--- 1 root oldboy 0 Apr  6 09:11 oldboy

    修改用户和用户组属性:

    [root@moban ~]# chown root.root oldboy           //把oldboy用户和oldboy用户组属性改为root用户和root用户组属性
    [root@moban ~]# ll oldboy
    ---xr-x--- 1 root root 0 Apr  6 09:11 oldboy

    用户和用户组属性同时修改是中间加“.”相隔

    更改文件夹内的所有文件的用户和用户组属性:

    [root@moban ~]# chown -R oldboy.oldboy lkjiop/
    [root@moban ~]# ll lkjiop/
    total 76
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 123.txt
    -rwxr-xr-x 1 oldboy oldboy 156 May  4 01:02 23433456435252326236.txt

    跟chmod同样是使用参数-R

    四、测试目录和文件权限的问题

    其实也就是rwx权限对各用户组的影响,rwx对文件和目录的权限是什么。

    首先生产演示环境:

    一个家庭(用户组)inca:成员有 oldboy,olgirl

    [root@moban ~]# groupadd incahome        //创建一个名字叫incahome的组
    [root@moban ~]# useradd oldgirl -g incahome    //创建一个名字胶oldgirl的用户并加入到incahome组
    [root@moban ~]# useradd oldsister -g incahome   //同上
    
    [root@moban ~]# id oldgirl        //查看是否创建成功,所属用户组也是否正确
    uid=504(oldgirl) gid=505(incahome) groups=505(incahome)
    [root@moban ~]# id oldsister
    uid=505(oldsister) gid=505(incahome) groups=505(incahome)

    总结测试结论:Linux普通文件的读、写、执行权限说明:
    可读r:表示具有读取阅读文件内容的权限;
    可写w:表示具有新增、修改文件内容的权限
    ##重要##:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关。
    可执行x:表示具有执行文件的权限(文件本身要能够执行,普通用户时还需要r的权限,root用户不用r的权限也能执行,当然文件本身也需要能够执行)。

    总结测试结论:Linux目录的读、写、执行权限说明:
    可读r:表示具有浏览目录下面文件及目录的权限,即ls dir (不能进到目录里,即无法cd dir);如果没有x权限,列表时也是有问题的。如加-l列表属性会有问号,提示没有权限。但是可以看到文件名。
    可写w:表示具有增加/删除或修改目录内文件名(一般指文件名)的权限(需要x权限配合);
    可执行x:表示具有进入目录的权限;例如:cd dir

    Linux文件与目录权限对比说明:
    r(read, 读取权限):
    对文件(如,oldboy)而言,表示具有读取阅读文件内容的权限。
    对目录(如/etiantian)来说,表示具有浏览目录的权限(注意:与进入目录的权限不同),也许要x权限配合。
    如果没有x权限配合,那么看不到目录内文件的属性。(会显示一堆问号)

    w(write,写入权限):
    对文件而言,表示具有新增/修改文件内容的权限(注意:删除和移动文件和文件本身属性无关,看上级目录)。
    对目录来说,表示具有新增/删除/移动目录内文件的权限(需要x权限配合)。

    x(execute,执行权限):
    对文件而言,表示具有执行文件的权限。(普通用户同时还需要r的权限,root用户不用r也能执行,文件本身也要能执行才行,否则公鸡不能下蛋)。
    对于目录来说,表示具有进入目录的权限。

    -(无任何权限):
    若对应位置权限位为为字符“-”,表示对应用用户没有读、写、执行的任何权限。

    五、默认权限分配命令(umask)

    参考:http://oldboy.blog.51cto.com/2561410/1060032

    linux系统默认的目录权限为755,文件权限是644,但是这是一个相对(相对于用户root以及用户组root)的安全权限。

    网站目录安全权限(推荐):目录755 文件644 并且用户为root用户组也为root

    linux系统默认权限的方针:允许浏览,查看,但是禁止创建和修改,增加文件及内容。

    文件权限的一般算法:
    root下默认文件权限计算方法

    1)假设umask值为:022(所有位为偶数)
    6 6 6    ==>文件的其实权限值
    0 2 2    ==>umask的值
    -----------
    6 4 4
    
    2)假设umask值为:045(其他用户组位为奇数)
    6 6 6    ==>文件的起始权限值
    0 4 5    ==>umask的值
    --------
    6 2 1    ==>计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。(只要有数位是奇数,那么最后都要在奇数位加1)
    0 1 1 +
    --------
    6 2 2    ==>真实权限

    默认目录权限计算方法

    7 7 7    ==>目录的其实权限值
    2 2 2 -    ==>umask的值
    --------
    7 5 5

    注意:更改umask的值只能在当次生效,所以想永久生效,需要更改profile文件

    [root@moban ~]# cat /etc/profile
    [root@moban ~]# vi /etc/login.defs    //家目录默认权限的umask 077
  • 相关阅读:
    VIM常用操作
    计算机之二进制基础
    交换机安全学习笔记 第六章 IPV4 ARP攻击
    交换机安全学习笔记 第八章 针对POE的攻击
    交换机安全学习笔记 第九~十章 HSRP VRRP
    CSRF-DVWA_1.9-笔记
    命令注入-笔记
    暴力破解-H3C路由器-MSR900
    暴力破解-DVWA_1.9-笔记
    DVWA、 DSVM 环境搭建简述
  • 原文地址:https://www.cnblogs.com/lcrbg/p/5523460.html
Copyright © 2011-2022 走看看