【Linux开发学习】第2天:用户权限管理 + 查找搜索命令

核心目标:掌握用户 / 组基础管理、文件权限控制(rwx + 数字权限)、find/grep 高效搜索技巧,能独立解决 “权限不够”“找不到文件 / 内容” 的核心问题,延续 “实操落地 + 场景化应用” 原则。

一、模块 1:用户与组管理(Linux 多用户核心特性)

Linux 是多用户系统,工作中常需创建用户、分配组权限,以下命令是基础,所有操作需加 sudo(管理员权限)执行

1. 核心概念铺垫

  • 用户:每个操作 Linux 的账号(如你初始化时创建的账号,属于普通用户;root 是超级管理员)。
  • 组:多个用户的集合,方便批量分配权限(如把开发人员加入 “dev” 组,统一授予项目目录权限)。

2. 高频命令 + 实操

(1)useradd:创建新用户
  • 功能:新增普通用户,默认会创建同名的用户组。
  • 实操:输入 sudo useradd linux_user(创建名为 linux_user 的用户),用 id linux_user 验证(显示用户 ID、组 ID 即成功)。
(2)passwd:设置用户密码
  • 功能:给用户分配密码(新用户必须设密码才能登录)。
  • 实操:输入 sudo passwd linux_user,按提示输入密码(两次一致,输入时不显示),提示 “密码更新成功” 即完成。
(3)usermod:修改用户属性(常用 “添加到组”)
  • 功能:修改用户的所属组、用户名等,重点掌握 “添加附加组”。
  • 实操:输入 sudo usermod -aG sudo linux_user(-aG 表示 “添加到附加组”,将 linux_user 加入 sudo 组,获得管理员权限),用 groups linux_user 验证(显示包含 sudo 即成功)。
(4)userdel:删除用户
  • 功能:删除用户账号,可选是否删除用户主目录(避免残留文件)。
  • 实操:输入 sudo userdel -r linux_user(-r 参数:删除用户的同时,删除其主目录 /home/linux_user),用 id linux_user 验证(提示 “无此用户” 即成功)。
(5)groupadd/groupdel:组管理
  • 功能:创建 / 删除用户组,用于批量权限分配。
  • 实操:
    • 创建组:sudo groupadd dev_group(创建名为 dev_group 的组),用 cat /etc/group | grep dev_group 验证。
    • 删除组:sudo groupdel dev_group,用同样命令验证组已消失。

二、模块 2:文件权限管理(重中之重!避免 “权限不够” 报错)

Linux 中 “权限决定能否操作文件 / 目录”,必须理解 rwx 含义和数字权限,工作中配置服务、部署项目都要用到。

1. 权限的核心表示(先看懂 “权限字符串”)

用 ls -l 查看文件时,最前面的字符串就是权限(如 -rwxr-xr--),拆解如下:

  • 第 1 位:文件类型(- 是普通文件,d 是目录)。
  • 第 2-4 位:所有者权限(u,User),如 rwx 表示所有者可读、可写、可执行。
  • 第 5-7 位:所属组权限(g,Group),如 r-x 表示组内用户可读、可执行,不可写。
  • 第 8-10 位:其他用户权限(o,Other),如 r-- 表示其他用户仅可读。

2. 权限的两种表示方式(必须掌握)

权限类型字母表示数字值含义(文件 / 目录)
读权限r4文件:查看内容;目录:列出内容(ls)
写权限w2文件:修改内容;目录:创建 / 删除文件
执行权限x1文件:运行(如脚本、程序);目录:进入(cd)
  • 数字权限:3 个数字分别对应 “所有者 + 所属组 + 其他用户”,由上述数字值相加得到。
    • 示例 1:rwxr-xr-- → 所有者 7(4+2+1)、组 5(4+1)、其他 4 → 总权限 754
    • 示例 2:目录默认权限 rwxr-xr-x → 数字 755;文件默认权限 rw-r--r-- → 数字 644

3. 权限操作命令(chmod/chown/chgrp)

(1)chmod:修改文件 / 目录权限(最常用)
  • 功能:用 “字母” 或 “数字” 两种方式修改权限,新手推荐数字方式(更简洁)。
  • 实操:
    • 数字方式(推荐):进入 ~/study/linux 目录,创建文件 test.sh,输入 chmod 755 test.sh(设置所有者可读写执行,组和其他用户可读写),用 ls -l 验证权限字符串变为 -rwxr-xr-x
    • 字母方式:输入 chmod u-w test.sh(u = 所有者,-w = 取消写权限),用 ls -l 验证,所有者权限变为 r-x
(2)chown:修改文件 / 目录的所有者
  • 功能:变更文件的归属用户,比如把项目目录交给某个用户管理。
  • 实操:输入 sudo chown linux_user:dev_group test.sh(将 test.sh 的所有者改为 linux_user,所属组改为 dev_group),用 ls -l 验证(权限字符串后显示 “linux_user dev_group” 即成功)。
(3)chgrp:修改文件 / 目录的所属组
  • 功能:单独变更所属组(可替代 chown 的组修改功能)。
  • 实操:输入 sudo chgrp sudo test.sh(将 test.sh 的所属组改为 sudo),用 ls -l 验证。

三、模块 3:查找与搜索命令(工作中高频刚需)

解决 “找不到文件”“不知道内容在哪” 的问题,find 找文件、grep 找内容,两者搭配使用效率极高。

1. find:按条件查找文件 / 目录

  • 功能:从指定目录开始,按 “文件名、大小、修改时间” 等条件搜索,支持递归查找。
  • 核心用法 + 实操:
    • 按文件名查找(最常用):输入 find /etc -name "*.conf"(在 /etc 目录下,查找所有后缀为.conf 的配置文件),会列出所有匹配的文件路径。
    • 按目录查找:输入 find ~/study -type d -name "linux"(在~/study 目录下,仅查找名为 linux 的目录,-type d 表示 “目录”)。
    • 按大小查找:输入 find /var/log -size +10M(在 /var/log 目录下,查找大于 10M 的文件,+ 表示 “大于”,- 表示 “小于”)。
    • 按修改时间查找:输入 find ~ -mtime -7(在主目录下,查找近 7 天内修改过的文件,-mtime 表示 “修改时间”)。

2. grep:按内容搜索文件(文本搜索神器)

  • 功能:在文件或命令输出中,搜索包含指定关键词的内容,支持递归搜索。
  • 核心用法 + 实操:
    • 搜索单个文件内容:输入 grep "root" /etc/passwd(在 passwd 文件中,搜索包含 “root” 的行),会高亮显示关键词。
    • 递归搜索目录下所有文件:输入 grep -r "Listen 80" /etc/(在 /etc 目录下,递归搜索所有文件中包含 “Listen 80” 的内容,常用于找配置项)。
    • 忽略大小写:输入 grep -i "linux" info.txt(-i 参数忽略大小写,同时匹配 “Linux”“LINUX” 等)。
    • 显示行号:输入 grep -n "root" /etc/passwd(-n 参数显示匹配内容的行号,方便定位)。

3. 组合用法(工作常用)

  • 场景:查找 /etc 目录下所有.conf 文件中,包含 “timeout” 的内容。
  • 实操:输入 find /etc -name "*.conf" | xargs grep "timeout"(用管道符 | 连接 find 和 grep,先找文件再搜内容)。

四、第三天小练习:串联实操(必完成!)

按步骤执行,巩固用户权限、查找搜索的核心知识点:

  1. 用 sudo useradd test_dev 创建用户,sudo passwd test_dev 设置密码。
  2. 用 sudo groupadd project_group 创建组,sudo usermod -aG project_group test_dev 将用户加入组。
  3. 进入 ~/study 目录,创建 project 目录:mkdir project,修改其权限为 775(所有者和组可读写执行):sudo chmod 775 project
  4. 修改 project 目录的所有者和组:sudo chown :project_group project,用 ls -l 验证权限和组信息。
  5. 在 project 目录下创建 config.conf 文件,写入内容:echo "timeout=30" > config.conf
  6. 用 find 查找主目录下所有.conf 文件:find ~ -name "*.conf"
  7. 用 grep 递归搜索 project 目录下包含 “timeout” 的内容:grep -r "timeout" ~/study/project/
  8. 最后删除测试用户和组:sudo userdel -r test_devsudo groupdel project_group

五、新手常见问题答疑

  1. 执行命令提示 “Permission denied(权限不够)”?要么是操作系统目录 / 其他用户的文件,要么是文件没有执行 / 写权限。解决方案:加 sudo(管理员权限),或用 chmod 修改文件权限(如 chmod +x 文件名 增加执行权限)。

  2. find 搜索结果太多,刷屏了怎么办?按 Ctrl+C 停止,可加 -maxdepth N 限制搜索深度(如 find /etc -maxdepth 2 -name "*.conf" 只搜两级目录),或用 find ... | head -10 只显示前 10 条结果。

  3. grep 搜不到内容,但确定文件里有?可能是大小写问题(加 -i 参数)、漏了递归(目录搜索加 -r),或关键词有特殊字符(如 . 需加转义符 \.)。

今天的内容是 Linux 基础的 “进阶核心”,权限管理和查找命令在工作中几乎每天都会用到,重点是 “理解场景 + 动手实操”—— 比如为什么目录需要 x 权限(才能 cd 进入)、为什么配置文件常用 644 权限(仅所有者可修改)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值