一、Linux的用户及用户组与权限
1.1、Linux的用户和用户组内容介绍
序号 | Linux的用户角色 | 说明 |
1 | 超级用户 | 拥有对系统的最高管理权限,可执行任意操作,默认是root用户 |
2 | 普通用户 | 只能对自己目录下的文件进行访问和修改,具有登录系统的权限(如:www用户、ftp用户、nginx用户等) |
3 | 虚拟用户 | 也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求(如:系统默认的bin、adm、nobody用户等); |
![]() ![]() |
序号 | 用户和用户组关系 | 说明 |
1 | 一对一 | 一个用户可以存在一个组中,也可以是组中的唯一成员 |
2 | 一对多 | 一个用户可以存在多个用户组中(此时用户具有多个组的共同权限) |
3 | 多对一 | 多个用户可以存在一个组中,这些用户具有和组相同的权限 |
4 | 多对多 | 多个用户可以存在多个组中(多个用户可分别在多个组中,是前三种关系的拓展) |
序号 | 用户和用户组配置文件 | 说明 |
1 | /etc/passwd | 是系统用户配置文件,是用户管理中最重要的一个文件(这个文件记录了Linux系统中每个用户的一些基本属性,并且对所有用户可读) |
2 | /etc/shadow | 是用户影子文件,存储用户密码(由于/etc/passwd文件是所有用户都可读的,这样就导致了用户的密码容易出现泄露,因此,linux将用户的密码信息从/etc/passwd中分离出来,单独的放到了一个文件中,这个文件就是/etc/shadow,该文件只有root用户拥有读权限) |
3 | /etc/group | 用户组配置文件,用户组的所有信息都存放在此文件中 |
4 | /etc/login.defs | 用来定义创建一个用户时的默认设置(如:指定用户的UID和GID的范围,用户的过期时间、是否需要创建用户主目录等等) |
5 | /etc/default/useradd | 定义了新建用户的一些默认属性(如:用户的主目录、使用的shell等等,通过更改此文件,可以改变创建新用户的默认属性值) |
6 | /etc/skel | 是目录,定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息 |
1.2、Linux的用户和用户组操作命令
序号 | 用户操作命令 | 说明 |
1 | useradd | 创建一个新的Linux用户 语法:useradd [选项] 登录名 常用选项如下:【其他的选项内容可用命令[useradd -h]查看】 《1》-u uid:用户编号,此编号必须唯一; 《2》-g group:指定新建用户登录时所属的默认组(主组)此用户组必须已经存在; 《3》-G group:指定新建用户的附加组,此群组必须已经存在(附加组是相对与主组而言的,当一个用户同时是多个组中的成员时,登录时的默认组成为主组,而其它组称为附加组); 《4》-d home:指定新建用户的默认主目录(若不指定,系统会在/etc/default/useradd文件指定的目录下创建用户主目录); 《5》-s shell:指定新建用户使用的默认shell(若不指定,系统以/etc/default/useradd文件中定义的shell作为新建用户的默认shell); 《6》-o uid:允许使用重复的 UID 创建用户; |
2 | usermod | 修改已有的Linux用户信息 语法:usermod [选项] 登录名 常用选项如下:【其他的选项内容可用命令[usermod -h]查看】 《1》-u uid:指定用户新的UID值,此值必须为唯一的ID值,除非用-o选项; 《2》-g group:修改用户所属的组名为新的用户组名,此用户组名必须已经存在; 《3》-G group:修改用户所属的附加组; 《4》-d 主目录:修改用户登录时的主目录; 《5》-s shell:修改用户登录系统后默认使用的shell; 《6》-o uid:允许使用重复的 UID 创建用户; 《7》-L:锁定用户密码,使密码无效; 《8》-U:解除密码锁定; |
3 | userdel | 删除指定用户,若指定“-r”参数不但删除用户,同时删除用户的主目录以及目录下的所有文件 |
| ||
序号 | 用户组操作命令 | 说明 |
1 | groupadd | 添加新的用户组 语法:groupadd [选项] 组 |
2 | newgrp | 主要用于在多个用户组之间进行切换 |
3 | groupdel | 删除用户组(若用户组中仍包含某些用户,则必须先删除这些用户后,然后才能删除用户组) |
|
1.3、Linux中的权限及其切换用户操作
Linux中的用户与权限操作https://coffeemilk.blog.csdn.net/article/details/149037758
二、Linux的环境变量
2.1、Linux的常用环境变量及其操作
序号 | 环境变量操作 | 命令内容 | 说明 |
1 | 查看环境变量 | env | 可列出所有已经定义的环境变量内容 |
echo | 查看环境变量的语法:echo $环境变量名称 | ||
2 | 常见环境变量 | 常见系统环境变量: PATH、PWD、BASH、LANG、USER、HOSTNAME、HOME、SHELL | |
3 | 自定义环境变量 | export | 《1》可查看所有导出的的变量内容【export】 《2》定义并设置自定义变量 注意:环境变量可以在命令行中设置,但用户注销时这些值将丢失,环境变量均为大写,必须用export命令导出 |
4 | 清除环境变量 | unset | |
2.2、Linux的环境变量文件
序号 | 环境变量文件 | 说明 |
1 | /etc/profile | 属于全局环境变量配置文件 |
2 | .bash_profile .bashrc | 属于用户环境变量文件 |
当某个Linux用户登录系统时,shell会首先执行系统默认的配置文件【/etc/profile】然后会自动执行【.bash_profile】文件,如果【.bash_profile】文件不存在,则接着读取【~/.bashrc】文件。 |
2.3、添加环境变量
序号 | 添加用户环境变量的操作 |
1 | 打开需操作用户主目录下的【 .bash_profile】文件,然后添加需要配置的环境变量内容 |
2 | 配置文件环境变量文件后,执行source命令马上生效 |
环境变量配置文件使用原则: 2、需要对全局生效的环境变量配置,都配置到/etc/profile文件中; |
三、sudo的权限配置解析及其使用
3.1、sudo权限配置说明
sudo命令的配置文件是【/etc/sudoers】 注意一:编辑sudo命令的配置文件必须使用独有的命令【visudo】打开操作,该工具会给你自动检查语法内容; 注意二:不要使用vi或vim打开,否则一旦因为语法写错会造成严重的后果。 | ||
序号 | sudo配置及其说明 | |
1 | 1、root 表示用户; 2、ALL 表示从任何的主机上都可以执行(也可以是指定网段如:192.168.166.0/24); 3、(ALL) 是以谁的身份来执行,ALL表示代表root用户可以以任何人的身份来执行命令; 4、ALL 表示任何命令; 这条规则配置的完整含义是【root用户可以在任何主机以任何人的身份来执行所有的命令】。 规则配置语法:【who where whom command】(即:是谁在什么位置以谁的身份执行什么命令) | |
2 | 这条配置表示【只允许coffeemilk用户在 192.168.166.0/24 网段上连接主机并且以root权限执行useradd 命令】 | |
3 | 这条配置表示【允许www用户可在任何主机上以root身份执行所有命令,且不用输入密码,可执行的所有命令中除了修改用户密码、不能修改root用户密码、不能使用su命令切换外的其他所有命令】该命令一般给应用程序配置用户使用 | |
4 | 这条配置表示【允许wheel用户组可在任意主机上以任何人的身份来执行所有命令】只用将用户添加到这个组下就具有这个组的权限了; 注意:这条配置在centos7及其更高版本默认已经开放%wheel这一行,但是之前的centos版本没有启用 | |
5 | 这条配置表示【允许wheel用户组可在任意主机上以任何人的身份来执行所有命令,并且不用输入密码】 |
3.2、sudo权限配置使用
#编辑sudo文件
visudo /etc/sudoers#示例1:给testuser用户配置sudo权限(只允许testuser用户在192.168.1.1-192.168.1..254网段内以root身份执行任何命令,且需要输入testuser用户自己的密码,除了不能修改所有用户密码和切换用户)
testuser 192.168.1.0/24=(root) ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
#编辑sudo文件
visudo /etc/sudoers#示例2:给testuser用户配置sudo权限(只允许testuser用户在192.168.1.1-192.168.1..254网段内以root身份执行任何命令,且不用输入testuser用户自己的密码,除了不能修改所有用户密码和切换用户)
testuser 192.168.1.0/24=(root) NOPASSWD:ALL,!/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
#示例3:将testuser333用户添加到wheel组中,让testuser333用户拥有wheel组的权限
usermod -G wheel testuser333#将用户testuser333从wheel用户组中移除【注意:执行该命令在root用户下执行,若在当前用户下执行则需要退出该用户后重新登录后权限才会失效】
gpasswd -d testuser333 wheel