|
马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?用户注册
x
下面使用命令创建一个称为的用户,并使用命令确认信息:Linux技术教程的具体问题可以到我们网站了解一下,也有业内领域专业的客服为您解答问题,为成功合作打下一个良好的开端!
[@ ~]#
[@ ~]#
=1001() =1001() =1001()
下面我们提高难度,创建一个普通用户并指定家目录的路径、用户的UID以及S解释器。在下面的命令中,请注意,它是终端解释器中的一员,与B解释器有着天壤之别。一旦用户的解释器被设置为,则代表该用户不能登录到系统中:
[@ ~]# - 8888
[@ ~]#
=8888() =8888() =8888()
3 命令
命令用于创建新的用户组,语法格式为“ [参数]群组”。
为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。例如在工作中成立一个部门组,当有新的同事加入时就把他的账号添加到这个部门组中,这样新同事的权限就自动跟其他同事一模一样了,从而省去了一系列烦琐的操作。
创建用户组的步骤非常简单,例如使用如下命令创建一个用户组:
[@ ~]#
4 命令
命令用于修改用户的属性,英文全称为“ ”,语法格式为“ [参数]用户”。
前文曾反复强调,L系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用命令修改已经创建的用户信息,比如用户的UID、基本扩展用户组、默认终端等。命令的参数以及作用如表5-2所示。
表5-2 命令中的参数以及作用
参数
作用
-
填写用户账户的备注信息
- -
参数-与参数-连用,可重新指定用户的家目录并自动把旧的数据转移过去
-
账户的到期时间,格式为YYYY-MM-DD
-
变更所属用户组
-G
变更扩展用户组
-L
锁定用户禁止其登录系统
-U
解锁用户,允许其登录系统
-
变更默认终端
-
修改用户的UID
大家不要被这么多参数吓坏了。我们先来看一下账户的默认信息:
[@ ~]#
=1000() =1000() =1000()
然后将用户加入到用户组中,这样扩展组列表中则会出现用户组的字样,而基本组不会受到影响:
[@~]# -G
[@~]#
=1000() =1000() =1000(),0()
再来试试用-参数修改用户的UID号码值:
[@~]# - 8888
[@~]#
=8888() =1000() =1000(),0()
除此之外,同学们比较关心的肯定是如果把用户的解释器终端由默认的修改为后会有什么样的效果呢我们来试试吧:
[@ ~]#
[@ ~]# -
T
效果很直观!将用户的终端设置成后用户马上就不能登录了(切换身份也不行),但这个用户依然可以被某个服务所调用,管理某个具体的服务。这样的好处是当黑客通过这个服务入侵成功后,破坏的范围也仅仅局限于这个特定的服务,而不能使用这个用户身份登录到整台服务器上,从而尽可能地把损失降至比较小化。
5 命令
命令用于修改用户的密码、过期时间等信息,英文全称为“”,语法格式为“ [参数]用户”。
普通用户只能使用命令修改自己的系统密码,而管理员则有权限修改其他所有人的密码。更酷的是,管理员在L系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然管理员能够修改其他用户的密码,就表示其完全拥有该用户的管理权限。命令中的参数以及作用如表5-3所示。
表5-3 命令中的参数以及作用
参数
作用
-
锁定用户,禁止其登录
-
解除锁定,允许用户登录
--
允许通过标准输入修改用户密码,如 "NPW" | -- U
-
使该用户可用空密码登录系统
-
强制用户在下次登录时修改密码
-S
显示用户的密码是否被锁定,以及密码所采用的加密算法称
要修改自己的密码,只需要输入命令后敲击回车键即可:
[@ ~]#
C
N : 此处输入密码值
R : 再次输入进行确认
:
要修改其他人的密码,则需要先检查当前是否为管理员权限,然后在命令后指定要修改密码的那位用户的称:
[@ ~]#
C
N :此处输入密码值
R : 再次输入进行确认
:
假设您有位同事正在度假,而且假期很长,那么可以使用命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该命令允许用户登录系统,而不是将其删除。这样既保证了这段时间内系统的安全,也避免了频繁添加、删除用户带来的麻烦:
[@ ~]# -
L
: S
[@ ~]# -S
LK 1969-12-31 0 99999 7 -1 (P )
在解锁时,记得也要使用管理员的身份;否则,如果普通用户也有锁定权限,系统肯定会乱成一锅粥:
[@ ~]# -
U
: S
[@ ~]# -S
PS 1969-12-31 0 99999 7 -1 (P , SHA512 )
6 命令
命令用于删除已有的用户账户,英文全称为“ ”,语法格式为“ [参数]用户”。
如果确认某位用户后续不会再登录到系统中,则可以通过命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-参数将其删除。命令的参数以及作用如表5-4所示。
表5-4 命令中的参数以及作用
参数
作用
-
强制删除用户
-
同时删除用户及用户家目录
在删除一个用户时,一般会建议保留他的家目录数据,以免有重要的数据被误删除。所以在使用命令时可以不加参数,写清要删除的用户称就行:
[@ ~]#
[@ ~]#
: :
虽然此时该用户已被删除,但家目录数据会继续存放在目录中,等确认未来不再使用时将其手动删除即可:
[@ ~]#
[@ ]#
[@ ]# -
[@ ]#
52 文件权限与归属
在L系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所属组以及其他人对文件所拥有的可读()、可写()、可执行()等权限。对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的际内容;“可写”表示能够编辑、新增、修改、删除文件的际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置就不那么容易了。很多资深L用户其也没有真正搞明白。对于目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命文件;而“可执行”则表示能够进入该目录。
可读、可写、可执行权限对应的命令在文件和目录上是有区别的,具体可参考表5-5。
表5-5 读写执行权限对于文件与目录可执行命令的区别
文件的可读、可写、可执行权限的英文全称分别是、、,可以简写为、、,亦可分别用数字4、2、1来表示,文件所有者、文件所属组及其他用户权限之间关联,如表5-6所示。
表5-6 文件权限的字符与数字表示
文件权限的数字表示法基于字符()的权限计算而来,其目的是简化权限的表示方式。例如,若某个文件的权限为7,则代表可读、可写、可执行(4+2+1);若权限为6,则代表可读、可写(4+2)。我们来看一个例子。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;其他人只有可读的权限。那么,这个文件的权限就是---,数字法表示即为764。不过大家千万别再将这3个数字相加,计算出7+6+4=17的结果,这是小学的数学加减法,不是L系统的权限数字表示法,者之间没有互通关系。
这里以----权限为例来介绍如何将字符表示的权限转换为数字表示的权限。首先,要将各个位上的字符替换为数字,如图5-1所示。
减号是占位符,代表这里没有权限,在数字表示法中用0表示。也就是说,-转换后是420,-转换后是401,--转换后是020。然后,将这3组数字之间的每组数字进行相加,得出652,这便是转换后的数字表示权限。
将数字表示权限转换回字母表示权限的难度相对来说就大一些了,这里以652权限为例进行讲解。首先,数字6是由4+2得到的,不可能是4+1+1(因为每个权限只会出现一次,不可能同时有两个执行权限);数字5则是4+1得到的;数字2是本身,没有权限即是空值0。接下来按照表5-6所示的格式进行书写,得到420401020这样一串数字。有了这些信息就好办了,就可以把这串数字转换成字母了,如图5-2所示。
大家一定要心中牢记,文件的所有者、所属组和其他用户的权限之间关联。一定不要写成----的样子,一定要把权限位对应到正确的位置,写成----。
图5-1 字符与数字权限转换示意图
图5-2 数字与字符权限转换示意图
L系统的文件权限相当复杂,但是用途很广泛,建议大家把它彻底搞清楚之后再学习下一节的内容。现在来练习一下。请各位读者分别计算数字表示法764、652、153、731所对应的字符表示法,然后再把---、----、-----转换成数字表示法。
下面我们利用上文讲解的知识,一起分析图5-3中所示的文件信息。
图5-3 通过命令查看到的文件属性信息
在图5-3中,包含了文件的类型、访问权限、所有者(属主)、所属组(属组)、占用的磁盘大小、比较后修改时间和文件称等信息。通过分析可知,该文件的类型为普通文件,所有者权限为可读、可写(-),所属组权限为可读(--),除此以外的其他人也只有可读权限(--),文件的磁盘占用大小是34298字节,比较近一次的修改时间为4月2日的0:23,文件的称为。
排在权限前面的减号(-)是文件类型(减号表示普通文件),新手经常会把它跟“权限”混淆。尽管在L系统中一切都是文件,但是不同的文件由于作用不同,因此类型也不尽相同(有一点像W系统的后缀)。常见的文件类型包括普通文件(-)、目录文件()、链接文件()、管道文件()、块设备文件()以及字符设备文件()。
普通文件的范围特别广泛,比如纯文本信息、服务配置信息、日志信息以及S脚本等,都属于普通文件。几乎在每个目录下都能看到普通文件(-)和目录文件()的身影。块设备文件()和字符设备文件()一般是指硬件设备,比如鼠标、键盘、光驱、硬盘等,在目录中比较为常见。应该很少有人会对鼠标、键盘进行硬件级别的管理吧。
53 文件的特殊权限
在复杂多变的生产环境中,单纯设置文件的权限法满足我们对安全和灵活性的需求,因此便有了SUID、SGID与SBIT的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能现的功能。
下面具体解释这3个特殊权限位的功能以及用法。
1 SUID
SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行命令来修改自己的用户密码,而用户密码保存在文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到文件中。这很像在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他长时间成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。
查看命令属性时发现所有者的权限由变成了,其中改变成就意味着该文件被赋予了SUID权限。另外有读者会好奇,那么如果原本的权限是-呢如果原先权限位上没有执行权限,那么被赋予特殊权限后将变成大写的S。
[@ ~]# -
---------- 1 1312 J 21 05:08
[@ ~]#
--- 1 34512 A 13 2022
T
加粗显示的字体用来告诫用户一定要小心这个权限,因为一旦某个命令文件被设置了SUID权限,就意味着凡是执行该文件的人都可以临时获取到文件所有者所对应的更高权限。因此,千万不要将SUID权限设置到、、等命令上面!!!
2 SGID
SGID特殊权限有两种应用场景:当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限;当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的称。
SGID的首种功能是参考SUID而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限。举例来说,在早期的L系统中,是一个字符设备文件,用于存储内核程序要访问的数据,权限为: |
|