Linux用户管理
一、Linux用户身份与能力
1、用 户与角色分类
- 管理员UID为0:拥有对系统的最高管理权限,系统的管理员用户---root用户;
- 系统用户UID为1-999:Linux系统默认服务程序会有独立的系统用户负责运行,进而有效控制安全,也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的;
- 普通用户UID从1000开始:由管理员创建的用于日常工作的用户,只能对自己目录下的文件进行访问和修改,具有登录系统的权限。
2、用户与用户组关系
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。
一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。
3、用户和组相关的配置文件
/etc passwd 文件 :系统用户配置文件,是用户管理中最重要的一个文件。这个文件记录了 Linux 系统中每
个用户的一些基本属性,并且对所有用户可读。
/etc /shadow 文件 :用户影子文件,由于 etc passwd 文件是所有用户都可读的,这样就导致了用户的密
码容易出现泄露,因此, linux 将用户的密码信息从 etc passwd 中分离出来,单独的放到了一个文件中,
这个文件就是 etc /shadow ,该文件只有 root 用户拥有读权限。
/etc /group 文件 :用户组配置文件,用户组的所有信息都存放在此文件中。
/etc login.defs 文件 :用来定义创建一个用户时的默认设置,比如指定用户的 UID 和 GID 的范围,用户的过
期时间、是否需要创建用户主目录等等。
/etc / useradd 文件 :定义了新建用户的一些默认属性,比如用户的主目录、使用的 shell 等等,通
过更改此文件,可以改变创建新用户的默认属性值。
/etc skel 文件: 目录定义了新建用户在主目录下默认的配置文件,更改 etc skel 目录下的内容就可以改变
新建用户默认主目录的配置文件信息。
备注:
用户的信息主要保存在/etc/passwd中,其主要内容为:
用户密码信息保存在/etc/shadow中,其主要内容为:
二、添加用户及用户组
2.1、useradd命令
作用:用于创建新的用户,且默认的用户家目录在/home目录下,默认的Shell解释器为/bin/bash,且默认会创建一个与用户名相同的基本用户组。
格式:useradd <选项> 用户名
选项:
参数 |
作用 |
-d |
指定用户家目录 |
-e |
账号到期时间,格式YYYY-MM-DD |
-u |
指定该用户的UID |
-g |
指定一个初始的用户组【必须已存在】 |
-G |
指定一个或多个扩展用户组 |
-s |
指定该用户的默认Shell解释器 |
-N |
不创建与用户名相同的基本用户组 |
备注:/sbin/nologin为Shell解释器,若设置为/sbin/nologin则用户无法登陆系统。
2.2、groupadd命令
作用:用于创建用户组;
格式:groupadd <选项> 组名
三、用户修改命令
3.1、usermod命令
作用:用于修改用户的属性。
格式:usermod <选项> 用户名
选项:
参数 |
作用 |
-md |
即-d与-m合用重新指定新的家目录并将原数据移动到新的家目录 |
-e |
账号到期时间,格式YYYY-MM-DD |
-u |
修改该用户的UID |
-g |
变更所属用户组 |
-G |
变更扩展用户组 |
-s |
修改Shell解释器 |
-L |
锁定用户禁止其登陆系统 |
-U |
解锁用户,允许其登陆系统 |
3.2、passwd命令
作用:修改用户的密码、过期时间、认证信息等。普通用户只能修改自己的密码,root用户可以修改其他用户的密码。
格式:passwd <选项> 用户名
选项:
参数 |
作用 |
-L |
锁定用户禁止其登陆系统 |
-U |
解锁用户,允许其登陆系统 |
--stdin |
允许通过标准输入修改密码 |
-d |
可以使用空密码登陆系统 |
-e |
可以强制用户下次登陆时修改密码 |
-S |
显示用户密码是否锁定,以及加密算法名称 |
备注:--stdin:可以使用echo "密码值" | passwd –stdin 用户名
3.3、userdel命令
作用:用于删除用户
格式:userdel <选项> 用户名
选项:
参数 |
作用 |
-f |
强制删除用户 |
-r |
同时删除用户及其家目录 |
3.4、groupdel命令
作用:删除用户组,若用户组存在用户删除会失败。
格式:groupdel <选项> 用户组
3.5、newgrp命令
作用:如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限,newgrp 主要用于在多个用户组之间进行切换。
四、查看用户信息
4.1、id命令
作用:查看用户的基本信息,会打印出用户的UID及所属所有组(包括所属组及扩展组)的PID值。
格式:id 用户名 或直接使用id查看当前用户信息。
4.2、who命令
作用:用于查看当前登入主机的用户终端信息
格式:who
五、sudo使用说明
在进行sudo权限授权时只能用root用户进行授权,使用visudo进行编辑配置文件。
/etc sudoers 文件默 认给 root 用户定义了一条规则
root ALL=(ALL) ALL
root 表示 root 用户。
ALL 表示从任何的主机上都可以执行,也可以这样 192.168.100.0/24 。
(ALL) 是以谁的身份来执行, ALL 就代表 root 可以任何人的身份来执行命令。
ALL 表示任何命令。
那么整条规则就是:
root 用户可以在任何主机以任何人的身份来执行所有的命令。
iivey 192.168.10.0/24=(root) / usr sbin useradd
上面的配置只允许iivey 在 192.168.10.0/24 网段上连接主机并且以 root 权限执行 useradd 命令。
www ALL=(root) NOPASSWD:ALL,!/usr / passwd [A Za z]*,!/ usr / passwd root,!/bin/ su
允许www 用户执行所有命令,除了 passwd 后加任意字符、 passwd root 和 su 这三类操作。
%wheel ALL=(ALL) ALL
centos7默认已经开放 %wheel 这一行,之前的 centos 版本没有启用。
%wheel ALL=(ALL) NOPASSWD:ALL
NOPASSWD: ALL 不输入密码执行任何命令