目录
Linux之用户管理
添加新用户 --- useradd命令
语法格式
常用选项
案例
为用户账号设置密码 -- passwd
语法格式
选项及作用
案例
修改用户属性 --- usermod命令
语法格式
选项及作用
案例
删除用户账号 --- userdel命令
语法格式
选项及作用
案例
用户切换 --- su(substitute user)命令
命令格式
su 命令与su - 命令的区别
控制用户对系统命令的使用权限 -- sudo命令
定义
配置sudo的2种方法
别名规则
别名规则的定义格式
Host_Alias
User_Alias
Runas_Alias
Cmnd_Alias
授权规则
定义格式
sudo的客户端应用
Linux之用户管理
添加新用户 --- useradd命令
语法格式
useradd [选项]
常用选项
选项 | 作用 |
-c 注释信息 | 设定与用户相关的说明(如:真实姓名、邮箱地址等) |
-d 目录 | 设定用户的家目录(默认/home/用户名) |
-e YYYY-MM-DD | 设置用户的失效日期,此日期后将不能使用该账号 |
-f 天数 | 指定密码到期后多少天账号被禁用,若指定为0,则表示该账号到期后被立即禁用;若指定为-1,则表示账号过期后不被禁用(即密码永不过期) |
-g 组名或GID号 |
为用户指定所属的基本组
,
该组在指定时必须已存在
|
-G 组名或GID号列表 | 为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,”分隔 |
-M | 不创建用户家目录 |
-N | 不创建用户同名的基本组 |
-p 密码 | 指定用户的登陆密码 |
-s shell名 | 指定用户登录后使用的shell,默认为bash |
-u 用户名 | 设置账号的UID,默认是已有用户的最大UID加1.如果同时有-o选项,则可以重复使用其他用户的标识号 |
案例
案例1 --- 新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件。
[root@localhost ~]# useradd zhang3
[root@localhost ~]# tail -l /etc/passwd
[root@localhost ~]# tail -l /etc/passwd
[root@localhost ~]# ls -ld /home/zhang3
[root@localhost ~]# ls -A /home/zhang3
过程
1. 在 /etc/passwd 和/etc/group文件中增添了一行记录;
2.为新用户创建家目录( 默认是“/home/用户名” , 除非特别设置 ), 并从 /etc/skel 中将 .bash_logout,.bash_profile、 .bashrc 和 .mozilla 等 4 个隐藏文件 复制到用户家目录 , 以便为用户的会话 提供环境变量 ;3.为新用户添加一个邮件池目录;4.创建一个和用户名同名的基本组( 除非特别指定其他组名 )
示例2 --- 新建一个用户li4,并指定用户家目录为/usr/li4
[root@localhost ~]# useradd -d /usr/li4 li4
[root@localhost ~]# useradd -d /usr/li4 li4
示例3 --- 新建一个用户wang5,指定其UID为1006、登录Shell为/bin/bash、密码为123.com,账号永不过期。
[root@localhost ~]# useradd -u 1006 -s /bin/bash -p 123.com -f -1 wang5
示例4 --- 新建一个辅助管理员用户admin,将其用户家目录指定为/admin,基本组指定为wheel,附加组同时属于adm组和root组
[root@localhost ~]# useradd -d /admin -g wheel -G adm,root admin
示例5 --- 新建一个用于访问FTP的zhao6用户,禁止其登录且不创建家目录
[root@localhost ~]# useradd -M -s /sbin/nologin zhao6
为用户账号设置密码 -- passwd
Linux的账户必须设置密码后,才能的登陆系统
语法格式
passwd [账户名]
选项及作用
选项 | 作用 |
-d | 清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登陆系统,而口令为空的账户可以 |
-f | 强迫用户下次登陆时必须修改口令 |
-i | 口令过期后多少天停用账户 |
-l | 锁定(停用)用户账户 |
-n | 指定口令的最短存活周期 |
-S | 显示账户口令的简短状态信息(是否被锁定) |
-u | 解锁用户账户 |
案例
若当前用户为root,请修改root用户的密码,并为zhang3用户设置密码
[root@localhost ~]# passwd root
此处密码设置为 root123
[root@localhost ~]# passwd zhang3
此处密码设置为 zhang3123
修改用户属性 --- usermod命令
语法格式
usermod [选项] username
选项及作用
选项 | 作用 |
-c 注释信息 | 设定与用户相关的说明(如:真实姓名、邮箱地址等) |
-d 目录 | 设定用户的家目录(默认/home/用户名) |
-g 组名或GID号 |
为用户指定所属的基本组
,
该组在指定时必须已存在
|
-G 组名或GID号列表 | 为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,”分隔 |
-M | 不创建用户家目录 |
-s shell名 | 指定用户登录后使用的shell,默认为bash |
-u 用户名 | 设置账号的UID,默认是已有用户的最大UID加1.如果同时有-o选项,则可以重复使用其他用户的标识号 |
-l 新用户名 | 更改账户的名称,必须在该用户未登录的情况下才能使用 |
-L | 锁定(暂停)用户账户,使其不能登陆使用 |
-U | 解锁用户账户 |
案例
示例1 --- 将用户admin的家目录移至/home目录下
[root@localhost ~]# usermod -d /home/admin admin
示例2 --- 将用户wang5的名称修改为wangwu,并暂停使用账号
[root@localhost ~]# usermod -l wangwu -L wang5
删除用户账号 --- userdel命令
语法格式
userdel [-r] 账户名
选项及作用
-r --- 再上出该账户的同时,一并删除该账户对应的主目录
案例
示例 --- 删除yang99及其主目录
[root@localhost ~]# userdel -r yang99
用户切换 --- su(substitute user)命令
命令格式
su [用户名]
su - [用户名]
注意:
从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。
su 命令与su - 命令的区别
su 只切换了root身份,但shell环境任然是普通的shell
su- 连用户和shell环境一起切换成root身份
控制用户对系统命令的使用权限 -- sudo命令
定义
sudo --- 控制用户对系统命令的使用权限,root允许的操作
注意:
通过sudo命令可以提高普通用户的操作权限,不过这个权限是需要进行配置才可以使用
配置sudo的2种方法
visudo 建议使用,会做语法检查
vi /etc/sudoer --- sudo配置文件
别名规则
别名规则的定义格式
Alias_Type NAME = item1, item2, ...
Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
注意:
其中Alias_Type是指别名类型,包括四种:Host_Alias、User_Alias、Runas_Alias和Cmnd_Alias。
NAME就是别名 --- 包含大写字母、下划线以及数字,但必须以一个大写字母开头,比如 ADMIN、 SYS1 和 NETWORKING 都是合法的,而 sYS 和 6ADMIN 是非法的
Host_Alias
定义主机别名
例子
User_Alias
Runas_Alias
Cmnd_Alias
授权规则
定义格式
授权用户 主机=命令动作
注意:这三个要素 缺一不可 ,但在 动作之前 也 可以指定切换到特定用户 下,在这里指定切换的用户要 用( )号括起来 ,如果 不需要密码直接运行命令 的,应该 加NOPASSWD:参数 ,但这些可以省略
sudo的客户端应用
sudo -l
|
列出当前用户可以执行的命令。只有在
sudoers
里的用户才能使用该选项
|
sudo -u 用户名 命令
|
以指定用户的身份执行命令。后面的用户是除
root
以外的,可以是用户名,也可以是UID
|
sudo -k
|
清除存活期时间,下次再使用
sudo
时要再输入密码
|
sudo -b
命令
|
在后台执行指定的命令
|
sudo -p
提示语
<
操作选项
>
|
提示语
<
操作选项
>
:可以更改询问密码的提示语,其中
%u
会代换为使用者账号名称,%h会显示主机名称
|
案例:
sudo记录用户输入密码时间。默认单位是分钟
[root@localhost ~]# sudo visudo --- 此命令将在nano编辑器中打开/ etc / sudoers文件
找到以下行: Defaults env_reset ,并修改为, Defaults env_reset, timestamp_timeout=30