Loading... 以下为符合要求的Linux常用命令与文件权限详解,结合最新技术实践整理: --- ### 一、核心命令分类速查表 | **类别** | **命令** | **作用** | **高频参数** | | ------------------ | -------------- | ------------------------- | ------------------------------ | | **文件操作** | `ls` | 列出目录内容 | `-l`(详情)`-a`(隐藏文件) | | | `cp` | 复制文件/目录 | `-r`(递归)`-v`(显示进度) | | | `mv` | 移动/重命名文件 | `-i`(覆盖确认) | | **文本处理** | `grep` | 文本搜索 | `-i`(忽略大小写)`-n`(行号) | | | `cat` | 查看/合并文件 | `-n`(显示行号) | | | `sed` | 流编辑器(替换/删除文本) | `s/old/new/g`(全局替换) | | **系统监控** | `top` | 实时进程监控(动态) | `-p PID`(指定进程) | | | `htop` | 增强版进程监控(需安装) | 交互式操作 | | | `df` | 磁盘空间检查 | `-h`(人性化单位) | --- ### 二、文件权限深度解析 #### 1. 权限位结构(以 `-rwxr-xr--` 为例) ``` - r w x r - x r - - → 权限字符串 类型 属主权限 属组权限 其他用户权限 ``` * **首字符**:文件类型 (`-`普通文件, `d`目录, `l`软链接) * **三组权限**:每组的 `rwx` 分别对应: * `r` (read): 读取权限(文件)/ 列出内容(目录)📁 * `w` (write): 修改权限(文件)/ 创建/删除文件(目录)✏️ * `x` (execute): 执行权限(文件)/ 进入目录(目录)🚪 #### 2. 数字表示法(八进制) | **权限** | **二进制** | **十进制** | **说明** | | -------------- | ---------------- | ---------------- | -------------- | | r-- | 100 | 4 | 只读 | | -w- | 010 | 2 | 只写 | | --x | 001 | 1 | 仅执行 | | rwx | 111 | 7 | 读+写+执行 | **示例**:`chmod 755 file` → 属主:`7`(rwx),属组:`5`(r-x),其他:`5`(r-x) → `-rwxr-xr-x` --- ### 三、权限管理命令详解 #### 1. `chmod` - 修改权限 ```bash # 添加执行权限给所有用户 chmod a+x script.sh # a:all, +x:添加执行权限 # 递归设置目录权限(属主完全控制,其他只读) chmod -R u=rwx,go=r mydir/ # u:user, g:group, o:others ``` #### 2. `chown` - 修改属主/属组 ```bash # 将文件属主改为user1,属组改为developers sudo chown user1:developers app.log # 格式:用户:组 # 递归修改目录所有权 sudo chown -R www-data:www-data /var/www/ ``` #### 3. `umask` - 默认权限控制 ```bash umask 0022 # 默认设置(新文件权限=666-022=644,目录=777-022=755) ``` --- ### 四、特殊权限位(高级) | **标志** | **位置** | **命令** | **作用** | | -------------- | -------------- | -------------- | ------------------------------------- | | SUID | 属主x位 | `chmod u+s` | 执行时继承属主权限(如 `passwd`)🔑 | | SGID | 属组x位 | `chmod g+s` | 目录中新文件继承属组 | | Sticky | 其他x位 | `chmod o+t` | 仅文件所有者可删除(如 `/tmp`)📌 | **示例**: ```bash chmod 4755 /usr/bin/special # SUID(4xxx) chmod 2770 /shared_dir/ # SGID(2xxx) ``` --- ### 五、实战场景 #### 场景1:部署Web服务 ```bash # 1. 创建网站目录并设置权限 sudo mkdir -p /var/www/mysite sudo chown -R www-data:dev-team /var/www/mysite # 属主为Web服务,属组为开发团队 sudo chmod -R 2770 /var/www/mysite # SGID确保新建文件继承组权限 # 2. 验证权限 ls -ld /var/www/mysite # 输出 drwxrws--- 符合预期 ``` #### 场景2:保护敏感配置 ```bash chmod 600 ~/.ssh/id_rsa # 仅属主可读写(关键文件必须锁死!)🔒 ``` --- ### 六、原理图:权限校验流程 ```mermaid graph LR A[用户尝试访问文件] --> B{是否为文件属主?} B -->|是| C[应用属主权限] B -->|否| D{是否在属组中?} D -->|是| E[应用属组权限] D -->|否| F[应用其他用户权限] ``` > 💡 **关键原则**:权限检查按 **属主 → 属组 → 其他用户** 顺序匹配,首次匹配成功即停止。 --- ### 附:安全最佳实践 1. **最小权限原则**:永远不给超过需求的权限 2. 敏感文件设置 `600` 或 `400` 权限 3. 目录必须设 `x` 权限才能访问内部文件 4. 脚本慎用 `SUID/SGID`,避免提权漏洞 掌握这些核心操作可覆盖90%日常运维场景,建议在虚拟机中实操验证权限变化效果。 最后修改:2025 年 07 月 20 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏