目录
一、管理用户账号和组账号
1、Linux基于用户身份对资源访问进行控制
2、用户账号的分类
3、组账号的分类
4、标识号分类
二、用户账号文件
1、 /etc/passwd 存放用户信息
2、 /etc/shadow 保存密码信息
三、用户账号管理
1、useradd 添加用户账号???????
?2、passwd 设置/更改用户口令
3、usermod 修改用户账号属性
补充:chage 对密码进行操作,修改密码属性,交互式
4、userdel删除用户账号
四、用户账号的初始配置文件
1、文件来源
2、主要的用户初始配置文件
五、组账号文件
1、/etc/group: 保存组账号基本信息
2、/etc/gshadow: 保存组账号的密码信息??
3、groupadd添加组账号
4、gpasswd 添加删除组成员
六、查询账号信息
1、groups 查询用户所属的组
2、id 查询用户身份标识
3、finger查询用户帐号的详细信息
4、w查询已登录到主机的用户信息
5、who 显示当前登录的用户信息
6、users?显示当前登录的用户信息
w、who和users的比较
七、文件/目录的权限和归属
1、访问权限
2、归属(所有权)
3、 设置文件和目录的权限chmod
4、设置文件和目录的归属chown
5、权限掩码umask
5.1 umask作用
5.2 umask的实现方式
5.3?umask使用
6、三种特殊权限
6.1 SUID
扩 TMP
6.2?SGID
6.3 Sticky
一、管理用户账号和组账号
1、Linux基于用户身份对资源访问进行控制
用户账号
组账号
UID和GID
- UID(User IDentity,用户标识号)、GID(Group IDentify,组标识号)
2、用户账号的分类
- 超级用户:拥有最高权限,root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
- 普通用户:权限受限的用户,账号需要由root用户或其他管理员用户创建,拥有的权限会受到限制,处理问题收到限制,一般只在用户自己的宿主目录中拥有完整权限。
- 程序用户:是给程序用的,在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。
3、组账号的分类
- 基本组(私有组):基本组账号必须有,有且只有一个,一般为创建用户时指定的组。
- 附加组(公共组):用户除了基本组以外,额外添加指定的组。附加组可以有多个,也可以没有,附加组在 /etc/group 文件中指定。
?4、标识号分类
- UID(User IDentity ,用户标识号)
Linux中每个用户是通过UID来唯一标识的 1-60000自动分配
超级用户UID 0?
普通用户UID CentOs6以前 500+ ? CentOs7以后 1000-60000
程序用户UID CentOs6以前 1-499? CentOs7以后 1-999? 预留给系统
在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。? ?
? ? ? ?与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。
二、用户账号文件
1、 /etc/passwd 存放用户信息
- 保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置: /etc/passwd
- 每一行对应一个用户的帐号记录
- 字段1:用户帐号
- 字段2:密码占位符“x”
- 字段3:用户账号id
- 字段4:组id
- 字段5:用户说明
- 字段6:宿主目录
- 字段7:登录Shell信息( /bin/bash是可登陆系统,/sbin/nologin是禁止用户登陆系统)
2、 /etc/shadow 保存密码信息
- 保存用户的密码、账号有效期等信息
- 文件位置: /etc/shadow
- 每一行对应一个用户的密码记录
- 第一字段:用户名lisi。
- 第二字段:$6$bNVu9kS...wTuZzgJI.是加密后的密码,此时可以登录此系统;当为!!和 *?表示没有密码用户不能登录到此系统;若该字段为空,用了代码 passwd -d lisi清空了密码,表示无需密码即可登录。
- 第三字段:上次修改密码时间,最后一次修改密码的时间(1970 年 01 月 01 日这是linux诞生的第一年已他作为元年开始计算)。
- 第四字段:从最后一次修改密码的日期起,多长时间之内不能修改密码,0表示不限制,可以随时修改密码;如果是4,则代表密码修改后4天之内不能再次修改密码。
- 第五字段:密码有限期,99999表示不限期限;如果改为 90,则表示密码被修改 90 天之后必须再次修改。
- 第六字段:密码到期提醒,7表示密码将要过期的前7天会提醒你 ,请修改密码。
- 第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户),如果写7,表示密码到期后还能再使用七天;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
- 第八字段:账号失效时间,如果写的是19275(根据例子),代表明天失效,如果失效,那么用户将锁定,无法登录。
- 第九字段:保留字段收费内容。
三、用户账号管理
1、useradd 添加用户账号
格式:useradd??? [选项] ? ? 用户名
对新建的用户设置,对已有用户无法设置
useradd的选项及功能
选项 | ?作用 |
---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 | -d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录 | -e? | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 | -g | 指定用户的基本组名(或使用GID号) | -r | 生成随机的系统用户 | -c | 提供备注信息 | -G | 指定用户的附加组名(或使用GID号) | -M | 不建立宿主目录,即使/etc/login.defs系统配置中已经设定要建立宿主目录 | -s | 指定用户的登录Shell |
实例:
-u 指定用户的UID号,此时也会创建和UID号相同的基本组
-u 指定用户的UID号,-d 指定用户宿主目录
?-d?指定用户的宿主目录位置 ,-M?不建立宿主目录,当-d和-M一同使用,-M生效
?-e 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式(年月日)
-g 指定用户的基本组名(或使用GID号)?
-s??指定用户的登录Shell
-r 生成随机的系统用户,不生成家目录
不允许登录? 不建家目录? 指定失效时间? 指定uid为10000 叫qn的用户
?2、passwd 设置/更改用户口令
?格式:passwd? ? [选项] ? ? 用户名
passwd选项及功能
选项 | 功能 |
---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 | -l | 锁定用户账户,锁定的用户账号将无法再登录系统。 | -S | 查看用户账户的状态(是否被锁定)。 | -u | 解锁用户账户 |
实例:
passwd +用户? 基本作用是修改用户密码
?-d 清空密码不使用密码也可以登录
-l 锁定用户账号,-S 查看用户账户的状态(是否被锁定)。
?-u 解锁用户账号?
3、usermod 修改用户账号属性
格式:? usermod? [选项]? 用户名
usermod对已经存在的用户进行修改,并且用户不在使用时可以进行修改
usermod选项及功能
选项 | 功能 |
---|
-l | 修改用户名 | -L | 锁定用户 | -U | 解锁用户 | -u | uid | -d | 家目录 | -g | 基本组 | -G | 附加组 | -s | 修改shell类型 | -e | 修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式 |
-u 修改用户的UID号
?-l?修改用户名(修改的名字放前面,原来的名字在后面)
补充:chage 对密码进行操作,修改密码属性,交互式
4、userdel删除用户账号
格式:userdel? [-r]? 用户名
添加-r选项时,表示连用户的宿主目录—并删除
四、用户账号的初始配置文件
1、文件来源
新建用户帐号时,从/etc/skel目录中复制而来
2、主要的用户初始配置文件
家目录的基本配置文件
- ~/.bash_profile? (登录时会读取命令执行一次)
- ~/.bashrc? (登录时会读取命令执行一次)
- ~/.bash_logout? (登录后会读取命令执行一次)
五、组账号文件
1、/etc/group: 保存组账号基本信息
2、/etc/gshadow: 保存组账号的密码信息??
3、groupadd添加组账号
格式 :groupadd? [-g GID] ? 用户组名
4、gpasswd 添加删除组成员
格式 :gpasswd [选项] 组帐号名
设置组帐号密码(极少用)、添加/删除组成员
gpasswd选项及功能
选项 | 功能 |
---|
-a | 向组内添加一个用户 | -d | 从组内删除一个用户成员 | -M | 定义组成员列表,以逗号分隔 |
-d 将用户ll从组zz中删除户
?-a 在组内添加用户
?-M?定义组成员列表,以逗号分隔 ,在组内添加多个用户
六、查询账号信息
1、groups 查询用户所属的组
格式:groups 用户名
2、id 查询用户身份标识
格式:id? 用户名
3、finger查询用户帐号的详细信息
格式:finger? [用户名]
使用前需要安装finger安装包
?4、w查询已登录到主机的用户信息
和finger命令相比,w命令查到的信息更全些
格式:?w [options]
w选项及功能
选项 | 功能 |
---|
-h | 不显示输出信息的标题 | -l | 用长格式输出 | -s | 用短格式输出,不显示登录时间 | -v | 显示版本信息 |
标题 | 含义 |
---|
USER | 登录到系统的用户。 | TTY | 登录终端。 | FROM | 表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名。 | LOGIN@ | 用户登陆的日期和时间。 | IDLE | 表示某个程序上次从终端开始执行到现在所持续的时间。 | JCPU | 和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。 | PCPU | 当前进程所占用的 CPU 运算时间。 | WHAT | 当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令。 |
5、who 显示当前登录的用户信息
格式:who [选项] [file]
相对比w命令,who命令只能显示当前登录的用户信息,但无法知晓每个用户正在执行的命令
who选项及功能
选项 | 含义 |
---|
-a | 列出所有信息,相当于所有选项。 | -b | 列出系统最近启动的时间日期。 | -l | 列出所有可登陆的终端信息。 | -m | 仅列出关于当前终端的信息,who -m 命令等同于 who am i 。 | -q | 列出在本地系统上的用户和用户数的清单。 | -r | 显示当前系统的运行级别。 | -s | 仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。 | -u | 显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。 | -T 或 -w | 显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。 |
6、users?显示当前登录的用户信息
格式:users [选项]... [文件]
w、who和users的比较
七、文件/目录的权限和归属
1、访问权限
- 读取r:允许查看文件内容? ?(有rx权限才可以显示目录列表)
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
扩:
- 一个文件可以被删除是和什么有关?和文件夹权限有关,和自己本身没有关系。
- 能不能看文件是和用户有关,而不是和命令有关,当前用户有权限就可以看,没有权限就不可以看。
- 文件夹最小权限是执行,如果没有执行权限,一样不可以打开
- 目录没有执行权限什么都做不了
- 文件没有读的权限,无法进行复制操作
- 问题:cp /etc/issue /mnt/dir 这条命令中? ,cp、etc、issue、dir和mnt分别最低需要什么权限?
- /bin/cp 需要x权限? ;? ? ? ? ? ? ? ?/etc/ 需要x权限 ;? ? ? ? ? ? ? ? ? ? ??/etc/issue 需要r权限 ;
- /data 需要x权限? ;? ? ? ? ? ? ? ? ?/data/dir 需要w,x权限
- 问题:作为超级管理员,别人没有读写权限,我有读写权限,那么别人没有执行权限,我有吗?
- 别人有执行权限,我也有执行权限,如果别人没有执行权限,我也没有执行权限
2、归属(所有权)
- 属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---|
字符表示 | r | w | x | r | w | x | r | w | x | 数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | 权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
3、 设置文件和目录的权限chmod
格式:chmod [ugoa] [+-=] [rwx] 文件或目录
u:属主????????? g:属组??????????? o:其他用户???? ? ? ? a:所有用户
+:增加 ? ? ? ? ? -:去除?????? ?? =:设置权限
r: 读????? ? ? ? ? ? ? w:写???? ? ? ? ?? x :运行
或 格式:? chmod nnn(3位八进制数) 文件或目录
此时 r 八进制为4? ?w 八进制为2? ? x 八进制为1
常用选项:-R:递归修改指定目录下所有子项的权限
实例:
将1.txt所有的权限改为不可读,不可写,不可执行
将1.txt的属主权限改成可读可写不可执行
将mnt目录下的所有文件的权限为除了属主可读可写可执行其它所有人都只能读的命令。
4、设置文件和目录的归属chown
格式:chown 属主 文件或目录
? ? ? ? ? ?chown :属组 ?文件或目录
? ? ? ? ? ?chown 属主:属组 ?文件或目录
常用选项:-R ?:递归修改指定目录下所有文件、子目录归属
实例:
改变属主:chown 属主 文件或目录
?改变属组: chown :属组? 文件或目录
??改变属主与属组 ? chown 属主:属组? 文件或目录
??-R 递归修改指定目录下所有文件、子目录归属
5、权限掩码umask
5.1 umask作用
umask 的值可以用来保留在创建文件权限
5.2 umask的实现方式
- 文件落地最高权限 666 (为安全性考虑,文件没有执行权限) ;文件夹落地最高权限 777
- 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
- 新建目录的默认权限: 777-umask
- 非特权用户umask默认是 002
- root的umask 默认是 022 ???????
5.3?umask使用
- umask设置:umask 022 (一般不会去改)
- umask查看: umask
6、三种特殊权限
6.1 SUID
suid 当使用passwd命令处理文件时,当前用户就是这个文件的属主
给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
?扩 TMP
tmp:放临时文件,所有用户的临时文件
只能作用于文件夹,对于加载文件没有作用
6.2?SGID
6.3 Sticky
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 在目录设置Sticky 位,只有文件的所有者或root可以删除该文件 sticky 设置在文件上无意义 Sticky权限设定:chmod o+t DIR...? ?;? ?chmod o-t DIR..
添加Sticky 位
?减少Sticky 位
|