风雨同行 发表于 2024-6-25 18:24:22

【Linux权限:系统中的数字锁与安全之门】

1.Linux下的用户

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

[*]超等用户:可以再linux系统下做任何事情,不受限定
[*]普通用户:在linux下做有限的事情。
[*]超等用户的下令提示符是“#”,普通用户的下令提示符是“$”。
下令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
   总结:


[*]普通用户切换成root,需要输入root暗码。
[*]root回退到普通用户:exit或者ctrl+d(logout)。
https://img-blog.csdnimg.cn/47b791cc300a4754aafd57b4bc2bde16.png


[*]root账号变成普通,不用认证。
https://img-blog.csdnimg.cn/327496375604492faf51a4782df3b43c.png


[*]普通用户变成另一个普通用户,需要对方的暗码。
su - :以root身份重新登录一次。
https://img-blog.csdnimg.cn/c74437631b1642578d5f95910635a315.png
su :用户身份切换为root。
https://img-blog.csdnimg.cn/322de7f67a2a43c18c6a07462f5d36f5.png
如果我们全部人都有root暗码,每个人都可以删除用户添加信息,但是总不能排出有新手误删了,此时对数据就会造成不可挽回的影响,所以一样平常拥有root暗码的是Linux管理员。
sudo:对指定的指令进行提权。
普通用户不想切换为root,但是想以root权限执行指令:sudo touch file1.txt,然后输入普通用户的暗码。
https://img-blog.csdnimg.cn/45c35354d7df4f7d8a27c347210aa8bb.png
我们后面再以root权限执行指令:sudo touch file3.txt,我们会发现此次不需要输出普通用户的暗码就创建出文件了,这是因为曾经sodu输过暗码,并且Linux会短暂的记录用户在一段时间执行过sudo下令,是已经做过认证的,所以后面就不需要再输入暗码。
https://img-blog.csdnimg.cn/32de699b7a8a4ab4860acbf5ccb41e82.png
如果我们输入sudo就可以以root的身份执行指定的下令,root的暗码是否就毫偶然义呢?我们去执行一下sudo ls
https://img-blog.csdnimg.cn/8df724017149487cb80730efc600978a.png
如果我们将用户添加到该设置文件中,那用户是否可以执行sudo吗?当然可以,但是该设置文件(白名单)是root文件,我们普通用户无法自己添加该设置文件,要添加该设置文件必须以root的身份添加。所以能够执行sudo的,一定是历史上曾经经过管理员允许的用户,才能执行sudo,我们上面之所以能执行sudo是因为将sudo touch下令添加到该设置文件
2.Linux权限管理

起宰衡识一个概念,权限一定是限定人的,好比优酷会员,买了会员就可以看一些付费的电视剧。 对应的操作对象,一定要有对应的满意人的需求的属性。好比:优酷就专门看电视剧,csnd专门学习。
01.文件访问者的分类(人)

   

[*]文件和文件目次的全部者:u---User
[*]文件和文件目次的全部者所在的组的用户:g---Group
[*]别的用户:o---Others 
https://img-blog.csdnimg.cn/1d27bd5441ac4a91863eac01b79aebe3.png

为什么会存在一个所属组
           假设当张三这个拥有者写了一份非常优秀的代码,他的领导是属于其他普通用户,领导以为张三的代码非常好,想看一下,于是张三想打开了权限,让其他用户可以看到,但是同为竞争者的李四也是其他普通用户也就能看到,于是张三拥有者就和领导这个普通用户搭建了一个所属组,该组的所属者为张三,将其组内的内容对领导这个普通用户设置可见,只能让领导这个普通用户看到。
02.文件类型和访问权限(事物属性)

https://img-blog.csdnimg.cn/ac86128ce07e4983800569cffe1e8aef.png
https://img-blog.csdnimg.cn/f0827aca1c1f4eb2a530dc7a91249519.png
a) 文件类型

   

[*]d:文件夹 -:普通文件
[*]l:软链接(雷同Windows的快捷方式)
[*]b:块设备文件(例如硬盘、光驱等)
[*]p:管道文件
[*]c:字符设备文件(例如屏幕等串口设备)
[*]s:套接口文件
b)基本权限

   

[*]i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目次来说,具有欣赏该目次信息的权限
[*]ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目次来说具有删除移动目次内文件的权限
[*]iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目次来说,具有进入目次的权限
[*]iv.“—”表示不具有该项权限
03.文件权限值的表示方法

a)字符表示方法

Linux表示说明Linux表示说明r--只读-w-仅可写--x仅可执行rw-可读可写-wx可写可执行r-w可读可执行rwx可读可写可执行---无权限 b)8进制数值表示方法 

权限符号(读写执行)八进制二进制r4100w2010x1001rw6110rx5101wx3011rwx7111---0000 04.文件访问权限的相关设置方法

a)chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
   

[*]R -> 递归修改目次文件的权限
[*]说明:只有文件的拥有者和root才可以改变文件的权限
https://img-blog.csdnimg.cn/db87faae84874d8b81b0d4985958a5cb.png
修改权限:chmod ugoa+=rwx FILE
https://img-blog.csdnimg.cn/c0053b5e039349089f0afeb04c41c219.png
验证有无权限,对比是什么?
https://img-blog.csdnimg.cn/4148a9d3e21644f6abb0107b374ea311.png
当我们没有权限的时候,就不能以该方式访问该文件,直接被拒绝访问。有对应的权限才能做对应的事。对于可执行来说,不一定拥有可执行的权限就可以执行该文件。
https://img-blog.csdnimg.cn/15a86fc49954420e8d556639b75bb86b.png
当我们去掉拥有者的可执行权限,whb用户就不能执行文件了,但是我们发现所属组拥有可执行权限,而且所属组的用户还是whb用户,此时whb用户以所属组的身份去执举动什么不能执行此文件呢?
https://img-blog.csdnimg.cn/c9a30c86e0fc48e89d81e41de8aec2ad.png
这是因为一个用户在去访问这文件的时候,Linux系统默认当前的用户的身份是拥有者,只会去看拥有者的权限,而且Linux系统的这种匹配只会匹配一次,匹配到了拥有者就不能再次匹配到所属组了。
https://img-blog.csdnimg.cn/f7d94dcf912a4834b4a2c4819f5eea08.png
此时拥有者就切换为了gaobo这个用户,但是此时登录的还是whb,此时Linux系统根据当前的用户whb就去匹配到了所属组,从而也就可以执行这个文件了。
https://img-blog.csdnimg.cn/5579262e63d54c69ba9f8b8b3122a138.png
当我们切换到gaobo这个普通用户,此时Linux系统又会再次匹配,此时匹配的就是拥有者,此时就没有可执行的权限。        
我们再切换为whb用户,此时我们对file.txt文件删除全部权限
https://img-blog.csdnimg.cn/fe042284eccb47858df40f3cdb26cfe7.png
然后我们切换超等用户root,此时root归属于other,root此时依然没有任何权限
https://img-blog.csdnimg.cn/15ec10b96f9840e1bbb8f0fd844b1785.png
上面图片观察到,尽管root没有权限,但是依然能够访问到该文件,说明权限对超等用户root形同虚设。
同时根据8进制数值表示法,我还可以用8进制进行权限修改。
https://img-blog.csdnimg.cn/cba2af25bc6149d49bc7719577342086.png
b)chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
https://img-blog.csdnimg.cn/e32168292fb24a96bc6014df8e899e61.png
我们修改一个文件的权限,将文件的拥有者权限给别人,需要获取这个人的同意吗?很明显,如果你给别人的是一份非常烂的代码,别人肯定不会成为这个文件的拥有者。但是在Linux下我们不能探讨,也没办法得到别人的允许,就算得到了别人的允许,我们也给不了拥有者身份,此时只能通过sudo进行指令提权。
https://img-blog.csdnimg.cn/ef2626701b154822961dcd54f0f8414c.png
同时我们也可以切换成root身份,进行拥有者身份的变革。
https://img-blog.csdnimg.cn/20e41ecf11f8458aac7277576708de60.png
c)chgrp

功能:修改文件或目次的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目次的所属组
https://img-blog.csdnimg.cn/e2cd809388a242eb842ed825dcdfc7ff.png
该指令和上面的chown用法一样,因为我们当前为root,所以可以直接修改。修改拥有者和所属组的同时other也在改变,所以Linux也有修改other身份的指令。
https://img-blog.csdnimg.cn/7b941e67f1d640859205d3c99fcfac55.png
我们可以同时修改拥有者和所属组,用户之间以:分隔-。
d)umask

https://img-blog.csdnimg.cn/64bb0526f72545548e64924c7c912e81.png
表明:定制一个文件被创建的时候的默认权限,从起始权限中去掉(不是减法)在umask中出现的权限!
功能: 检察或修改文件掩码 新建文件夹默认权限=0666 新建目次默认权限=0777 但实际上你所创建的文件和目次,看到的权限往往不是上面这个值。缘故原由就是创建文件或目次的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超等用户默认掩码值为0022,普通用户默认为0002。
https://img-blog.csdnimg.cn/78795ed190f14f32b54923b916afcbe6.png
验证一下普通用户创建的普通文件权限是664
https://img-blog.csdnimg.cn/c9fce2fd23734d9b962ab0578387f64f.png
通过公式:mask & ~umask即可求出实际创建的出来的文件权限
https://img-blog.csdnimg.cn/b22071a856ee48ba9887bf8cad2c915a.png
3.file指令

我们可以同时修改拥有者和所属组,用户之间以:分隔-。
https://img-blog.csdnimg.cn/3fe1da3890f24557843dfb15f4284b26.png
第一个字符,表示文件类型。在Windows下,我们同样也具有文件类型,通常是通过后缀名标识,文件类型用来判定文件属于哪一个类别,可以用哪些软件操作。但是Linux的文件类型不通过后缀区分(不代表Linux不用后缀)
https://img-blog.csdnimg.cn/f0ee59f92d3046319a1ac4ce3d449416.png
我们起首看一下有哪些文件类型
https://img-blog.csdnimg.cn/05772e56c6e5483e8ba0d0db4caaa3cd.png
块设备文件 -> 磁盘:支持随机访问
https://img-blog.csdnimg.cn/208ee33ae0ea43848a6733e39c4513ca.png
字符设备文件 ->键盘显示器:不支持随机访问
https://img-blog.csdnimg.cn/6fda5ff0a4474bf99b85ae1ac73e314f.png
链接文件:雷同于Windows下的快捷方式
https://img-blog.csdnimg.cn/3f790ae7d5ee4abbb6ee79f54f5f3726.png
https://img-blog.csdnimg.cn/73ab9a51cfb144f3838231a4e9792b65.png
https://img-blog.csdnimg.cn/de0d3babc2f446e68a97f093900b05fb.png
我们上面删除了链接文件但是可执行程序还在,所以Windows下我们想删除一个软件删除桌面的那个快捷方式不算删除,必须要去删除源文件。
管道文件 -> 通报信息
https://img-blog.csdnimg.cn/20786c494ecf472d927daf8d19b50264.png
Linux的文件类型不通过后缀区分。
https://img-blog.csdnimg.cn/0173233f56514902a80f0c0011affb58.png
Linux的文件类型不通过后缀区分,但是不代表Linux指令gcc等其他指令不用后缀。对于Linux文件类型后缀,固然Linux不通过它辨认文件类型,但是我们依然推荐使用后缀去标识文件!因为工具需要,同时后缀也方便用户观看。
https://img-blog.csdnimg.cn/ad7f2f2261194b6da0384c701dd3199d.png
功能说明:辨识文件类型。
语法:file [选项] 文件或目次... 
常用选项:
   

[*]-c 详细显示指令执行过程,便于排错或分析程序执行的情况。
[*]-z 实验去解读压缩文件的内容。
https://img-blog.csdnimg.cn/a32ee533085147a680274a6346d7bae2.png
使用 sudo分配权限
(1)修改/etc/sudoers 文件分配文件

# chmod 740 /etc/sudoers
# vi /etc/sudoer 格式:接受权限的用户登陆的主机 =(执行下令的用户) 下令
(2)使用 sudo 调用授权的下令

$ sudo –u 用户名 命令 实例:
$ sudo -u root /usr/sbin/useradd u2 4.目次的权限

   

[*]可执行权限: 如果目次没有可执行权限, 则无法cd到目次中.
[*]可读权限: 如果目次没有可读权限, 则无法用ls等下令检察目次中的文件属性内容.
[*]可写权限: 如果目次没有可写权限, 则无法在目次中创建文件, 也无法在目次中删除文件.
[*]这些权限对于超等用户root是没有限定的.
我们来看一下下面的图片
https://img-blog.csdnimg.cn/8ca6a64f9143430094082f16d5aa8f0a.png
于是, 问题来了~~我们的root创建的文件,为什么能被whb这个普通用户删除呢?
换句话来讲, 就是只要用户whb具有目次的写权限, whb用户就可以删除目次中的文件, 而不论自己是否有这个文件的写权限. 这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?这就相当于我李四的房子给你张三住,张三要出差一段时间,让李四不要动他东西,李四自己的房子不能动吗?肯定能动,你张三创建的文件在我李四的目次下,我对我自己的目次有写权限,我自己目次下的文件我自己不能删!!!所以root固然没有给whb用户文件的任何权限,但是该文件是在whb这个用户目次下创建的,且whb对该目次还有读写执行权限,所以他就可以删除了。
总结:一个文件能否被删除,并不取决于文件本身,而取决于文件所处的目次的拥有者是否具有写权限。
为了防止上面的情况出现,Linux对每个用户的家目次下都做出权限的管理,其他用户都无法进入家目次中写文件,也就制止了上面的删除问题。
https://img-blog.csdnimg.cn/899e11912e1d4d708078a6df329c7bd7.png

https://img-blog.csdnimg.cn/d459063dbd904f10a832cc77ba9a1c35.png
如果未来gaobo用户对whb
用户说,我想看一下你写的文件,你把读权限打开,写权限关掉,并且让我能找到该文件,Linux为了实现文件的共享,root下提供了temp目次,可以允许任何用户把要共享的文件建到该目次下。
https://img-blog.csdnimg.cn/17267dc7f8df4b6393cfd83ad8b2a7c9.png
于是就实现了文件的共享
https://img-blog.csdnimg.cn/816d8fbb31de49de96dc52019b247c0f.png
未来某一天,我们不想将文件再给任何人看,于是我们就取消了该文件的全部权限,当gaobo用户此时再来观看这个文件的时候,却发现已经不能看到该文件了,于是一怒之下就将该文件删掉了。
https://img-blog.csdnimg.cn/4d295764eb814a81b1f95fd87341d249.png
这里很希奇,gaobo用户没有读写执行权限,为什么可以删除呢?这就是我们上面讲到的,root创立temp文件的时候,对other用户给予了读写执行权限,other作为该目次下的具有读写执行权限,那么当然可以删除里面的文件了。
那我们可以去掉temp目次下的other的w权限吗?很明显,不能,固然w权限不能让别人删除文件,但是我们自己也写不了文件,我们自己也是普通用户,对于root来说,我们也是other。
为相识决这个不科学的问题, Linux引入了粘滞位的概念
5.粘滞位

https://img-blog.csdnimg.cn/19adba5967364f0ab508eb459db43b83.png
粘滞位:给目次中的other设置的一个权限位,具有x权限的意义,同时进一步对目次的权限进行特殊限定。
# chmod +t /home/ # 加上粘滞位
# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
# su - litao
$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作 当一个目次被设置为"粘滞位"(用chmod +t),则该目次下的文件只能由
   一、超等管理员删除
二、该目次的全部者删除
三、该文件的全部者删除
6.关于权限的总结

   

[*]目次的可执行权限是表示你能否在目次下执行下令。
[*]如果目次没有-x权限,则无法对目次执行任何下令,甚至无法cd 进入目, 即使目次仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目次读取目次下的文件)
[*]而如果目次具有-x权限,但没有-r权限,则用户可以执行下令,可以cd进入目次。但由于没有目次的读权限
[*]所以在目次下,即使可以执行ls下令,但仍然没有权限读出目次下的文档。
本章竣事啦!下章见,拜拜。
https://img-blog.csdnimg.cn/1c5f8494249e4983b418302b1a151aaf.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Linux权限:系统中的数字锁与安全之门】