Linux4️⃣用户、用户组管理
Linux 系统是一个多用户多任务的分时操作系统,任何用户都需要申请账号,才能通过该账号的身份进入系统,使用系统资源。
- 每个用户账号都有唯一的用户名和各自的口令(密码)
- 用户账号可以帮助系统管理员对使用系统的用户进行跟踪,并控制用户对系统资源的访问
- 用户账号也可以帮助用户组织文件,并为用户提供安全性保护
1、用户账号管理
增加、删除、修改。
1.1、添加:useradd
通过 root 用户添加账号。
- 在系统中创建一个新账号,为其分配用户号、用户组、主目录和登录Shell等资源;
- 新添加的账号是锁定的,需要设置密码后才可使用;
- 本质:在
/etc/passwd
文件中为新用户增加一条记录,同时更新其他系统文件。
( /etc/shadow, /etc/group等)
1.1.1、语法 & 常用参数
useradd 用户名
-c
- comment
- 指定一段注释性描述。
-d
- home-dir,用户目录
- 指定用户主目录,如果此目录不存在,则同时使用
-m
创建主目录;
-g
:指定用户组(主组);-G
:指定用户组(附加组);-m
:创建用户主目录;-u
:指定用户号,如果同时有-o
选项,则可以重复使用其他用户的标识号。
1.1.2、示例
实例1
-
命令:useradd secretmrj -m
-
创建用户secretmrj,创建用户主目录 /home/secretmrj
实例2
-
命令:useradd baby -m -g secretmrj -G root
-
创建用户baby,指定用户组为secretmrj用户组(主组),root用户组(附加组)。
2.2、删除:userdel
通过 root 用户,删除账号
- 删除
/etc/passwd
等系统文件中的该用户记录;- 必要时还删除用户的主目录(-r)。
userdel 用户名
常用参数:-r,删除用户主目录。
实例
-
命令:userdel -r jaywee1
-
删除用户jaywee1在系统文件中的记录,同时删除用户的主目录。
2.3、修改:usermod
修改用户账号:更改用户有关属性,如用户号、主目录、用户组、登录 Shell 等。
语法:usermod 用户名
常用参数:
- 包括
-c, -d, -m, -g, -G, -s, -u以及-o等
; - 参数意义与
useradd
命令中的选项一样,可以为用户指定新的资源值。
2.4、密码:passwd
密码管理
- 用户账号刚创建时没有密码,被系统锁定,必须为其设置密码后才可以使用。
- 普通用户只能设置自己的密码。
- 超级用户可以为自己和其他用户设置密码。
- 普通用户设置密码时,passwd命令会先询问原口令,验证后再输入新密码并输入确认密码。
- 超级用户设置密码时,不需要知道原口令,直接输入新密码并输入确认密码。
2.4.1、语法 & 常用参数
# 如果没有用户名,则修改当前用户的密码
passwd 用户名
常用参数
-d
:使账号无密码,即空密码;-f
:强迫用户下次登录时修改密码;-l
:锁定密码,即禁用账号;-u
:解锁密码。
2.4.2、示例
实例:超级用户设置密码
-
命令:passwd jaywee,为用户jaywee设置/修改密码
-
流程:
-
输入新密码、确认密码、设置成功;
-
如果确认密码输入有误,则重新输入新密码
-
实例2:普通用户设置密码
-
命令:passwd
-
流程:
-
输入原密码、输入新密码、确认密码、设置成功;
-
如果原密码输入有误,则退出密码设置;
-
如果确认密码输入有误,则重新输入新密码。
-
2、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。
用户组管理:添加、删除和修改,本质是/etc/group
文件的更新。
2.1、添加:groupadd
通过 root 用户添加用户组,每个用户组都有组识别号(GID)
语法:groupadd 选项 用户组
参数:
-g
:GID 指定新用户组的组标识号(GID)。-o
:一般与-g
选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
实例1:
-
命令:groupadd mygroup1
-
增加一个新用户组 mygroup1,GID是当前最大GID自增1。
实例2:
-
命令:groupadd mygroup2 -g 1250
-
增加一个新用户组 mygroup2,指定GID为1250。
2.2、删除:groupdel
通过 root 用户,删除用户组
语法:groupdel 用户组
2.3、修改:groupdel
通过 root 用户,修改用户组
语法:groupmod 用户组
常用参数:
-g
、-o
:参数意义与groupadd
命令中的选项一样;-n
:修改用户组名字。
实例:
-
命令:groupmod mygroup1 –g 1666-n mygroup6
-
此命令将组 mygroup1 的 GID 改为 1666,组名修改为 mygroup6
2.4、切换:newgrp
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
前提条件:该用户组确实是该用户的主组或附加组。
newgrp 用户组