云计算大数据——Linux用户与权限管理指南大全
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
一、用户管理
1.1 用户账户和组账户概述
1.1.1 用户的分类
- 角色类型 UID范围 描述
- 超级用户 0 root用户,拥有系统最高权限
- 普通用户 CentOS6: 500+
- CentOS7: 1000+ 一般系统使用者,权限受限
- 程序用户 CentOS6: 1-499
CentOS7: 1-999 用于维持服务运行,通常不用于登录
- 超级用户
- UID范围:固定为 0 0 0。
- 描述:这是系统的root用户,拥有最高权限。它可以执行任何操作,包括修改系统文件、安装软件和管理其他用户。但由于权限过高,日常使用时应避免以root身份登录,以防止意外错误或安全风险。
-
普通用户
- UID范围:
- 在CentOS 6系统中:UID ≥ 500 \geq 500 ≥500。
- 在CentOS 7系统中:UID ≥ 1000 \geq 1000 ≥1000。
- 描述:这类用户是普通系统使用者,权限受限。他们只能访问自己的文件目录和授权的资源,无法修改系统核心设置。这有助于隔离用户活动,提高系统安全性。例如,普通用户无法删除其他用户的文件或更改系统配置。
- UID范围:
-
程序用户
- UID范围:
- 在CentOS 6系统中: 1 ≤ UID ≤ 499 1 \leq \text{UID} \leq 499 1≤UID≤499。
- 在CentOS 7系统中: 1 ≤ UID ≤ 999 1 \leq \text{UID} \leq 999 1≤UID≤999。
- 描述:这类用户专用于运行后台服务或应用程序(如Web服务器或数据库服务),通常不用于登录系统。它们的权限被严格控制,以最小化安全风险。程序用户账户通常没有登录shell或家目录,仅用于维持服务稳定运行。
- UID范围:
关键差异总结
- CentOS版本差异:CentOS 7调整了普通用户的UID起始点(从500提高到1000),并扩展了程序用户的UID范围(从1-499扩展到1-999)。这反映了系统设计上的优化,以支持更多服务账户。
- 安全含义:UID范围的设计遵循最小权限原则:
- 超级用户(UID 0 0 0)应谨慎使用。
- 普通用户(UID ≥ 500 \geq 500 ≥500 或 ≥ 1000 \geq 1000 ≥1000)用于日常任务。
- 程序用户(UID 1 ≤ UID ≤ 499 1 \leq \text{UID} \leq 499 1≤UID≤499 或 1 ≤ UID ≤ 999 1 \leq \text{UID} \leq 999 1≤UID≤999)隔离服务进程,减少攻击面。
- 实际应用:在管理用户时,您可以使用命令如
useradd或查看/etc/passwd文件来验证UID分配。例如,创建新用户时系统会自动分配符合上述范围的UID。
1.1.2 组账号的分类
- 基本组是用户默认所属的组,通常与用户名相同。每个用户在创建时会自动拥有一个与用户名相同
的基本组。 - 在创建用户时,系统会为用户自动创建与其同名的基本组。
案例:
- 创建用户并查看基本组:
useradd john
id john
用户 john 的基本组就是 john。
附加组
- 附加组是用户除基本组之外可加入的其他组别。每个用户可同时加入多个附加组,从而获得对应组别的资源访问权限。
- 附加组的权限设置将统一应用于所有组内成员。
案例:
- 将用户加入附加组:
usermod -aG ftpusers john
这将用户 john 加入到 ftpusers 附加组。
简单总结:
用户和组的关系
用户 是员工 组 是职位
员工 可以兼职多个岗位
总有一个最重要的身份 主要组合附加组
主要组 必须要一个组 有且唯一
附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组
1.1.3 UID和GID
- UID:即每个用户的身份标示,类似于每个人的身份证号码.
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本) - GID 是每个用户组的唯一标识符。每个用户都属于至少一个组,该组的 GID 用来标识该组。用户
组用于管理一组具有相同权限的用户,文件和目录的访问权限通常由文件的 GID 来决定。
系统组:1-499(CentOS6), 1-999(CENTOS7)
普通组:500+(CentOS6), 1000+(CENTOS7)
1.2 用户账号文件
/etc/passwd 文件在 Linux 系统中保存了所有用户的基本信息,而用户的密码信息和一些安全设置
则保存在 /etc/shadow 文件中。密码的加密存储在 /etc/shadow 文件中, /etc/passwd 文件只存储
占位符(如 x 或 !! ),以确保密码的安全。
1.2.1 /etc/passwd 文件格式
/etc/passwd 文件记录每个用户的基本信息,每行一个用户,字段之间用冒号(:)分隔,格式如下
用户名:密码占位符:UID:GID:用户描述:宿主目录:登录Shell
示例解析
ftp:x:113:125:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin
| 字段 | 值 | 说明 |
|---|---|---|
| 用户名 | ftp | 系统 FTP 服务账户 |
| 密码指示符 | x | 密码在 shadow 文件 |
| UID | 113 | 系统级用户 ID |
| GID | 125 | 所属组 ID |
| GECOS | ftp daemon,,, | 描述信息(全名留空) |
| 家目录 | /srv/ftp | FTP 服务根目录 |
| 登录Shell | /usr/sbin/nologin | 禁止交互式登录 |
解释:
- x :密码占位符,表示密码信息保存在 /etc/shadow 中。
- 0 :UID,root 用户的 UID 是 0。 0 :GID,root 用户的基本组的 GID 也是 0。 root :用户描述,通常是该用户的全名。
- /root :宿主目录,root 用户的默认工作目录。
- /bin/bash :登录 Shell,root 用户登录后使用的默认 Shell。
示例:
root:x:0:0:root:/root:/bin/bash
-root :用户名。
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号)。
-G:指定用户的附加组名(或使用 GID 号)。
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s:指定用户的登录Shell。
总结:
密码字段: /etc/passwd 中的密码字段只包含占位符 x ,真实密码存储在 /etc/shadow 文件
中。
加密密码:使用 SHA-512 等算法加密密码,提升安全性。
1.3 添加用户账号useradd
添加用户账号
- -u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
- -d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
- -e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
- -g:指定用户的基本组名(或使用 GID 号)。
- -G:指定用户的附加组名(或使用 GID 号)。
- -M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
- -s:指定用户的登录Shell。
案例:
useradd zhangsan
id zhangsan
tail -1 /etc/passwd
ls /home

1.4 更改用户口令passwd
#调用管道符,给 zhangsan 用户设置密码 “123”,为了方便系统管理,passwd 命令提供了 --stdin
选项,用于批量给用户设置初始密码。
passwd username # 设置密码
passwd -l username # 锁定账户
passwd -S username # 查看账户状态
passwd -u username # 解锁账户
passwd -d username # 清空密码
1.5 修改用户账号的属性usermod
#调用管道符,给 zhangsan 用户设置密码 “123”,为了方便系统管理,passwd 命令提供了 --stdin
选项,用于批量给用户设置初始密码。
passwd 用户
echo "123" | passwd --stdin zhsngsan

- -d:清空指定用户的密码,仅使用用户名即可登录系统。
- -l:锁定用户账户。
- -S:查看用户账户的状态(是否被锁定)。
- -u:解锁用户账户。
passwd username # 设置密码
passwd -l username # 锁定账户
passwd -S username # 查看账户状态
passwd -u username # 解锁账户
passwd -d username # 清空密码
1.6 删除用户账号userdel
userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
userdel -r admin
id admin
ls -ld /home/admin

1.6 用户账号的初始配置文件
1.6.1 账号初始配置的作用
① 来源目录:
当使用 useradd 创建新用户时,系统会从 /etc/skel/ 复制默认配置文件到新用户的家目录。
② 常见文件:
- .bash_profile :登录时执行的命令。
- .bashrc :每次加载 bash 时执行(包括登录)。
- .bash_logout :用户退出登录时执行
③ 所有用户都可以使用
如果希望为所有用户添加登录后自动运行的命令程 序、自动设置变量等,可以直接修改/etc 目录下的类
似文件,如/etc/bashrc 文件、/etc/profile 文件。例如,执行以下操作可以为所有用户自动设置 myls
命令别名
vi /etc/bashrc
alias myls='/bin/ls -lhr'
source /etc/bashrc

1.6.2 用户账号的初始配置文件(详解)
- .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有
环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)
CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath. - .bashrc :例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确
认,使用ls命令列出文件列表时加上颜色显示)。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使
之生效。一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取
/.bash_profile文件,这样/.bashrc也就得到执行了,你的个性化设置也就生效了。
关于环境变量的读取顺序:
登录的数据流向 - 用户登录 ->> 加载~/.bash_profile --> bash_profile中配置了首先是使~/.bashrc生效
- .bash_logout
用途: 用户登出时执行的命令
~/ . bash_logout在当前用户登出时,打印出Logout 和当前的时间echo "Logout, date "
例子
二、组管理
2.1 组账号文件
与组账号相关的配置文件有两个:/etc/group 和 /etc/gshadow。其中:
1./etc/group 存储组账号的基本信息,包括组名、GID 和组成员列表
2./etc/gshadow 保存组账号的加密密码等安全信息(实际使用频率较低)
组内成员信息会显示在 group 文件的最后一个字段中(基本组对应的用户默认可能不显示),多个成员之间用英文逗号,分隔。
grep "^root" /etc/group #//检索root 组包括哪些用户
grep "root" /etc/group //检索哪些组包括root 用户

2.2 添加组账号groupadd
groupadd [-g GID] 组账号名
groupadd -g 1200 market
tail -1 /etc/group

2.3删除组账号groupdel
groupdel 组账号名
groupdel market
grep "market" /etc/group
三、查询账号信息
3.1 groups命令
查询用户所属的组
groups [用户名]
groups adm
3.2 id命令
查询用户身份标识
id [用户名]
3.3 finger命令
#查询用户账号的详细信息
finger [用户名]

3.4 w、who、users
查询已登录到主机的用户信息可以通过以下命令实现:
| 系统 | 命令 | 主要信息 |
|---|---|---|
| Linux | w | 用户+活动详情 |
| Linux | who | 基础登录信息 |
| Windows | query user | 会话状态与空闲时间 |
3.5 扩充
以下是关于TTY终端类型与切换的说明:
| 终端类型 | 说明 | 切换快捷键 |
|---|---|---|
| tty1 | 图形界面 | Ctrl+Alt+F1 |
| tty2-tty6 | 文字界面(命令行模式) | Ctrl+Alt+F2-F6 |
补充说明:
-
图形界面 (tty1):
通常为默认登录的桌面环境,支持图形化操作界面。 -
文字界面 (tty2-tty6):
提供纯命令行操作环境,适用于系统调试、服务管理或图形界面崩溃时的应急操作。
四、su命令切换用户
4.1 用途及用法
- 用途:Substitute User,切换用户
- 格式 :su - 目标用户
4.2 密码验证
root-----> 任意用户,不验证密码
- 普通用户-----> 其他用户,验证目标用户的密码
五、文件权限
5.1 查看目录和文件的属性
5.1.1 访问权限
- 读取 r:允许查看文件内容、显示目录列表
- 写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行 x:允许运行程序、切换目录
5.1.2 归属(所有权)
属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
5.1.3 查看权限
使用 ls -l 命令可以查看文件或目录的详细权限和归属信息。例如:
命令格式:
ls -l [文件或目录名]
输出示例:
-rw-r--r-- 1 user group 1024 Jan 1 10:00 example.txt
drwxr-xr-x 2 user group 4096 Jan 1 10:00 directory
各部分含义详解:
-
权限字段 (10个字符):
- 第1个字符:文件类型标识符
-: 普通文件d: 目录l: 符号链接 (软链接)c: 字符设备文件b: 块设备文件p: 命名管道 (FIFO)s: 套接字 (socket)
- 第2-4个字符:文件所有者 (属主) 的权限
r: 读权限w: 写权限x: 执行权限-: 无对应权限
- 第5-7个字符:文件所属用户组 (属组) 的权限
- 同上
r,w,x,-
- 同上
- 第8-10个字符:其他用户 (既不是属主也不在属组) 的权限
- 同上
r,w,x,-
- 同上
示例解读:
-rw-r--r--:-:普通文件rw-:属主可读、可写、不可执行r--:属组可读、不可写、不可执行r--:其他用户可读、不可写、不可执行
drwxr-xr-x:d:目录rwx:属主可读、可写、可执行 (对于目录,x代表可进入目录)r-x:属组可读、不可写、可执行 (可进入目录)r-x:其他用户可读、不可写、可执行 (可进入目录)
- 第1个字符:文件类型标识符
-
硬链接数:
- 对于文件:表示指向该文件数据块的硬链接数量。
- 对于目录:表示该目录下包含的子目录总数 (包括
.和..)。
-
文件所有者 (属主):
- 显示拥有该文件或目录的用户账户名。
-
文件所属用户组 (属组):
- 显示拥有该文件或目录的组账户名。
-
文件大小:
- 以字节为单位显示文件大小。
- 对于目录:显示的是目录本身所占的元数据大小 (通常是 4096 字节或 4K 的倍数),而不是目录内容的总大小。要查看目录内容总大小,需使用
du命令。
-
最后修改时间:
- 显示文件或目录内容最后一次被修改的日期和时间。
-
文件或目录名:
- 文件或目录的名称。
- 如果是符号链接 (
l),会显示链接指向的目标路径,格式如link_name -> target_path。
5.2 设置文件和目录的权限chmod
好的,我们来详细说明 chmod 命令的用法,它用于更改 Linux/Unix 系统中文件和目录的访问权限。
核心概念:
文件或目录的权限分为三类:
- 拥有者 (
u): 文件或目录的创建者。 - 所属组 (
g): 文件或目录所属的用户组。 - 其他用户 (
o): 系统上的其他所有用户。 - 所有用户 (
a): 包括以上三者。
权限类型有三种:
- 读取 (
r): 查看文件内容或列出目录内容。 - 写入 (
w): 修改文件内容或在目录中创建/删除文件。 - 执行 (
x): 运行文件(如脚本)或进入目录。
chmod 语法格式:
chmod 主要有两种方式来设置权限:符号表示法和八进制(数字)表示法。
- 符号表示法 (更直观)
格式:
chmod [用户类别][操作符][权限] 文件或目录名
- 用户类别:
u: 拥有者g: 所属组o: 其他用户a: 所有用户 (默认值,如果省略类别)
- 操作符:
+: 添加权限-: 移除权限=: 精确设置权限 (覆盖原有权限)
- 权限:
r: 读w: 写x: 执行- 组合:如
rw,rx等
示例:
- 给拥有者添加执行权限:
chmod u+x filename - 给所属组和其他用户添加读权限:
chmod go+r filename(或chmod g+r,o+r filename) - 移除其他用户的所有权限:
chmod o= filename - 给所有用户设置读写权限(无执行):
chmod a=rw filename - 给目录设置权限,使其拥有者可以读写执行,所属组可以读和执行,其他用户只能执行:
chmod u=rwx,g=rx,o=x directoryname
2. 八进制(数字)表示法 (更简洁)
每个权限类型(r, w, x)对应一个数字:
r= 4w= 2x= 1- 无权限 = 0
权限值通过将所需权限的数字相加得到:
rw-= 4 + 2 + 0 = 6r-x= 4 + 0 + 1 = 5rwx= 4 + 2 + 1 = 7
格式:
chmod [拥有者权限值][所属组权限值][其他用户权限值] 文件或目录名
示例:
- 设置权限
rw-r--r--(拥有者读写,所属组读,其他用户读):chmod 644 filename- 拥有者:
rw-= 4+2+0 = 6 - 所属组:
r--= 4+0+0 = 4 - 其他用户:
r--= 4+0+0 = 4
- 拥有者:
- 设置权限
rwxr-xr-x(拥有者读写执行,所属组读执行,其他用户读执行):chmod 755 filename- 拥有者:
rwx= 7 - 所属组:
r-x= 5 - 其他用户:
r-x= 5
- 拥有者:
- 设置权限
rwx------(仅拥有者有读写执行权限):chmod 700 filename - 设置权限
rwxrwxrwx(所有用户都有读写执行权限):chmod 777 filename(通常不推荐,过于开放)
5.3 设置文件和目录的归属chown
chown命令
- chown 属主 文件或目录
- chown :属组 文件或目录
- chown 属主:属组 文件或目录
常用选项 - -R:递归修改指定目录下所有文件、子目录的归属
总结
以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而Linux提供了大量能使我们快速便捷地处理数据的函数和方法。
更多推荐


所有评论(0)