Linux权限

       

目录

       

        1、什么是权限?

        2、权限的本质

        3、Linux下的两种用户

        3、1用户身份切换

        3、1、1root -> 普通用户

        3、1、2普通用户 ->root

        3、1、3普通用户暂时以root的身份进行工作

        3、2普通用户一般不能在root/的文件下面做事

        4、文件访问者的三种人(角色)

        5、文件属性

        5、1文件类型

        5、2文件基本权限

        5、2、1修改权限

        5、2、2chmod修改文件权限

        5、2、3文件权限掩码 umask

        5、2、4对比权限有无

        5、3文件拥有者、所属组(文件用户角色)

        5、3、1修改文件拥有者(root才能修改)

        5、3、2修改文件所属组(root才能修改)

        5、3、3同时修改拥有者和所属组(root才能修改)

        5、3、4为什么不改other 

        5、4链接(link)的数量

        5、5文件大小

        5、6文件时间

        5、6、1Access time(最后访问时间)

        5、6、2Modify time(最后修改时间)

        5、6、3Change time(最后状态更改时间)

        5、6、4三种时间的关系

        5、7文件名称

        6、目录的权限

        6、1目录的r权限(查看信息)

        6、2目录的w权限(写,删除)

        6、3目录的x权限(进入)

        6、4注意

        6、5怎么建立一个共享文件

        7、粘滞位

        8、总结


        1、什么是权限?

        就是通过一定条件,拦住一部分人;给另一部分人权力,来访问某种资源。

        有/无 权力,能/不能 做某事。

        比如:vip,门禁,18岁以下禁止入内什么的。

        2、权限的本质

        权限和人有关,权限也和事物属性有关。总的来说就是:权限 = 人 + 事物权限属性

        这里的人 =  角色、身份。 

        3、Linux下的两种用户

        超级用户(root):可以在Linux系统下做任何事,不受限制。命令提示符为 #。

        普通用户:在Linux下做有限的事。命令提示符为 $。

        3、1用户身份切换

        3、1、1root -> 普通用户

        su + 普通用户名。(不用输入密码,这就是root的威力)

        3、1、2普通用户 ->root

        需要输入root的密码

        1、su :身份变为root,但是所处路径不变。

        2、su - :身份变为root,但是所处路劲也变了,变到/root下。

        3、1、3普通用户暂时以root的身份进行工作

        sudo  +   指令,此时只需要输入普通用户的密码,不需要输入root的密码。

        为什么只输入用户的密码呢?因为在你创建用户的时候,系统自动配置过,将创建的用户加入白名单,即信任这个用户。

        3、2普通用户一般不能在root/的文件下面做事

        因为root下面的一些东西都是很重要的,防止普通用户进行操作出现了bug,难以修复。即为了保证系统安全。

        4、文件访问者的三种人(角色)

        拥有者:文件和文件目录的所有者: u---User(中国平民 法律问题)

        所属组:文件和文件目录的所有者所在的组的用户: g---Group(不多说)。主要是为了多人协作这一个文件的时候,更加方便管理。
        其他用户o---Others (外国人),当文件不属于前两种人时,就自动属于other。

        ==>>角色是需要用户来扮演的

        5、文件属性

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        5、1文件类型

        上述代码中:第一个字母d代表文件类型。

        文件类型

        d:目录/文件夹。

        - :普通文件。

        .  :隐藏文件。

        : 链接文件(软链接),类似windows的快捷方式。

        b : 块设备文件,例如硬盘,磁盘,光驱。

        p : 管道文件。

        c : 字符设备文件,例如屏幕等串口设备,如显示器,键盘等。

        s : 套接口文件。

        Windows系统中通过后缀来区分文件类型,Linux不通过后缀来区分,不代表gcc不需要(Linux系统 != gcc)但不代表Linux不用后缀

        我们对于Linux对于文件后缀的态度:可以使用!方便我们自己区分。

        5、2文件基本权限

        i.读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
        ii.写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
        iii.执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。注意:有x代表有可执行权限,不代表可执行。可执行 = 具有可执行权限 + 文件本身可执行
        iv.“—”表示不具有该项权限

        其中4,2,1表示八进制表示数,4:100,2:010,2:001,因此一个角色对于这个文件所拥有的权限可以用二进制或者八进制表示。例如:110或者6表示rw-

        rwxrwxr-x,其中三三为一组,分别对应u,g,o的权限。例如rwxrwxr-x,代表u有rwx权限,g有rwx权限,o有rx权限。对于这个文件的权限rwxrwxr-x,我们也可以用:775表示。

        5、2、1修改权限

        一个文件的权限谁能修改呢?答案是:a、文件拥有者b、root。二者对文件权限的修改略有不同。

        1、a和b可修改文件的属性。2、b可修改角色属性

        5、2、2chmod修改文件权限

       法一:

        语法:chmod +(-)  角色(u/g/o/a)-权限(r/w/x)  文件名。其中+代表增加权限,-代表删除权限。

        例如:一个名为text.txt文件的权限为:r-xrwxr--,我要增加other的x权限:chmod o+x text.txt即可。同理我要删除所属组的w权限:chmod g-w text.txt即可。

        如果我要同时删除u,g,o的读权限,有两种做法:

        1、chmod u-r,g-r,o-r text.txt。  2、chmod a-r text.txt 。a就代表所有角色。 

        法二:

        由于我们知道文件的权限可以用二进制数转换为八进制来表示,例如r-xrwxr--表示为574,如果我们想将所有角色的权限都打开,可以chmod 777 text.txt 

        5、2、3文件权限掩码 umask

        umask功能:1、查看文件掩码(umask)。超级用户默认掩码值为0022,普通用
户默认为0002。(不同电脑的默认掩码可能不同)

                               2、修改文件掩码(umask 0xxx)。

        那么文件权限掩码是个什么玩意呢?

        首先我们给出结论:文件最终权限 = 文件默认权限 & (~umask),需要转换为二进制表示

        文件默认权限:新建文件默认权限=0666,新建目录默认权限=0777。(不同电脑默认权限可能不同)

        例如:那么我们作为普通用户,如果创建一个目录,假设默认掩码为0002,那么目录最终权限 = 0777 & (~0002) ==> 0 111 111 111 & 1 111 111 101 = 0 111 111 101 = 775,则最终权限为rwx rwx r-x。

        5、2、4对比权限有无

        没有权限,啥都干不了,就算你是文件拥有者。(当然,除了root)

        对于普通用户:自身受权限约束,即便是拥有者(拥有者,所属组,other均受限)

        对于root:不受权限约束!!牛逼!!

        特别的:拥有者和所属组是同一个人的时候,若拥有者没有权限,不管所属组有无权限,这个用户都没有权限。(即:对用户身份进行识别时,只识别一次,从左往右识别

        5、3文件拥有者、所属组(文件用户角色)

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        其中,第一个zy代表拥有者,第二个zy代表所属组,other并未表示其中。因为除了拥有者和所属组,其他的都是other。

        5、3、1修改文件拥有者(root才能修改)

        语法:chown [-r] 新拥有者  文件名,加上-r代表递归

        5、3、2修改文件所属组(root才能修改)

        语法:chgrp  [-r]  新所属组  文件名,加上-r代表递归

        5、3、3同时修改拥有者和所属组(root才能修改)

        语法:chown 新拥有者 : 新所属组   文件名

        5、3、4为什么不改other 

         因为除了拥有者和所属组之外,其他都是other,不方便改,没有改的必要。

        5、4链接(link)的数量

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        在给出的文件权限字符串 "drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt" 中,第一个数字 2 表示链接(link)的数量。

        在Linux系统中,除了文件和目录本身外,每个目录下都有一个隐藏的链接(.)和一个指向上级目录的链接(..)。这两个链接也会被计算在链接的数量中。

        因此,当一个目录为空时,链接的数量为 2。如果目录中有其他文件或子目录,那么链接的数量会相应增加。在你提供的例子中,目录 "test1.txt" 中有 2 个链接,即这个目录本身和指向上级目录的链接。

        5、5文件大小

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        其中4096代表文件大小。

        5、6文件时间

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        其中 Jan 19 11:05代表文件的修改时间。

        这里代表文件的修改时间,但是一个文件其实是有三个时间戳的。

[zy@hcss-ecs-4716 111]$ stat test1.txt/
  File: ‘test1.txt/’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d	Inode: 1573061     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/      zy)   Gid: ( 1000/      zy)
Access: 2024-01-19 11:15:27.494371069 +0800
Modify: 2024-01-19 11:05:47.546315001 +0800
Change: 2024-01-19 11:05:47.546315001 +0800

         stat:查看文件的详细属性。

        5、6、1Access time(最后访问时间)

        表示最后一次访问该文件的时间。

        5、6、2Modify time(最后修改时间)

        表示最后一次修改文件的时间。

        5、6、3Change time(最后状态更改时间)

        表示最后一次对文件属性改变的时间。

        5、6、4三种时间的关系

        1、仅读、访问:Access time 改变。

        2、修改内容:Modify time,Change time改变,Access time不一定改变(修改不一定要访问)。

        3、修改权限属性:Change time改变。

        5、7文件名称

drwxrwxr-x 2 zy zy 4096 Jan 19 11:05 test1.txt

        最后的test1.txt代表该文件的名称。

        6、目录的权限

        6、1目录的r权限(查看信息)

        可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

        6、2目录的w权限(写,删除)

        可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

        6、3目录的x权限(进入)

        可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

        6、4注意

        只要用户有这个目录的写权限,就可以删除这个目录中的文件,无论这个用户是不是这个目录的拥有者或者所属组。(除了root,root是大流氓,啥都能干)

        所以默认的other是没有w权限的。这也间接说明了权限掩码的作用

        6、5怎么建立一个共享文件

        1、首先不能在家目录里边创建。因为:所属组和other没有rwx权限,不能访问及其它操作。

        2、只能在非用户目录下创建

        7、粘滞位

        语法: chmod +t  文件名

        当一个目录被设置为粘滞位后,就只能由以下用户删除

        一、超级管理员删除
        二、该目录的所有者删除
        三、该文件的所有者删除

        这就解决了用户只要有w权限就可以删除文件的弊端。

        8、总结

        1、目录的可执行权限是表示你可否在目录下执行命令。
        2、如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
        3、而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
 

你可能感兴趣的:(Linux,linux,运维,服务器)