前言:Linux系统是一个多用户多任务的分时操作系统,任何一个要使用资源的都必须向系统管理员申请一个账户,然后通过这个账户的身份进入系统。
一.此次目的
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。
二.用户账号的添加、删除与修改。
1.添加新的用户账号使用useradd命令。
语法:useradd 选项 用户名
选项
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组,
-G 用户组,用户组 指定用户所属的附加组,
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
(1) useradd test1创建用户test1
有些版本的只有useradd是不会创建下面的家目录的。
(2) useradd -d /home/123 -m test2 指定为test2用户创建11111的家目录,默认情况是用户名
你可以重新登录,用用户test2登录。发现家目录是11111
(3) useradd test4 -s /bin/sh -g group -G yy
创建用户test4 登录的shell是/bin/sh,主组属于group,副组属于yy
2.删除账号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
语法:userdel 选项 用户名
-r:将用户的家目录一同删除
userdel -r test2
你可以看到test2的家目录也一并删除了
检测用户是否删除干净
第一步:检测用户是否纯在
命令:id 用户名
命令:getent passwd 用户名
第二步:检测用户的家目录
ls /home | grep 用户名
如果任然纯在用户家目录,删除就行了。
第三步:检测用户的邮件
邮件地址 /var/mail
ls /var/mail/用户名
之所以有test1是因为由前面知道没有使用-r参数,只是删除账户,一些其他是没有删除的,二test2用了-r参数,所以删除了。
第四步:检测用户进程
ps -u 用户名
第五步:杀死进程
kill -9 进程ID
-9
代表的是SIGKILL
信号。它是一个特殊的信号,通常用于强制终止进程,不会给进程执行清理操作的机会。
第六步:检测系统用户配置文件
grep 用户名 /etc/passwd
grep 用户名 /etc/shadow
没有输出值说明删除了
第七步:删除用户的Cron作业
ls /var/spool/cron/crontabs/
第八步:检测用户的组
grep 用户名 /etc/group
没有说明删除了
3.修改账号 usermod
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
语法:usermod 选项 用户名
(1)-l参数,修改用户的登录名,也就是你登录的时候使用的名字
注意:
-l
选项只会修改用户名,不会更改用户的家目录和邮件别名。usermod -l 新用户名 旧用户名
验证注意事项
命令:usermod -l new test3
我将用户test3在登录的时候使用new这个名字登录
来到登录界面,会有者new账户
你会发现家目录的test3名并没有修改 ,这是就可以将这个家目录修改为你的new名字
(2)usermod -d 新目录 -m 用户名 修改用户的主目录
这个命令并不能修改当前正在运行的用户
重新登录其他用户,修改成功。
(3) usermod -s /bin/bash(/bin/sh) 用户名:修改用户的默认登录的shell
可以发现现在这个账户是/bin/bash登录shell
命令:usermod -s /bin/sh new
补充:这是网上查找的关于bash和sh
sh
是 Bourne Shell 的缩写,最初由 Steve Bourne 开发。它是一个传统的 Unix shell,基本功能较为简洁,兼容性强。bash
(Bourne Again Shell)则是sh
的一个扩展,包含了更多的功能,比如命令补全、历史记录、数组支持等,并且更加灵活。
bash
在现代 Linux 系统中通常是默认的 shell,而sh
可能是指向bash
或其它 shell(如 Dash)的符号链接。简单来说,bash
是对sh
的增强版,功能更丰富。具体区别太多太细,不是相关的运维人员没必要。
(4)usermod -g 主用户组 用户名/usermod -G 附加用户组 用户名:修改用户的用户组
这里我修改yy2的
命令:usermod -g yuanshen yy2
这是修改主属组的
命令:usermod -G group yy2
这里意味着这个yy2用户属于主组为yuanshen,附加组为group
(5) usermod -L 用户名(锁定用户)/usermod -U 用户名 (解锁用户)
命令:usermod -L new
这里通过grep new /etc/shadow,也就是查看这个用户的密码情况。
命令:usermod -U new
没有感叹号了
(6) usermod -e 2024-11-9 用户名
用chage -l new 可以查看用户密码过期事件
4.用户口令管理passwd
语法:passwd 选项 用户名
(1) passwd -l 锁定口令,就是禁用账号
这里我用usermod -U解锁用户
(2)passwd -u 口令解锁。
我先用usermod -L 锁定账户
成功解锁
(3) passwd -d 账户无口令(没有密码)
(4)passwd -f 强迫用户下次登录时修改口令
没有密码的会直接修改密码。
三.LIinx系统中的用户组的管理
不同Linux 系统对用户组的规定有所不同,Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
1.增加一个·新的用户组使用groupadd命令
语法:groupadd 选项 用户组
(1)groupadd -g CID 指定新用户组的组标识号(GID)
(2)groupadd -o GID 组名
般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
2.删除一个·已有的用户组使用groupdel命令
命令:groupdel fist1
3. 修改用户组的属性使用groupmod命令
语法:groupmod 选项 组名