Linux使用用户权限机制对系统进行管理,这种管理主要是包括创建或删除用户、修改用户属性、添加或删除组、修改组成员和设置登录属性等,它的主要功能在于提供不同用户使用本系统的权限分配。通过这种管理来保证用户数据与文件的安全。
Linux系统中每个登录的成员都要有一个用户账号。用户登录时必须输入用户名和口令,只有该用户名、口令验证正确时,用户才能被允许进入Linux系统。账户实质上就是一个用户在系统上的标识,系统依据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境。
Linux中有三类用户:超级用户、系统用户和普通用户。
超级用户(root用户):每个Linux系统都必须有,并且只有一个。它拥有最高的权限,可以删除、终止任何程序。在安装时必须为root用户设置口令。另外,通常为减少风险要避免普通用户得到root用户权限。UID(UserID)值为0。
系统用户:是与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时自动创建并保持默认状态。系统用户不能登录计算机,UID值1——999。
普通用户:是在系统安装后由超级用户创建的,通常完成指定权限的操作,而且也只能操作自己所拥有权限的文件和目录,UID值1000——65535。
1、用户账户文件:/etc/passwd
组成:
超级用户:UID=0,GID=0;
普通用户:UID≥1000;
系统用户:0<UID<1000。
2、用户影子文件:/etc/shadow
注意:/etc/shadow文件只有root才有权限进行修改,普通用户不能读取该文件。
(1)who i am
查看当前用户的名称。
(2)id
格式:id【选项】<用户名>
功能:查看用户的UID和GID。
选项 | 功能 |
---|---|
-g | 显示用户的主组的GID |
-G | 显示用户所有的组的GID |
-u | 只显示UID |
(3)useradd
格式:useradd【选项】<用户名>
功能:新建用户(只有超级用户有使用此命令的权限)。
选项 | 值 | 功能 |
---|---|---|
-u | 用户ID | 指定用户UID |
-g | 组ID或组名 | 指定新用户的主组 |
G | 组ID或组名 | 指定新用户的附加组 |
-s | 登录shell | 指定新用户使用的shell,默认为/bin/bash |
-c | 备注 | 为账户加上备注 |
-d | 主目录 | 指定新用户的主目录 |
-e | 有效期限 | 指定用户的登录失效时间,如:10/10/2020 |
-f | 缓冲天数 | 设置在密码过期后多少天关闭该账户 |
-m | 默认主目录 | 自动创建与用户名同名目录 |
-n | 取消建立以用户名称为名的组 | |
-r | 建立系统账号 |
用户创建之后使用 cat /etc/passwd
查看,下图中可见新建用户。
(4)passwd
格式: passwd 【选项】<用户名>
功能:设置、修改用户的口令以及口令的属性。
在useradd创建新的用户之后还没有设置密码,不能使用该用户的账号登录系统。
选项 | 功能 |
---|---|
-d | 删除用户的口令,则该用户账号无需口令即可登录 |
-l | 锁住口令 |
-u | 恢复禁用用户账号 |
-S | 显示指定用户账号状态 |
选项 | 值 | 功能 |
---|---|---|
-x | 时间段+用户名 | 设置口令过期时间 |
注意:系统管理员可以设置所有用户的密码,普通用户只能修改自己的密码。
(5)usermod
格式:usermod【选项】<用户名>
功能:修改用户的属性信息(只有超级用户才可以使用该命令)。
选项 | 值 | 功能 |
---|---|---|
-g | 组ID或组名 | 指定新用户的主组 |
-G | 组ID或组名 | 指定新用户的附加组 |
-d | 主目录 | 指定新用户的主目录 |
-s | 登录shell | 指定新用户使用的shell,默认为bash |
-e | 有效期限 | 指定用户的登录失效时间 |
-u | 用户ID | 指定用户UID |
-c | 全名 | 指定用户全称 |
-f | 缓冲天数 | 指定口令过期后多久将关闭此账号 |
-l | 用户名 | 指定用户的新名称 |
-L | 用户名 | 锁定用户密码,使密码无效 |
-U | 用户名 | 解除密码锁定 |
注意:usermod命令与useradd命令的区别在于 usermod命令可以修改用户名且在禁用和恢复账号功能上,命令usermod不等同于 passwd。
(6)userdel
格式:userdel【选项】<用户名>
功能:删除指定的用户账号(只有超级用户才能使用该命令)。
选项 | 功能 |
---|---|
-f | 强制删除用户登录目录及目录中的所有文件 |
-r | 用于删除用户的Home目录和邮件 |
注意:正在使用系统的用户不能被删除,必须先终止该用户的所有进程才能删除该用户。
除以上列出的命令还有成批添加用户:newusers,成批修改口令:chpasswd等用户管理命令。
组是具有相同特性的用户集合。对组操作等价于对组中每个成员进行操作,组中的每个用户可共享组中的资源。组账号不能登录计算机,其设置的目的主要是便于权限的统一组织和分配。
组按性质划分为:系统组和私有组账户。
组账户文件:/etc/group
组影子文件:/etc/gshadow
(1)groupadd
格式:groupadd【选项】<组账号名>
功能:新建组群(只有超级用户才能使用此命令)。
该指令的执行将在/etc/group文件和/etc/gshadow文件中分别增加一行记录。
选项 | 功能 |
---|---|
-g | 用于指定GID |
-r | 用于创建系统组账号(GID小于1000) |
(2)gpasswd
格式:gpasswd【选项】<用户名><组账号名>
选项 | 功能 |
---|---|
-a | 添加组成员 |
-A | 添加组管理员 |
-d | 将用户从组中删除 |
(2)groupmod
格式:groupmod【选项】<组账号名>
功能:修改指定组群(只有超级用户才能使用此命令)。
该指令的执行将修改 /etc/group文件相应记录的内容。
选项 | 功能 |
---|---|
-g | 改变组账号的GID,组账号名保持不变 |
-n | 改变组账号名 |
(3)groupdel
格式:groupdel <组账号名>
功能:删除指定组群(只有超级用户才能使用此命令)。
注意:被删除的组账号必须存在;当有用户使用组账号作为私有组时不能删除;与用户名同名的私有组账号在使用userdel命令删除用户时被同时删除。
通过cat /etc/group命令查看,删除的组账户已经不存在了。