用户身份与文件权限
1、Linux是一个多用户、多任务的操作心态,具有很好的稳定性与安全性。
2、在Linux系统中,UID表示用户身份号码,具有唯一性。在 RHEL 7 系统中,用户身份有下面这些:
- ① 管理员 UID 为 0:系统的管理员用户
root
。 - ② 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
- ③ 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。
3、用户组用于管理属于同一组的用户,通过使用用户组号码(GID, Group IDentification)可以把多个用户加入到同一组中,从而方便为组中的用户统一规划权限或指定任务
。
4、在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组
。一个用户只有一个基本用户组,但是可以有多个扩展用户组。
1 用户命令
命令 | 格式 | 作用 |
---|---|---|
useradd | useradd [选项] 用户名 | 创建新的用户 |
groupadd | groupadd [选项] 群组名 | 创建用户组 |
usermod | usermod [选型] 用户名 | 修改用户属性 |
passwd | passwd [选项] [用户名] | 修改用户密码、过期时间、认证信息等 |
userdel | userdel [选项] 用户名 | 删除用户 |
1、useradd
:使用该命令创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。
useradd命令中的用户参数及作用:
2、usermod
:Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在/etc/passwd 文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩展用户组、默认终等。
usermod命令中的参数及作用:
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d -m | 这两个参数连用,可重新指定用户的home目录并自动把旧的数据转移过去 |
-e | 账户的过期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止 其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
3、passwd
:普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所有人的密码,并且修改自己或他人的密码时不需要验证旧密码。
passwd命令中的参数及作用:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5GlCOLT-1627227536001)(Linux学习.assets/1627223384186.png)]
4、userdel
:删除该用户的所有信息。在执行删除操作时,该用户的home目录默认会保留下来,此时可以使用-r 参数将其删除。
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户 home目录 |
2 用户权限
1、Linux 系统中一切都是文件,但是每个文件的类型不尽相同。使用如下符号区分:
符号 | 代表文件类型 |
---|---|
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
2、在 Linux 系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。
- r:能够读取文件的实际内容。可用数字4 (binary: 100)表示。
- w:能够编辑、新增、修改、删除文件的实际内容。2(010)
- x:表示能够运行一个脚本程序。1 (001)
# ll helloworld.sh
-rwxr-xr-x 1 root root 129 Mar 5 23:15 helloworld.sh
# 从左到右
## - 表示该文件是普通文件
## rwx r-x r-x 分别为文件所有者、文件所属组、其他用户的权限
## 1
## root 表示属主
## root 表示属组
## 129 占用磁盘大小。单位是字节
## Mar 5 23:15 修改时间
## helloworld.sh 文件名称
3 su与sudo命令
1、su
命令用来切换用户身,当前用户在不退出登录的情况下切换到其他用户。
su - hadoop01 # 完全切换到hadoop01用户,即把环境变量信息也变更为新用户的信息,而不保留原始信息。
- 从 root 管理员切换到普通用户时是不需要密码验证的。
- 从普通用户切换成 root管理员就需要进行密码验证。
2、 sudo
命令把特定命令的执行权限赋予给指定用户,即给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为:sudo [参数] 命令名称
。
sudo服务中的可用参数及其作用:
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u 用户名 或 UID值 | 以指定的用户身份执行命令 |
-k | 清空密码的有效时间,下次执行时需要密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
- 总结来说,sudo 命令具有如下功能:
- 限制用户执行指定的命令。
- 记录用户执行的每一条命令。
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数。
- 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。
visudo
命令:配置用户权限。- 这条命令在配置用户权限时将禁止多个用户同时修改 sudoers 配置文件。
- 可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
- 只有 root 管理员才可以使用 visudo 命令编辑 sudo 服务的配置文件。