一、用户管理命令
useradd #用户增加命令
usermod #用户修改命令
passwd #密码修改命令
userdel #用户删除命令
su #用户提权命令
1、useradd命令(加用户):
创建并设置用户信息,使用useradd命令可以自动完成用户信息,基本组,家目录等创建工作,并在创建过程中对用户初始信息进行定制。
语法格式:useradd 参数 用户名
实例:
useradd test1 #创建指定用户信息
user -M -s /sbin/nologin test2 #创建指定用户信息,但不创建家目录,也不能登录。
useradd -u 6688 test3 #创建指定用户信息,并自定义UID值
useradd -G root test4 #创建指定用户信息,并追加指定组为该用户
useradd -e "2025/06/01" test5 #创建一个临时用户
当系统没有给新建的用户添加密码时,只能通过root用户登陆,同为用户需要密码,而新建的用户没有设置密码所以不能登陆。
2、passwd命令(加密码):
passwd命令来自password的缩写,其功能是修改用户的密码值。
同时也可以对用户进行锁定等操作,但需要管理员身份才能执行。
当使用useradd命令添加用户之后,默认给用户不能登陆,因为没有设置密码值。
只有设置了密码之后,才可以登陆。
语法格式:passwd 参数 用户名
passwd #修改当前用户密码
passwd test1 #修改指定用户的密码(需要root管理员)
passwd -l test1 #锁定指定用户的密码值,不允许其修改;
passwd -u test1 #解锁指定用户的密码值,允许其修改;
passwd -e test2 #在下次登陆时强制修改密码
passwd -d test2 #删除指定用户的密码值
passwd -S test3 #查看指定用户的密码状态
扩展:重置root密码的方法:
1、首先重启系统,然后快速按下e键进入GRUB界面,
2、然后在最后一行之前输入rd.break,如图:
3、输入好后,按ctrl+x来重启系统。
重启系统后,按任意键继续,然后在第一个命令提示符下输入
mount -o remount,rw /sysroot #重新挂载文件系统
输入好后回车,在输入
mount |grep sysroot #判断成功与否
然后回车。
然后在命令提示符下输入如下命令:
chroot /sysroot/ #改变系统目录为临时目录
echo 123 |passwd --stdin root #修改root密码为123
touch /.autorelabel #重新标记SElinux环境值文件
然后输入两次exit来退出。
然后系统就会自动重启。密码修改成功。
Linux救援模式===》单用户模式
3、usermod命令:
usermod命令(user modify),其功能是修改用户信息中的各项参数,在创建用户后发现信息错误,可以不用删除,用usermod命令直接修改用户信息,并且参数会立即生效。
语法格式:usermod 参数 用户名
实例:
usermod -d /home/testA test1 #修改指定用户的家目录路径,不能有用户正在使用该账号。
usermod -u 6666 test1 #修改用户ID为6666
查用户ID:vim /etc/passwd
修改前:
修改后:
对于用户来说该账号的名称为:test1,而对于系统来说该账号的名称为6666
usermod -l newname test1 #修改指定用户名称为newname
在/etc/passwd里面修改成功
,而用户的家目录没有发生变化。
usermod -L test1 #锁定指定的用户,临时不允许登陆系统,使用xshell登陆不上去
usermod -U test1 #解锁指定用户,再次允许登陆系统
4、userdel命令
(user delete),功能为删除用户信息。在Linux系统中一切都是文件,用户信息被存在/etc/passwd和/etc/shadow以及/etc/group文件中,
故使用userdel命令实际上是删除指定用户在上述三个文件中的对应信息。
语法格式:userdel 参数 用户名
实例:
userdel test1 #删除指定用户
userdel -r test2 #删除用户信息以及家目录,何其所有子文件
扩展:将用户从用户组中删除:gpasswd -d <用户名称> <用户组名>
5、su命令
su命令来自于switch user的缩写,其功能是切换用户身份。
将管理员切换至任意用户身份无序进行密码认证,而将普通用户切换到任意用户身份均需密码验证。另外,添加的单个减号(-)参数表示完全的身份变更,不保留之前的用户任何的环境变量信息。
语法格式:su 参数 用户名
实例:
su test 与 su - test 的区别:
解决问题:XXX不在sudoers文件中,此事将被报告
修改/etc/sudoer即可:
su root
chmod 777 /etc/sudoers
vim /etc/sudoers
在root那行添加:XXX ALL=(ALL) ALL
保存退出
chmod 440 /etc/sudoers
再返回自己的是身份。
之后再次执行。
二、用户组管理命令
groupadd #用户组添加命令
groupmod #用户组修改命令
groupwd #用户组密码设置命令
groupdel #用户组删除命令
1、groupadd命令:
groupadd命令的功能是创建新的用户组,每个用户在创建的时候都有一个与其同名的基本组,后期可以使用groupadd命令创建新的用户组信息,让更多的用户加入到指定的扩展组。
语法格式:group 参数 用户组
实例:
groupadd newgroup1 #创建一个新的用户组
groupadd -g 6688 newgroup2 #创建一个新的用户组,并指定用户组ID
groupadd -r newgroup3 #创建新的用户组,设定为系统工作组
#1000以内的编号是系统组,1000普通用户组
添加用户组以后:/etc/group会发生变化。
扩展:
新建用户将其加入到指定的用户组之中,作为其主用户组(每个用户有且仅有一个用户组)
useradd -g <用户组名> <用户名>
useradd -g xxx yyy #-g是加入主要组
或新建用户并将其加入指定附属组,一个用户可以有多个附属组,多个附属组名称用逗号隔开。
useradd -G <用户组名> <用户名>
useradd -G xxx yyy #G是加入附属组
1、主要群组:每个文件都必须有一个组的所有者,因此必须有一个与每个用户相关的默认组。这个默认组成为新建文件的组所有者,被称为用户的主要群组。用户的主要群组再passwd中的第四个字段中定义。
2、次要群组:除了主要群组,用户也可以根据需要再隶属于其他的群组,这些群组称为次要群组,再group文件中第四个字段中定义。
#将已有的用户添加到指定的用户组
#将已有的用户添加到指定的用户组,作为其附属用户组
#-a代表append和-G一起使用,将用户添加到新用户组中而不避开原有的其他用户组。
usermod -g <新用户组名> <旧用户组名>
#将已有用户的主用户组修改为其他新的用户组
usermod -g <新用户组名> <旧用户组名>
权限中第二个为组权限,对于同组的人来说如果权限开放,可以互相进入对方的~(home)
2、groupmod命令:
“group modify”,作用是用于更改群组属性。linux系统下的群组信息一般不建议修改,因为涉及已加入的用户的归属问题,尤其是群组名称,组GID,一定要确认好后再操作。
语法格式:groupmod 参数 群族名
实例:
groupmod -n newgroupA oldgroupB #更改指定的用户组名称
groupmod -g 8888 newgroupA #更改指定用户组识别码
3、groupdel命令:
delete a group 其功能是用于删除用户组,Linux系统中的用户组信息被保存在/etc/group和/etc/gshadow中,手动删除对应的信息即可,亦可以使用groupdel命令删除。
语法格式:groupdel [参数] 群组名
常用参数:
-f 强制删除
-h 显示帮助信息
实例:
groupdel newgroup #删除指定名称的用户组
groupdel -f newgroup #强制删除指定名称的用户组
三、用户配置文件
在Linux系统中,用户名,密码,用户组,和用户组密码都是保存在不同的配置文件中。
/etc/passwd 用于保存用户的账号文件
/etc/shadow 用于保存用户的密码文件 ===>useradd,passwd
/etc/group 用于保存用户组的文件
/etc/gshadow 用于保存用户组密码的文件 ===>groupadd,gpasswd
/etc/skel 保存用户家目录隐藏文件
/etc/default/useradd 用于定义添加用户的信息文件 ===>用户配置文件