0


Linux的用户和权限【Linux操作系统】

文章目录

Linux的用户

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

超级⽤⼾(root):可以再linux系统下做任何事情,不受权限的约束

 可以在任何用户的家目录下进行操作

普通用户:受权限的约束,只能做有权限的操作

只能在自己的家目录下操作

切换用户

命令:

su 用户名

功能:切换用户。

例如
要从root用户切换到普通用户user,则使用su user

普通用户切换到root用户或者其他普通用户,需要输入对应用户的登录密码

但是root用户切换到任何用户都不需要密码


普通用户暂时以root用户的权限执行指令

命令:

sudo 任意Linux指令

作用:以root用户的权限执行这条Linxu指令

普通用户使用sudo 操作之后,只需要再输入普通用户自己的登陆密码

就可以以root用户的权限执行这个操作

但是普通用户可以使用sudo命令的前提是
root用户,已经把这个普通用户加入了“白名单”


如何把一个普通用户加入白名单?

1.使用root用

vim

【如果不知道如何使用vim建议严格按照下列步骤进行】打开

/etc/suduers

文件

2.找到下图中圈中的一行,把光标移到这一行,再输入

yy

复制该行,再输入

p

粘贴
在这里插入图片描述

③再按字母i,进入插入模式,把root改成要添加到白名单的用户的用户名
如下图
在这里插入图片描述

④再按ESC回到命令模式,再按

shift加:

切换到地上模式,输入

wq!加回车

强制保存退出


新建用户

新建用户:
指令:

adduser 用户名

设置用户的密码:
指令:

passwd 用户名

删除用户:
指令:

userdel -r 用户名

Linux权限

使用指令

ls -l

时,罗列出的文件显示的文件信息具体介绍:

在这里插入图片描述
【rwx表示人(拥有者/所属组)有对应权限,-表示没有】
其中:
⽂件类型分为:
◦ d:⽂件夹
◦ -:普通⽂件
◦ l:软链接(类似Windows的快捷⽅式)
◦ b:块设备⽂件(例如硬盘、光驱等)
◦ p:管道⽂件
◦ c:字符设备⽂件(例如屏幕等串⼝设备)
◦ s:套接⼝⽂件


权限的组成

权限可以细分为2部分:

①人(

文件/目录的访问者

分为

1.文件/目录的拥有者User(简写:u)

2.文件和文件目录的拥有者所在的组的用户【简称

所属组

】Group(简写:g)

3.其他用户:other(简写:o)


②人对文件/目录的拥有的权限

人对文件的拥有的权限

分为

1.r(读):能否浏览文件中的内容

2.w(写):能否修改文件中的内容

3.x(可执行):(如果该文件是可执行文件)能否执行文件


人对目录拥有的权限

1.r(读):能否浏览目录中的内容,即能否查看目录里面的文件/目录的

属性信息

2.w(写):能否修改目录中的内容,即能否修改目录里面的东西,增加(删除)目录里面的文件/目录

3.x(可执行):能否进入该目录


更改权限

权限由两部分构成,所以更改权限也可以从两个方向入手

①更改人对文件的权限[只能由

root

或者文件的

拥有者

更改]

指令:

chmod

一般使用格式:
chmod 人(一般简写为:u/g/o/a)+/-/= 文件属性(r/w/x)文件/目录名
在这里插入图片描述

例如

chmod g+rx test.c

即可让g(所属组)对文件test.c的r和x的权限


文件/目录权限的表示方法:

  1. 字符表示: 即上面的一个文件/目录用3分rwx分别表示拥有者,所属组,other拥有对应的权限
  2. 八进制表示: 因为标识每个人都权限的都是三个位置,且位置只有两个状态[有/没有] 所以可以把有权限标志为1,没权限标志为0 这样就可以以类似二进制的方式标识权限状态 三个二进制位又可以合成一个8进制位 所以就可以使用3个八进制位,分别表示一个文件/目录的拥有者,所属组,other是否拥有对应权限

所以改变权限还可以这样写:

chmod 3个八进制位数字 文件/目录名

chmod 001 test

即把u(拥有者)和g(所属组)对test的三个权限全部都改为没有权限

把o(other)的x权限改为可执行,r和w为不可执行


②改变人[只能由

root

或者文件的拥有者

使用sudo提权

才能修改]

指令:

chown 用户名 文件/目录名

作用:把文件/目录的拥有者,改成该用户

指令:

chgrp 用户名 文件/目录名

作用:把文件的所属组,改成该用户

指令:

chown 用户名1:用户名2 文件/目录名

作用:把文件的拥有者改成用户1,所属组改成用户2

普通用户更改文件的所属组和拥有者时,是不能直接修改的

[类比于:生活中,给别人东西,也要征得别人的同意]

所以
只能使用sudo暂时提升权限,才能给予

root用户则可以直接给予


umask

umask的作用:查看或修改⽂件掩码
查看指令:

umask

修改指令:

umask 3个八进制数

一般新建⽂件的

最初默认权限

=0666
一般新建⽬录

最初默认权限

=0777

但实际上你所创建的⽂件和⽬录的

最终默认权限

往往不是上⾯这个值。

原因就是创建⽂件或⽬录的时候,还要受到umask的影响
即:
文件/目录的

最终默认权限

=最初默认权限&(~umask)
[注意:

默认权限和umask虽然都有四位,但是看权限的时候,只看后3位,umask也可以只改后3位

]


在这里插入图片描述

上图的umask为002

文件的

最初默认权限

=0666
⽬录

最初默认权限

=0777

所以
目录dir的最终默认权限
777&(~[002])=775

文件file.txt的最终默认权限:
666&(~[002])=664


粘滞位

为了在一个共享的目录[即任何人对该目录的权限都是rwx的目录]

防止别人删除拥有者不是他的文件。【

因为目录的w权限才是决定是否能删除/增加目录中的文件

而不是文件自己的权限决定】

a和b想在共享目录里进行数据传输

a新建了一个文件df.txt

并把文件设置成只有所属组拥有rwx的权限,这样就只有b能修改和看这个文件了

但是这个时候因为目录是共享的,所有人都对共享目录具有rwx权限,就意味着所有人都可以删除共享目录下的所有文件

此时c虽然看不了a新建的bf.txt 但是却可以把它删除,这非常的不合理

加上粘滞位之后,就能解决这样的问题


添加粘滞位的方法

使用指令:

chmod +t 目录的路径即目录名
标签: linux

本文转载自: https://blog.csdn.net/2301_80058734/article/details/144206693
版权归原作者 liuyunluoxiao 所有, 如有侵权,请联系我们删除。

“Linux的用户和权限【Linux操作系统】”的评论:

还没有评论