linux权限

一、Linux权限概念

linux下两种用户:超级用户(root)、普通用户。

        超级用户:可以在linux系统下做任何事情,不受限制。

        普通用户:在linux下做有限的事情。

        超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

切换用户的命令

        命令:su [用户名]

        切换为root用户时,可以简便,直接su,不用加用户名,直接用户切换,而su - 则是让root账号重新登录。

普通用户使用超级权限

        普通用户在命令前加上sudo 便可以如超级用户一样做任何事情。但这并不是所有用户都可以,需要修改一个文件 /etc/sudoers ,后续再具体讲述如何修改。

二、LInux权限管理

文件访问者的分类(人)       

        1、文件和文件目录的所有者:u -- User

        2、文件和文件目录的所有者所在的组的用户:g -- Group

        3、其他用户:o -- Others

文件类型和访问权限(事物属性)

文件类型:第一第一个字符指的是文件类型,有如下分类:

                -:普通文件,源代码,可执行程序,库等

                d:文件夹

                c:字符设备文件

                b:块设备文件

                l:软链接

                p:管道文件

                s:套接口文件

文件权限

        第一列剩下9个字符, 三三为一组,划分为三组,每一组分别对应着所有者权限,所属组权限,other权限。基本权限有三种:

        i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。

        ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。

        iii.执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
所有者、所属组
        所有者指的是这个文件的拥有者,而所属组指的是一个小组内多个人,用组长的名字对组命名,改组也可以是一个人,至于other就是既不是所有者也不在所属组内的就是了。

文件访问权限的相关设置方法

(一)chmod
         功能:设置文件的访问权限。
        格式:chmod [参数] 权限 文件名
        常用选项:
                -R  -->  递归修改目录文件的权限
        
        修改方法:
          1.用户标识符+、-、=权限字符
                +:向权限范围增加权限代号所表示的权限
                - :向权限范围取消权限代号所表示的权限
                =:向权限范围赋予权限代号所表示的权限
              用户符号:
                u:拥有者
                g:拥有者组
                o:其他用户
                a:所有用户
        实例:
                
          2.三位八进制数字修改权限

                在二进制中,r、w、x分别对应一位,组合起来最大为7,因此可以用三位八进制数字分           别对应着修改所有者、所属组、other的权限

权限二进制八进制
---0000
r--1004
-w-0102
--x0011
rw-1106
r-x1015
-wx0113
rwx1117

                实例:

        

(二)chown

        功能:修改文件的拥有者
        格式 chown [ 参数 ] 用户名 文件名

(三)chgrp

        功能:修改文件或目录的所属组
        格式 chgrp [ 参数 ] 用户组名 文件名
        常用选项 -R 递归修改文件或目录的所属组
(四)file 指令:
        功能说明:辨识文件类型。
        语法 file [ 选项 ] 文件或目录 ... 
        常用选项
                -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
                -z 尝试去解读压缩文件的内容

三、思考与深究

1、为什么创建目录和文件的默认权限是固定的?

        首先,研究一下默认权限
        目录起始权限是:777,普通文件起始权限为666,那么为什么创建目录和文件时,默认权限不是起始权限呢?
        原因:linux系统中存在权限掩码,起始权限与权限掩码通过一个规律生成文件的最终权限。
        通过umask指令来查看权限掩码
        因此,最终权限 = 起始权限 (去掉) 权限掩码中出现的权限
        那么,如何去掉呢?是不是单纯的二进制减法呢?
        通过简单的运算,发现并不是如此简单。
        
        结论:最终权限 = 起始权限 & (~umask)
        

2、对于目录的各个权限都有什么意义?

        进入一个目录,需要 x权限
        是否允许一个指定用户查看目录的文件列表,需要 r权限
        是否允许一个指定用户在当前目录下新建文件,需要 w权限
        
        一个文件一定是属于一个目录的, 一个文件属性能不能查看是由目录的权限决定的!
        一个文件一定是属于一个目录的,一个文件能不能被删除,这个文件本身能决定吗?由谁决定? 由所属的目录与对应的账户是否有w权限!

3、为什么目录起始权限为777?

        因为目录默认需要进去查看,创建文件,进入目录。同理,普通文件的起始权限为666,也是因为普通文件需要进去写和读。

4、如何解决多个用户共同协作的问题?

        一般而言,不同的账号,是不在同一目录下的。
        特殊情况,如果我们多个账号相互协同,共享一些数据呢?
        
        对于这种特殊情况,早已有解决办法。 粘滞位
        
        当一个目录被设置为" 粘滞位 "( chmod +t), 则该目录下的文件只能由
        一、超级管理员删除
        二、该目录的所有者删除
        三、该文件的所有者删除

四、总结

        1.目录的可执行权限是表示你可否在目录下执行命令。
        2.如果目录没有-x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目 , 即使目录仍然有 -r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。
        3.而如果目录具有-x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读 权限。
        4.所以在目录下,即使可以执行ls 命令,但仍然没有权限读出目录下的文档。
  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值