005-Linux用户管理


前言

提示:这里可以添加本文要记录的大概内容:


一、用户/组配置文件

1.1、用户基本信息文件(/etc/passwd

下图是root用户的基本信息。

在这里插入图片描述

/etc/passwd文件中每一行为一个用户的信息,用:分隔成7部分,每部分的含义如下:

root:x:0:0:root:/root:/bin/bash

1	root		用户名
2	x			密码占位符,具体内容在/etc/shadow文件中
3	0			用户id,
4	0			组id
5	root		用户描述
6	/root		家目录
7	/bin/bash	登录shell:命令解释器

用户id的范围:

0			超级用户root
1-999		系统用户
1000-65535	普通用户

shell类型:

/bin/bash		是一种Unix shell和命令语言,它是Linux和macOS中默认的shell。
/sbin/nologin	是一个特殊的shell,用于限制某个用户的登录。
/bin/sync		是一个用于刷新文件系统缓存的命令
/sbin/shutdown	是一个系统关机命令

1.2、用户密码信息文件(/etc/shadow

下图是root用户的密码信息。

在这里插入图片描述

/etc/shadow文件中每一行为一个用户的密码信息,用:分隔成9部分,每部分的含义如下:

root:$6$.bymQ1uTDdOGHDqW$ARaL9uwcL.y/wjnSwJr8d05nJmkAMyqaok7wOoUrVm63Xwdj5tWDfCS1lGidYwA8cmhS3LCxbCp5W960ASQJG.:19842:0:99999:7:::

1	root						用户名
2	$6$.bymQ1uT(缩减了一部分)	加密后的用户密码
3	19842						最后一次修改时间:从某个时刻起到最后一次修改的天数,时间起点不同的操作系统起点不同,SCOLinux中,时间起点是1970年1月1日
4	0							最小时间间隔:两次修改密码之间所需的最小天数
5	99999						最大时间间隔:密码保持有效的最大天数
6	7							警告时间:从系统开始警告用户到用户密码正式失效之间的天数
7								不活动时间:用户没有登录活动但账号仍能保持有效的最大天数,超过天数后,账号被禁用
8								失效时间:账号的生存期,期满后,账号不合法,不能用来登录
9								保留

用户密码$6$.bymQ1uT

空			用户没有密码,登陆时不需要密码
*			用户被锁定
!!			密码过期
$6$			加密类型:SHA-512
$1$			加密类型:MD5
$2$			加密类型:Blowfish
$5$			加密类型:SHA-256

1.3、组信息文件(/etc/group

下图是root组的信息。

在这里插入图片描述

/etc/group文件中每一行为一个用户组的信息,用:分隔成4部分,每部分的含义如下:

root:x:0:

1	root	用户组
2	x		用户组密码占位符
3	0		组id
4			组内成员列表

二、用户/组管理命令

2.1、useradd、adduser(推荐):新增用户

dduser:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码;

useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。有的操作系统不指定参数,也会又默认的参数值,不同操作系统不同。

创建用户过程:

useradd不加任何参数创建时,系统首先读取用于添加用户的配置文件/etc/login.defs/etc/default/useradd,根据这两个配置文件中定义的规则添加用户。然后向/etc/passwd/etc/group文件添加用户和用户组记录,同时/etc/passwd/etc/group对应的加密文件也会自动生成记录。接着系统会自动在/etc/default/useradd文件设定的目录下建立用户家目录。最后复制/etc/skel目录中的所有文件到新用户的家目录中,新用户建立完成。

Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]
       
Options:
-u:用户标识号,此标识必须唯一。
-g:指定新用户登录时所属的默认组(主组)。
-G:指定新用户的附加组,必须是已经存在的组。附加组对于默认组而言,当一个用户同时是多个组中的成员时,登录时默认组称为主组,其他组称为附加组。
-d:指定新建用户的默认家目录,如果不指定系统会在/etc/default/useradd文件指定的目录下创建用户主目录。
-s:指定新建用户使用默认的shell类型,如果不指定,会在/etc/default/useradd文件中定义的shell作为新用户的默认shell。
-c:对新建用户添加说明信息。
-f:指定账号过期多长时间后会永久停用。当值为0时账号立刻停用。当值为-1时则关闭此功能。
-M:创建时不生成用户家目录。

2.2、usermod:修改用户

Usage: usermod [options] LOGIN

Options:
-u UID #修改用户的指定UID
-g 组名 #修改用户的指定初始组(尽量不修改)
-G 组名 #修改用户的附加组(不管之前设置了多少附加组,都替换掉)(加上-a选项可不替换)
-c 说明 #修改用户的描述信息
-d 目录 #结合 -m 选项直接对原家目录进行改名实现修改家目录
-s shell类型 #修改用户的登录shell类型
-L 用户名 #锁定用户的密码
-U 用户名 #解锁用户密码
-l 新用户名 旧用户名 #修改用户名

2.3、userdel:删除用户

Usage: userdel [options] LOGIN

Options:
-r 删除用户时,连带家目录一起删除

2.4、passwd:修改用户密码

Usage: passwd [OPTION...] <accountName>

Options:
-l 用户名 #锁定用户的密码,使之无法登录系统。
-u 用户名 #解锁用户密码。
-S 用户名 #查看用户账号状态。

说明:
第一次对一个用户使用时是为此用户创建密码,第二次使用时是修改密码。
当普通用户没有密码时,自己是修改不了密码的。

2.5、groupadd:新增用户组

Usage: groupadd [options] GROUP

Options:
-g:指定新建用户组的GID,该GID必须唯一,不能和其他用户组的GID重复。
-o:表示新用户组的GID可以与系统中已有的用户组的GID相同。

2.6、gpasswd:修改组内成员列表

Usage: gpasswd [option] GROUP

Options:
-a:向指定组内添加一个成员
-d:把指定用户从组内删除
-M:定义组内成员列表,用户之间用,分隔(覆盖式)

2.7、newgrp:切换用户组

Usage: newgrp [-] [group]

说明:
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户权限。

2.8、groupdel:删除用户组

Usage: groupdel [options] GROUP

说明:
如果该用户组中扔包括某些用户,则必须先删除这些用户后,才能删除用户组。

2.9、groups:查询用户所属哪些组

Usage: groups [OPTION]... [USERNAME]...

2.10、其他用户命令

whoami	显示用户名称
id		显示用户名称id、主组id、附属组id

三、提权

3.1、su:切换用户身份(永久提权,重启服务器失效)

su [options] [-] [<user> [<argument>...]]

说明:
su - 用户	切换用户身份和shell环境
su 用户		切换用户身份
exit		退出用户切换,返回到切换用户前的身份

3.2、sudo:(临时提权)

3.2.1、sudo命令

usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s]
            [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...

Options:
-l	列出当前用户可以执行的命令

3.2.2、/etc/sudoers配置文件

给普通用户提供某个命令的权限的话需要修改/etc/sudoers配置文件,推荐使用visudo命令,以下是配置方法:

`/etc/sudoers`文件的最后添加如下格式的配置:

username host = (runas) NOPASSWD command

1	username	用户名,也可以是用户组,但是要在用户组前面加上`%`
2	host		主机名或IP地址
3	runas		表示以哪个用户的身份运行命令,默认为`root`
4	NOPASSWD	不需要输入密码	
5	command		表示可执行的命令或命令序列,比如:`/sbin/reboot`重启命令

/etc/sudoers配置文件的参数

参数作用
user表示将授权信息添加到指定用户的权限列表中
ALL表示将授权信息添加到所有用户或者组的权限列表中
NOPASSD表示授权用户在执行该命令时无需输入密码
PASSWD表示授权用户在执行该命令时需要输入密码
/path/表示授权用户可以执行的命令路径,必须使用完整的命令路径
/file表示授权用户可以执行的文件路径,必须使用完整的文件路径
#表示注释符号,后面的内容将被视为注释,不起实际作用
Defaults表示设置sudo的默认配置信息,包括日志路径、运行超时时间等

3.2.3、visudo命令

usage: visudo [-chqsV] [[-f] sudoers ]

Options:

-c	检查sudoers文件语法错误
-f	指定要编辑的sudoers文件,默认为/etc/sudoers
-q	在检查sudoers文件时,只输出错误信息而不进行其他操作
-s	指定编辑的sudoers文件为模拟模式,不会真正写入sudoers文件中

总结

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于齐龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值