目录
一、用户与组概述
与windows类似,Linux也有用户和用户组的概念。在Linux系统中,每次登录系统都必须以一个用户的身份登录,并且登录后的权限也会根据用户身份来确定。 每一个进程在执行时,也会有其用户,该用户也和进程所能控制的资源有关。Linux系统下的每一个目录、文件,都会有其属于的用户和用户组,我们称其为属主和属组。由此可见,用户和用户组与Linux系统的运行息息相关。在实际操作使用系统时,我们往往较多关注用户与用户组。
在Linux系统中,每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GID,UID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。
1、用户类型
-
root用户 s
root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经存在的用户,只有root可以为普通用户修改密码等等。
-
系统用户 (程序用户)
系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。
-
普通用户
普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。
2、用户和用户组关系
在Linux系统中,每个用户必定属于一个主组(基本组),默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。
3、用户和用户组配置文件
Linux系统下用户和用户组相关的配置文件主要有以下几个:
#/etc/passwd
存储用户信息
-
/etc/shadow
该配置文件保存了用户的密码信息
注意: !! 表示该用户没有设置密码。
! 表示用户密码被锁定,该用户无法登录操作系统。
-
/etc/group
该文件保存了用户组的信息 。
-
/etc/gshadow
该文件保存了用户组的密码。
-
/etc/login.defs
该文件可以设置密码过期时间,密码最大长度限制等内容。影响的是新创建的用户密码信息。
1、useradd命令
创建一个新用户或更新默认新用户信息
1.指定用户的UID
useradd -u 1003 user1
2.指定用户家目录
useradd -d /boop user2
3.指定用户登录shell
useradd -s /sbin/nologin user3
4.创建用户时不创建家目录
5.创建程序用户
useradd -M -s /sbin/nologin user5
6.创建用户时指定基本组
useradd -g user1 user6
7.创建用户组时指定附加组
useradd -G user1 user7
8.创建用户时,指定用户的失效时间
useradd -e 2025-05-20 user8
2、userdel
删除用户账户和相关文件
3、passwd命令
更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码。
案例:
1.设置用户密码
5、清空用户密码
2.锁定用户密码
3、查看密码的锁定状态
4、解除密码的锁定状态
6、强制密码失效
7、非交互式修改用户密码
4、usermod命令
修改一个用户账户的属性。
案例:
锁定用户
usermod -L user1
解锁账户
usermod -U user1
1.修改用户UID
2.修改用户家目录
3.修改用户登录shell
4.修改用户基本组(这个组必须是已存在的)
5,修改用户附加组
6
-e | 修改用户的失效时间。 |
7.追加用户到一个附加组 -a
5、chpasswd命令
批量更新密码。
6、chage命令
更改用户密码过期信息,影响的是现有的用户
三、组管理
1、groupadd命令
创建新组
group -g 1024 user9
2、groupdel命令
删除组
3、groupmod命令
4、gpasswd命令
向组内添加成员
四、用户切换与sudo提权
1、su命令
切换用户,从root用户切换到普通用户不需要密码。普通用户之间切换需要密码。
2、sudo命令
sudo用来进行普通用户提升权限
五、用户登录信息查看
1、id命令
查看用户的基本属性,用户UID,基本组及附加组
2、w命令
查看当前系统登录详情
3、who命令
显示当前系统登录的摘要信息
4、whoami命令
显示当前登录用户的名称
5、finger命令
查看用户登录信息,默认系统不存在该命令,需要安装
6、last命令
last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。
7、lastb命令
lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。
8、lastlog命令
统计当前系统中存在用户的登录情况