Linux权限
root
root用户 权限最大 普通用户的权限一般在其home目录里面是不受限的 一旦出了home,其他地方基本只能查看和执行
su命令
switch user,账号切换 su - username -代表的意思是切换用户后添加环境变量 切换用户后也可以通过exit命令来回退回上个用户,或者ctrl + d root切换到其他用户不需要密码
sudo
暂时让当前用户以root权限执行 sudo command
用户与用户组
创建与删除用户组
sudo groupadd groupname
sudo groupdel groupname
用户相关命令
useradd -g <组名或GID> -d <目录路径> <用户名>//用于创建用户并指定用户组(`-g`)和主目录(`-d`)的命令
userdel [-r] username //加上r删除时删除用户的Home目录
id [username]
usermod -aG usergroup username
使用getnet可以查看系统有哪些用户 getent 命令用来查看系统的数据库中的相关记录。即使这些数据库不是在本地,比如 ldap 或者 nis 中的数据库,也可以使用 getent passwd查看。
Nick:x:1001:1001::/home/Nick:/bin/sh
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
chmod
chmod [选项] <权限模式> <文件或目录>
选项
-
-R:递归修改目录及其子内容的权限。 -
-v:显示详细操作信息。 -
--reference=file:参照某个文件的权限设置目标文件。 例如
chmod -R u=rwx,g=rx,o=x Test
执行后
drwxr-xrwx 2 loot loot 4096 May 26 22:17 Test
给文件夹Test修改用户权限 修改用户权限的格式有很多种
符号模式(字符模式)
通过 u/g/o/a + +/-/= + r/w/x 组合修改权限。
- 示例:
chmod u+x file.txt # 为用户添加执行权限
chmod g-w,o+r file.txt # 移除组的写权限,为其他用户添加读权限
chmod a=rwx file.txt # 所有用户拥有全部权限(等效于777)
chmod go= file.txt # 移除组和其他用户的所有权限```
数字模式(八进制模式)
用3位八进制数表示权限,每位对应 r(4) + w(2) + x(1) 的和。
- 常用权限组合:
| 数字 | 权限 | 说明 |
|---|---|---|
| 755 | rwxr-xr-x | 用户完全控制,其他用户读和执行 |
| 644 | rw-r–r– | 用户可读写,其他用户只读 |
| 600 | rw——- | 仅用户可读写 |
| 777 | rwxrwxrwx | 所有用户完全控制(慎用) |
- 示例:
chmod 755 script.sh # 用户可读/写/执行,组和其他用户可读/执行
chmod 644 config.conf # 用户可读写,其他用户只读`
4. 特殊权限位
- SetUID(4):以文件所有者身份执行(如
chmod 4755 file)。 - SetGID(2):以文件所属组身份执行或继承目录组权限(如
chmod 2770 dir)。 - 粘滞位(1):目录中文件仅所有者可删除(如
chmod 1777 /tmp)。
示例:
chmod 4755 /usr/bin/sudo # 启用SetUID
chmod 1777 /shared # 启用粘滞位
chown
chown(Change Owner)是 Linux/Unix 中用于修改文件或目录的所有者(Owner)和所属组(Group)的命令。通过该命令,可以精确控制文件资源的归属,是权限管理的重要工具。 简单来说就是改变文件或者文件夹的所属组 只有root可以执行
1. 命令语法
chown [选项] <用户>:<用户组> <文件或目录> # 或 chown [选项] <新所有者>.<新所属组> <文件或目录>
- 主要功能:
- 修改文件/目录的所有者(Owner)。
- 修改文件/目录的所属组(Group)。
- 可同时修改所有者和组,或仅修改其中一个。
常用选项
| 选项 | 说明 |
|---|---|
-R | 递归修改目录及其子内容的所有权(慎用,避免误操作)。 |
-v | 显示详细操作信息(Verbose)。 |
-c | 仅在发生实际修改时显示信息。 |
--from=<原所有者>:<原所属组> | 仅当文件当前所有者和组匹配指定值时才修改(避免误改)。 |
-h | 修改符号链接本身的所有权(默认修改符号链接指向的文件)。 |
3. 使用示例
基本操作
-
修改文件所有者:
chown user1 file.txt # 将 file.txt 的所有者改为 user1 -
修改文件所属组:
chown :developers file.txt # 将 file.txt 的所属组改为 developers -
同时修改所有者和组:
chown user1:developers file.txt # 或 chown user1.developers file.txt
递归修改目录
chown -R user1:developers /data/project # 递归修改目录及子内容
仅当匹配原所有者时修改
chown --from=old_user:old_group new_user:new_group file.txt
修改符号链接所有权
chown -h user1 symlink # 修改符号链接本身的所有权
4. 权限要求
- root 用户:可修改任意文件的所有者和组。
- 普通用户:仅能修改自己拥有的文件的所有者(需目标用户存在),且只能将组修改为自己所属的组。
Enjoy Reading This Article?
Here are some more articles you might like to read next:
- Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra
- Displaying External Posts on Your al-folio Blog
- Graph RAG with Milvus —— 纯向量库造图的多跳推理
- Hierarchical Indices 层级索引 —— 先粗后细的两级检索
- HyDE 与 HyPE —— 假设检索技术的两个方向
- 二叉树刷题总结
- RAG 技术体系化分类——从 Pipeline 阶段到失败模式
- MemoRAG 记忆增强型 RAG 总结
- Microsoft GraphRAG 基于知识图谱的 RAG 总结
- Multimodal RAG with Captioning 图像描述型多模态 RAG 总结