1、useradd命令
useradd命令用于创建新的用户
格式为:useradd [选项] 用户名
可以使用useradd命令创建用户账户。
该命令创建用户账户时,默认用户家目录会被存放在/home目录中,默认Shell解释器为/bin/bash,默认创建一个与该用户同名的基本用户组。
useradd命令参数
参数 | 作用 |
---|---|
-d | 指定用户的家目录(默认为/home/username) |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-u | 指定该用户的默认UID |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认Shell解释器 |
创建一个普通用户并指定家目录的路径、用户的UID以及Shell解释器。
请注意/sbin/nologin,它是终端解释器中的一员,与Bash解释器有着天壤之别。一旦用户的解释器被设置为nologin,则代表该用户不能登录到系统中:
[root]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
[root]# id linuxprobe
uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)
2、groupadd命令
groupadd命令用于创建用户组
格式为:groupadd [选项] 群组名
如使用命令创建一个用户组ronny:
[root]# groupadd ronny
3、usermod命令
usermod命令用于修改用户的属性
格式为:usermod [选项] 用户名
usermod命令中的参数及作用
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
查看一下自己账户的默认信息如:用户为linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
将用户linuxprobe加入到root用户组中,这样扩展组列表中则会出现root用户组的字样,而基本组不会受到影响:
[root@linuxprobe ~]# usermod -G root linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
4、passwd命令
passwd命令用于修改用户密码、过期时间、认证信息等,
格式为:passwd [选项] [用户名]
普通用户只能使用passwd命令修改系统密码,root管理员有权限修改其他所有用户的密码。
root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码。
passwd命令中的参数以及作用
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
–stdin | 允许通过标准输入修改用户密码,如echo “NewPassWord” 丨passwd --stdin Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
演示修改用户自己的密码,以及如何修改其他人的密码(修改他人密码时,需要具有root管理员权限):
[root@linuxprobe ~]# passwd
Changing password for user root.
New password:此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
5、userdel命令
userdel命令用于删除用户,
格式为:userdel [选项] 用户名
userdel命令的参数以及作用
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
示例
使用userdel命令将linuxprobe用户删除:
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
[root@linuxprobe ~]# userdel -r linuxprobe
[root@linuxprobe ~]# id linuxprobe
id: linuxprobe: no such user
6、su命令与sudo服务
6.1、su命令
su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户:
[root@linuxprobe ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@linuxprobe ~]# su - linuxprobe
Last login: Wed Jan 4 01:17:25 EST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ id
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
从root管理员切换到普通用户时是不需要密码验证,从普通用户切换成root管理员就需要进行密码验证了
[linuxprobe@linuxprobe root]$ su root
Password:*******
[root@linuxprobe ~]# su - linuxprobe
Last login: Mon Aug 24 19:27:09 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ exit
logout
[root@linuxprobe ~]#
6.2、sudo命令
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务
格式为:sudo [参数] 命令名称
sudo服务中的可用参数以及作用
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u 用户名或UID值 | 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行sudo时需要再次进行密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
总结来说,sudo命令具有如下功能:
限制用户执行指定的命令:
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后5分钟内(默认值)无须再让用户再次验证密码。