一、useradd命令--创建普通用户的
语法
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id。
1.创建一个普通用户(什么参数都不加)
![](https://img-blog.csdnimg.cn/53fbbb2ca3fe4b5e8b3785f3ec98fa98.png)
[root@seven01 ~]# useradd ljs123
2.在哪里可以看到你创建的ljs123?
![](https://img-blog.csdnimg.cn/bc621af70048487482205623d41af5cf.png)
[root@seven01 ~]# cd /home
[root@seven01 home]# ll
总用量 8
drwx------. 3 ljs123 ljs123 4096 12月 6 19:59 ljs123
drwx------. 16 tom tom 4096 11月 3 23:51 tom
[root@seven01 home]# ls
ljs123 tom
3.通过grep(过滤)命令可以将你创建用户的信息过滤出来
![](https://img-blog.csdnimg.cn/504e6df710314cd2985771a2c41d11e8.png)
[root@seven01 home]# grep -w ljs123 /etc/passwd
4.查看一下密码相关的文件shadow(默认是没有设置密码的)
![](https://img-blog.csdnimg.cn/56e196b31f8344829dc80fc32b27cd16.png)
[root@seven01 home]# grep -w ljs123 /etc/shadow
二、用户且指定uid和属组
1.创建一个用户组为xxx,组id 为1234
![](https://img-blog.csdnimg.cn/35de654e889343e7a5898066dca445b8.png)
[root@seven01 home]# groupadd -g 1234 tmd
2.查看一下你创建的工作组:
![](https://img-blog.csdnimg.cn/88fd3ad4fc6648e7a1ff6b1e806ab2dc.png)
[root@seven01 home]# tail -5 /etc/group
tcpdump:x:72:
tom:x:1000:tom
mysql:x:27:
ljs123:x:1001:
tmd:x:1234:
用户名:密码占位符:uid:gid:注释:家目录:使用的shell
3.创建用户组
![](https://img-blog.csdnimg.cn/e3eefca5dd78421d8314298e335ab202.png)
创建一个名为 ruanjian212工作组 指定id为801
[root@seven01 home]# groupadd -g 801 ruanjian212
4.创建新用户
![](https://img-blog.csdnimg.cn/41909667dc02492b958ae910119b081e.png)
创建一个新的用户hhh并指定组为ruanjian212
[root@seven01 home]# useradd -g ruanjian212 -u 888 hhh
5.检查用户信息
![](https://img-blog.csdnimg.cn/5024c3550c0d47b082e11408ee34df35.png)
[root@seven01 home]# id hhh
uid=888(hhh) gid=801(ruanjian212) 组=801(ruanjian212)
#创建用户禁止登陆,且不创建家目录
![](https://img-blog.csdnimg.cn/7cd64d2cdf6e402baf4d37d948ab8b13.png)
[root@seven01 home]# useradd -M -s /sbin/nologin qwe
[root@seven01 home]# tail -5 /etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
mysq:x:987:27::/home/mysq:/bin/bash
ljs123:x:1001:1001::/home/ljs123:/bin/bash
hhh:x:888:801::/home/hhh:/bin/bash
qwe:x:1002:1002::/home/qwe:/sbin/nologin
[root@seven01 home]# ls
hhh ljs123 tom
/sbin/nologin不可登录
/bin/bash可登录
三、groupdel:删除用户组
删除软件212组:
![](https://img-blog.csdnimg.cn/5375f468712b4731bd769fb2b8d1848d.png)
[root@seven01 home]# groupadd ruanjian
[root@seven01 home]# groupdel ruanjian
语法
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件
1.普通的删除用户
![](https://img-blog.csdnimg.cn/ada2f73ae77a49e88e63db955b1e7e03.png)
ls查询目录的时候发现hhh目录内无任何数据
[root@seven01 home]# userdel hhh
[root@seven01 home]# ls
hhh ljs123 tom
[root@seven01 home]# ls hhh/
这个时候你会发现这个hhh依然存在,这只是普通的将用户删除
linux系统会依然为你保留一个家目录(当然只剩下目录了)
2.使用参数强制性删除:(一般来说这个命令会在你即将离职的时候使用)
![](https://img-blog.csdnimg.cn/91a34ecbfcb24ec3a450f2c0ee3ff6f5.png)
四、userdel:删除普通用户
语法
passwd(选项)(参数)
选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
-i:密码过期多少天后禁用账户
-x:设置x天后可以修改密码
-n:设置n天内不得改密码
-e:密码立即过期,强制用户修改密码
-w:用户在密码过期前收到警告信息的天数
1.修改当前用户密码
![](https://img-blog.csdnimg.cn/2d4009a47fd54d07a7ec3478035638de.png)
使用此用户可能会报以下错误:
1、无效的密码: 码未通过字典检查 - 它基于字典单词
2、无效的密码: 密码少于 8 个字符
3、无效的密码: 密码包含用户名在某些地方
4、无效的密码: 与旧密码过于相似
[root@seven01 home]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 它基于字典单词
重新输入新的 密码:
2.修改普通用户密码 passwd 用户名
主要是我不想改
无效的密码: 原因同上
![](https://img-blog.csdnimg.cn/25c5f1f62a464d25ade56342a5a0e86e.png)
[root@seven01 home]# passwd tom
3. 列出用户密码信息
![](https://img-blog.csdnimg.cn/3c3c437702bc48bfad555598de96e618.png)
[root@seven01 home]# passwd -S tom
tom PS 2022-11-03 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
4.一条命令设置密码,企业常用(写到你的任务清单当中
![](https://img-blog.csdnimg.cn/5a5c90db54c0496e84ab638ca3d4c10c.png)
echo是输出命令 这句命令的意思就是 从管道左边读取密码 付给tom用户
[root@seven01 home]# echo "123" | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
5.passwd实际场景(写到你的任务清单当中)
![](https://img-blog.csdnimg.cn/7d310638cee545cc9b60ef32dbaf3f59.png)
设置tom用户7天不能修改密码,60天后可以修改密码,用户在密码过期前10天收到警告信息密码过期30天后禁用账户
[root@seven01 home]# passwd -n 7 -x 60 -w 10 -i 30 tom
调整用户密码老化数据tom。
passwd: 操作成功
五、su命令
su命令用于切换到指定用户
语法
su(选项)(参数)
选项
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。
1.第一种切换
直接切换用户--这种方式不规范 用户的环境变量没有切换过来
![](https://img-blog.csdnimg.cn/721088f8005a4be2b7e8566733fcf78c.png)
查询环境变量 发现是root的环境变量
[root@seven01 home]# su tom
[tom@seven01 home]$ env|egrep "USER|MAIL|PWD|LOGNAME"
USER=tom
MAIL=/var/spool/mail/root
PWD=/home
LOGNAME=tom
2.第二种切换
root 用户切换到普通用户不用输入密码
![](https://img-blog.csdnimg.cn/3a39bd8231a34f31a421b486eb772f77.png)
[root@seven01 home]# su tom
3.普通用户切换其他用户,需要输入用户密码
![](https://img-blog.csdnimg.cn/d27009e0b1d7480690d2070937e689d4.png)
[tom@seven01 ~]$ su - root
密码:
六、visudo命令
visudo用于编辑/etc/sudoers文件,且提供语法检测,用于配置sudo命令
sudo命令就相当于是尚方宝剑,你现在是一个普通的小官,皇上让你拿尚方宝剑惩恶扬善,所以说我现在得帮你把尚方宝剑放到你身上
语法
sudo(选项)(参数)
选项
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
![](https://img-blog.csdnimg.cn/335a4642b2cc465e8593cedee174770b.png)
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。普通用户不需要root密码即可用root权限执行命令。
1.切换到tom用户
![](https://img-blog.csdnimg.cn/3c383231b24f41f0a2fda7978f1a84de.png)
[root@seven01 home]# su - tom
上一次登录:二 12月 6 20:52:24 CST 2022pts/1 上
[tom@seven01 ~]$ ls /root
ls: 无法打开目录/root: 权限不够
2.利用sudo来访问 ls /root
由于刚刚把密码改了所以输错了一次
![](https://img-blog.csdnimg.cn/efef455ef35042f7b59aa5319b9e8e3f.png)
[tom@seven01 ~]$ sudo ls /root
[sudo] tom 的密码:
对不起,请重试。
[sudo] tom 的密码:
anaconda-ks.cfg hello.java ljs1 mysql57-community-release-el7-10.noarch.rpm 公共 视频 文档 音乐
hello.class initial-setup-ks.cfg ljs2 mysql80-community-release-el7-3.noarch.rpm 模板 图片 下载 桌面
3.切换到root用户
(多吊啊)
![](https://img-blog.csdnimg.cn/e9bcbf9b90ee46cc829e49f3534d9280.png)
不用输入密码直接切换到root用户
[tom@seven01 ~]$ sudo su -
上一次登录:二 12月 6 20:53:55 CST 2022pts/1 上
[root@seven01 ~]#