Linux权限的概念以及Shell命令的运行原理

目录

1.命令行

2.shell命令以及运行原理

3.Linux中的用户

 4.Linux权限管理

4.1文件访问者的分类

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

4.3文件权限值的表示方式 

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

4.4.1chmod

4.4.2chown

4.4.3chgrp

4.4.4unask

4.4.5粘滞位


1.命令行

2.shell命令以及运行原理

         Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

         从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给核心(kernel)处理。同时将核心的处理结果翻译给使用者。

         对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

        shell 对于Linux有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

        上述的命令行就是一个外壳程序,用于用户和操作系统交互的媒介。

知识点1:
        为什么要存在外壳程序?

                1.方便用户操作。

                2.保护内核(如果用户输入什么非法命名,直接在外壳程序进行拦截,就没有访问到内核)。

3.Linux中的用户

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

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

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

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

        命令:su [用户名]

        功能:切换用户(仅仅切换用户,不切换工作目录)。

                ps:可以使用sudo -i切换到超级用户,但是这个命名会切换工作目录到/root。

知识点1:

        sudo:用于短暂的指令提权。

         安装软件到系统中,需要root权限,其实只安装了一份,允许大家同时使用。

知识点2:

          su命令无法切换到root,提示su: Authentication failure,怎么办?

                需要先 sudo passwd root 一次,下次再su就OK了。

 4.Linux权限管理

        权限的本质是能或者不能做什么事情权限的存在是为了控制用户的行为,防止错误的发生。权限首先限制的是访问者,权限要求目标具备对应的属性。权限 = 访问者 + 目标权限属性。Linux下一切皆文件,目标对象全是文件!

4.1文件访问者的分类

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

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

        3.其他用户:o --Other

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

        1.文件类型         

        d:文件夹
        -:普通文件
        l:软链接(类似 Windows 的快捷方式)
        b:块设备文件(例如硬盘、光驱等)
        p:管道文件
        c:字符设备文件(例如屏幕等串口设备)
        s:套接口文件
        
        2.基本权限
        i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限(是否能使用ls)。
        ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有新建、删除、移动目录内文件的权限。
        iii.执行(x/1):Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
        iv.“-”表示不具有该项权限。

知识点1:

        Linux多用户之间的隔离:每个用户在/home目录下都有一个属于自己的家目录,每个人的家目录对other都没有权限,任何用户无法进入其他用户的家目录,所以实现了多用户之间的隔离。

4.3文件权限值的表示方式 

        1.字符表示方法

        2. 8进制数值表示方法 

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

4.4.1chmod

        功能:设置文件的访问权限。

        格式:chmod [参数] 权限 文件名

        常用选项:
        R:递归修改目录文件的权限

        说明:只有文件的拥有者和root才可以改变文件的权限。

        1.chmod命令权限值的格式

                a.用户表示符 +/-/=权限字符

                +:向权限范围增加权限代号所表示的权限

                -:向权限范围取消权限代号所表示的权限

                =:向权限范围赋予权限代号所表示的权限
                用户表示符:  
                u:拥有者
                g:拥有者同组用
                o:其它用户
                a:所有用户
    
                b.三位8进制数字
                例如:
                        chmod 664 /home/abc.txt
                        chmod 640 /home/abc.txt
知识点1:
        用户只能更改自己文件的权限。
知识点2:
         某用户没有某一个文件相应的(r/w/x)权限系统会拒绝让该用户对该文件进行某一相应的操作。
知识点3:
        用户访问者在确定身份时,只确定一次,顺序是:拥有者、所属组、other

        上述例子 csq 作为xiaoc.txt该文件的拥有者以及所属组成员,但是该文件的拥有者没有w权限,csq用户不能对该文件进行写操作,因为当前csq已经被匹配成该文件的拥有者了,拥有者没有w权限,虽然csq也是该文件所属组的成员,但是身份确认只确认一次,确认为拥有者就不会再确认为所属组成员了。

知识点4:
        root不受权限约束。
 

知识点5:

        可执行权限 != 文件可以执行

        只有文件本身可执行并且拥有可执行权限才能执行。

4.4.2chown

        功能:修改文件的拥有者

        格式:chown [参数] 用户名 文件名

知识点1:

        系统默认不允许我们把文件给别人,想给别人必须要高权限。(修改所属组也需要高权限)

知识点2:
        chown 拥有者:所属组 文件名 

        上述命令可以同时修改一个文件的拥有者胡所属组。

4.4.3chgrp

        功能:修改文件或目录的所属组

        格式:chgrp [参数] 用户组名 文件名

        常用选项:-R 递归修改文件或目录的所属组

4.4.4unask

        功能:查看或修改文件掩码。新建普通文件默认权限=0666,新建目录默认权限=0777。 

        语法:unask 权限值

        说明:将默认权限去掉(这里不是单独的减法,如果默认权限是555,权限掩码是002,默认权限本来就是没有w权限,所以这里权限掩码也没有起到作用,新建文件的权限还是555)权限掩码对应的权限后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002.

        注:umask是内存级的,重启之后会根据系统的配置文件进行恢复。 

知识点1:

        凡是在umask中出现的权限,就是不希望在预设权限中出现的权限。

知识点2:

        umask的意义:默认权限是OS自主决定的,无法在创建前进行修改 -- umask使新建文件的预设权限可配置,是可以灵活满足需要的一种表现。

4.4.5粘滞位

        这里有一个需求,需要多用户对同一文件进行协作。所以现在不能把该文件放在某一用户的家目录下,必须放在共享目录下,在根目录下有一个tmp目录就是充当这个共享目录的。但是现在需求是只有拥有者能删除该目录下的自己创建的文件。但是tmp目录对于other的也有w权限,其他用户也能删除,所以为了解决该问题,引入了一个粘滞位的概念,给该共享目录加上一个粘滞位,就可以防止非拥有者删除对于的文件。

        chmod +t /tmp     //加上粘滞位

        chmod -t /tmp      //去掉粘滞位

        特征:只能给需要共享的目录添加粘滞位。

        当一个目录被设置为"粘滞位",则该目录下的文件只能由:

        1.root删除。

        2.该目录的所有者删除。

        3.该文件的所有者删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值