在 Linux 系统的学习和使用过程中,Shell 命令与权限管理是两大核心支柱。Shell 作为用户与内核之间的 “桥梁”,让我们能够通过简洁的命令操控系统;而权限机制则是 Linux 安全稳定运行的基石,确保资源访问的有序与可控。本文将结合实战命令示例,从原理到实践,全面拆解 Shell 命令的运行逻辑与 Linux 权限的核心概念,帮助大家彻底掌握这两大知识点。下面就让我们正式开始吧!
Linux 严格意义上的操作系统核心是 “内核(kernel)”,它负责管理硬件资源、调度进程、控制文件系统等底层操作。但普通用户无法直接与内核交互 —— 内核如同精密的机器核心,需要一个 “外壳” 程序来接收用户指令、翻译成内核能理解的语言,再将内核的执行结果反馈给用户,这个 “外壳” 就是 Shell。
举个通俗的例子:如果内核是村里漂亮的姑娘 “小花”,你(用户)是想表白的程序员,那 Shell 就是中间的 “媒婆”。你不好意思直接跟小花沟通,所有想法都通过媒婆转达,媒婆再把小花的回应告诉你。我们日常使用的 bash(Bourne Again Shell),就是最常用的 “媒婆”。
对比 Windows 的 GUI 图形界面:我们操作 Windows 时,双击盘符进入 D 盘、点击图标打开软件,本质是通过图形接口间接操作 Windows 内核;而 Linux 的 Shell 则是通过命令行接口完成同样的交互,二者核心作用一致,只是交互方式不同。
Shell 作为命令行解释器,其核心工作流程可分为四个步骤:读取命令→解析命令→执行命令→返回结果,整个过程环环相扣,确保用户指令准确落地。
当我们在终端中输入一条命令(如ls -l)并按下回车时,Shell 会通过标准输入(stdin)读取这条命令。终端作为 Shell 的交互载体,将用户的键盘输入传递给 Shell 进程。
Shell 读取命令后,会进行一系列解析操作:
ls)与选项(如-l)、参数(如指定的目录路径);cd、pwd)还是外部命令(系统中独立的可执行文件,如ls、grep);PATH环境变量指定的路径查找可执行文件(可通过echo $PATH查看路径列表)。 示例:查看ls命令的位置
[whb@bite-alicloud ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls 通过which命令可以看到,ls是外部命令,其可执行文件位于/usr/bin/目录下,且系统为其设置了别名ls --color=auto,让输出结果带颜色区分文件类型。
命令解析完成后,Shell 会根据命令类型执行不同的处理逻辑:
cd命令,若创建子进程执行,切换目录的效果仅在子进程中有效,无法影响当前终端环境);fork()系统调用创建一个子进程,再通过exec()系统调用将子进程替换为命令对应的可执行程序,子进程执行完成后通过wait()系统调用将执行状态返回给父进程(Shell)。 这个过程可以通过ps命令直观观察:
[whb@bite-alicloud ~]$ ps -ef | grep bash
whb 1234 1230 0 10:00 pts/0 00:00:00 -bash
whb 1256 1234 0 10:05 pts/0 00:00:00 grep --color=auto bash 当我们执行ls命令时,Shell 会创建一个子进程执行ls,执行完成后子进程退出:
[whb@bite-alicloud ~]$ ls -l
total 4
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
[whb@bite-alicloud ~]$ ps -ef | grep ls
whb 1260 1234 0 10:06 pts/0 00:00:00 grep --color=auto ls 可以看到,ls命令执行完毕后,子进程已退出,仅保留grep的查询进程。
命令执行完成后,会通过退出状态码(0 表示成功,非 0 表示失败)告知 Shell,同时将执行结果通过标准输出(stdout)输出到终端,错误信息则通过标准错误(stderr)输出。
示例:查看命令退出状态码
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
[whb@bite-alicloud ~]$ echo $? # 查看上一条命令的退出状态码
0 # 0表示执行成功
[whb@bite-alicloud ~]$ ls -l nofile.txt
ls: cannot access 'nofile.txt': No such file or directory
[whb@bite-alicloud ~]$ echo $?
2 # 非0表示执行失败 Shell 提供了便捷的命令补全功能,通过Tab键可以快速补全命令、文件名或目录名,提高输入效率:
l后按Tab键,Shell 会列出所有以l开头的命令(如ls、less、ln等);ls dir/后按Tab键,会补全dir目录下的文件名。 此外,Shell 会记录用户输入的命令历史,通过history命令可查看,通过!命令序号或!命令前缀可快速重复执行历史命令:
[whb@bite-alicloud ~]$ history
1 ls -l
2 pwd
3 cd test/
4 touch newfile.txt
[whb@bite-alicloud ~]$ !2 # 执行第2条历史命令
pwd
/home/whb/test
[whb@bite-alicloud ~]$ !tou # 执行以tou开头的历史命令
touch newfile.txt Shell 的管道(|)与重定向(>、>>、<)功能是命令组合使用的核心,让多个命令协同工作,灵活处理输入输出。
管道(|):将前一个命令的标准输出作为后一个命令的标准输入;示例:查找/home目录下包含 “whb” 的文件
[whb@bite-alicloud ~]$ ls -l /home | grep "whb"
drwx------ 22 whb whb 4096 Jan 11 14:21 whb重定向输出(>覆盖,>>追加):将命令输出写入到文件当中;示例:将ls命令结果写入文件,追加新内容
[whb@bite-alicloud ~]$ ls -l > file_list.txt # 覆盖写入
[whb@bite-alicloud ~]$ echo "新增内容" >> file_list.txt # 追加写入
[whb@bite-alicloud ~]$ cat file_list.txt
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
新增内容重定向输入(<):将文件内容作为命令的标准输入;示例:通过cat命令读取文件内容(等价于cat file.txt)
[whb@bite-alicloud ~]$ cat < file.txt
你好比特就业课 为了简化复杂命令的输入,Shell 支持通过alias命令设置命令别名:示例:设置ll为ls -l的别名,hello为ls -a -l -n的别名
[whb@bite-alicloud ~]$ alias ll='ls -l'
[whb@bite-alicloud ~]$ alias hello='ls -a -l -n'
[whb@bite-alicloud ~]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
[whb@bite-alicloud ~]$ hello
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt 若需要永久生效,可将别名写入 Shell 配置文件(如~/.bashrc),修改后执行source ~/.bashrc使配置立即生效。
此外,Shell 脚本(.sh文件)可以将一系列命令组合起来,批量执行复杂任务。示例:创建一个批量创建文件的脚本
[whb@bite-alicloud ~]$ touch create_files.sh
[whb@bite-alicloud ~]$ vim create_files.sh
# 写入以下内容
#!/bin/bash
for i in 1 2 3 4 5
do
touch "test_$i.txt"
done
echo "5个文件创建完成"
[whb@bite-alicloud ~]$ chmod +x create_files.sh # 赋予执行权限
[whb@bite-alicloud ~]$ ./create_files.sh
5个文件创建完成
[whb@bite-alicloud ~]$ ls
create_files.sh test_1.txt test_2.txt test_3.txt test_4.txt test_5.txtLinux 是多用户、多任务操作系统,同一系统中可能有多个用户同时工作,共享文件、目录等资源。权限机制的核心目的是:
简单来说,权限机制就是给系统中的每个资源(文件 / 目录)设置 “访问规则”,规定哪些用户可以做什么操作。
要理解权限,首先要明确 Linux 中的 “访问主体”—— 用户与用户组。
Linux 系统中将用户分为三类,对应不同的访问权限:
#,拥有系统最高权限,可以执行任何操作(如修改系统配置、删除任意文件、创建新用户等);$,权限受限制,仅能操作自己拥有的资源或被授权的资源;使用su命令切换用户的指令示例如下
[whb@bite-alicloud ~]$ su root # 从普通用户切换到root用户,需输入root密码
Password:
[root@bite-alicloud whb]# whoami
root
[root@bite-alicloud whb]# su whb # 从root切换到普通用户whb,无需密码
[whb@bite-alicloud ~]$ whoami
whb用户组是多个用户的集合,用于简化权限管理。例如,一个项目团队的所有成员可以加入同一个用户组,将项目文件的组权限设置为允许该组用户读写,无需为每个用户单独授权。
相关命令示例:
groupadd test_groupuseradd -g test_group test_userusermod -g test_group test_usergroups test_user Linux 中每个文件 / 目录的权限都可以通过ls -l命令查看,权限信息由 10 个字符组成,格式如下:
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt 其中,前 10 个字符-rw-rw-r--就是权限标识,可拆解为四部分:
位置 | 含义 | 示例(-rw-rw-r--) |
|---|---|---|
第 1 位 | 文件类型 | -(普通文件) |
第 2-4 位 | 所有者(u)权限 | rw-(读、写权限,无执行权限) |
第 5-7 位 | 所属组(g)权限 | rw-(读、写权限,无执行权限) |
第 8-10 位 | 其他用户(o)权限 | r--(仅读权限,无写、执行权限) |
第 1 位的文件类型主要有以下几种:
-:普通文件(如文本文件、可执行文件);d:目录(文件夹);l:软链接(类似 Windows 的快捷方式);b:块设备文件(如硬盘、光驱);c:字符设备文件(如键盘、屏幕);p:管道文件;s:套接口文件。示例:查看不同类型文件的权限标识
[whb@bite-alicloud ~]$ ls -l
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir # d表示目录
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt # -表示普通文件
lrwxrwxrwx 1 whb whb 8 Jan 11 19:00 link.txt -> file.txt # l表示软链接 第 2-10 位的权限由r(读)、w(写)、x(执行)三个字符组合而成,-表示无该权限。不同权限对文件和目录的含义不同:
权限 | 对文件的作用 | 对目录的作用 |
|---|---|---|
r(读,4) | 可以读取文件内容(如cat、less命令) | 可以查看目录下的文件列表(如ls命令) |
w(写,2) | 可以修改文件内容(如vim编辑、echo追加) | 可以在目录中创建、删除、移动文件(如touch、rm、mv命令) |
x(执行,1) | 可以执行文件(如./script.sh、ls命令) | 可以进入目录(如cd命令) |
需要注意的是,目录的x权限是执行其他操作的基础 —— 即使有r权限,没有x权限也无法进入目录;而目录的w权限允许删除其中的文件,无论该文件的所有者是谁(后续为大家介绍粘滞位之后,会解决这个问题)。
除了字符表示法,权限还可以用 8 进制数值表示(方便批量设置),每个权限对应一个数值,三者相加即为最终权限值:
r = 4,w = 2,x = 1,- = 0;664、755)。常见权限数值与字符对应关系如下:
数值 | 字符表示 | 含义 |
|---|---|---|
777 | rwxrwxrwx | 所有用户都有读、写、执行权限 |
755 | rwxr-xr-x | 所有者有全部权限,组用户和其他用户有读、执行权限(常用目录权限) |
644 | rw-r--r-- | 所有者有读、写权限,组用户和其他用户有读权限(常用文件权限) |
600 | rw------- | 仅所有者有读、写权限 |
示例:通过数值快速理解权限
# 664 = 所有者(rw=4+2) + 所属组(rw=4+2) + 其他用户(r=4)
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
# 755 = 所有者(rwx=4+2+1) + 所属组(rx=4+1) + 其他用户(rx=4+1)
[whb@bite-alicloud ~]$ ls -ld dir
drwxr-xr-x 2 whb whb 4096 Jan 11 14:22 dir Linux 提供了chmod、chown、chgrp三个核心命令,分别用于修改文件 / 目录的权限、所有者、所属组。
chmod(change mode)是修改权限的核心命令,支持字符模式和数值模式两种用法。
chmod [选项] [用户标识+/-=权限字符] 文件名/目录名u(所有者)、g(所属组)、o(其他用户)、a(所有用户);+(添加权限)、-(取消权限)、=(设置权限,覆盖原有权限);-R(递归修改目录及子目录下所有文件的权限)。示例:字符模式修改权限
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
# 给其他用户添加写权限
[whb@bite-alicloud ~]$ chmod o+w file.txt
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-rw- 1 whb whb 0 Jan 11 14:22 file.txt
# 取消所属组的写权限
[whb@bite-alicloud ~]$ chmod g-w file.txt
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-r--rw- 1 whb whb 0 Jan 11 14:22 file.txt
# 给所有用户设置读、写权限(覆盖原有权限)
[whb@bite-alicloud ~]$ chmod a=rw file.txt
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-rw- 1 whb whb 0 Jan 11 14:22 file.txt
# 递归修改目录及子目录权限(给所有者添加执行权限)
[whb@bite-alicloud ~]$ chmod -R u+x dir/
[whb@bite-alicloud ~]$ ls -ld dir/
drwxr--rw- 2 whb whb 4096 Jan 11 14:22 dir/chmod [选项] 权限数值 文件名/目录名示例:数值模式修改权限
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-rw-rw- 1 whb whb 0 Jan 11 14:22 file.txt
# 设置权限为644(rw-r--r--)
[whb@bite-alicloud ~]$ chmod 644 file.txt
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-r--r-- 1 whb whb 0 Jan 11 14:22 file.txt
# 递归设置目录权限为755(rwxr-xr-x)
[whb@bite-alicloud ~]$ chmod -R 755 dir/
[whb@bite-alicloud ~]$ ls -ld dir/
drwxr-xr-x 2 whb whb 4096 Jan 11 14:22 dir/ chown(change owner)用于修改文件 / 目录的所有者,只有 root 用户或文件原所有者可以执行。
语法规则如下:
chown [选项] 新所有者[:新所属组] 文件名/目录名-R(递归修改目录及子目录的所有者);:分隔)。示例:修改文件所有者和所属组
# 先创建测试用户test_user
[root@bite-alicloud ~]$ useradd test_user
[whb@bite-alicloud ~]$ ls -l file.txt
-rw-r--r-- 1 whb whb 0 Jan 11 14:22 file.txt
# 修改所有者为test_user
[root@bite-alicloud ~]$ chown test_user file.txt
[root@bite-alicloud ~]$ ls -l file.txt
-rw-r--r-- 1 test_user whb 0 Jan 11 14:22 file.txt
# 同时修改所有者和所属组为test_user
[root@bite-alicloud ~]$ chown test_user:test_user file.txt
[root@bite-alicloud ~]$ ls -l file.txt
-rw-r--r-- 1 test_user test_user 0 Jan 11 14:22 file.txt
# 递归修改目录所有者
[root@bite-alicloud ~]$ chown -R test_user:test_user dir/
[root@bite-alicloud ~]$ ls -ld dir/
drwxr-xr-x 2 test_user test_user 4096 Jan 11 14:22 dir/ chgrp(change group)专门用于修改文件 / 目录的所属组,用法与chown类似。
语法规则如下:
chgrp [选项] 新所属组 文件名/目录名-R(递归修改)。示例:修改目录所属组
[root@bite-alicloud ~]$ ls -ld dir/
drwxr-xr-x 2 test_user test_user 4096 Jan 11 14:22 dir/
# 修改所属组为whb
[root@bite-alicloud ~]$ chgrp whb dir/
[root@bite-alicloud ~]$ ls -ld dir/
drwxr-xr-x 2 test_user whb 4096 Jan 11 14:22 dir/
# 递归修改子目录所属组
[root@bite-alicloud ~]$ chgrp -R whb dir/ 当我们创建新文件或目录时,其默认权限并非0666(文件)或0777(目录),而是由umask(文件掩码)决定。umask规定了创建文件时默认取消的权限,计算公式为:
0666 - umask(文件无默认执行权限,避免误执行脚本);0777 - umask(目录需要执行权限才能进入)。 umask的默认值:
0022(取消组用户和其他用户的写权限);0002(取消其他用户的写权限)。下面我为大家提供了一个查看并修改 umask的示例:
# 普通用户查看umask
[whb@bite-alicloud ~]$ umask
0002
# 创建新文件,默认权限=0666-0002=0664(rw-rw-r--)
[whb@bite-alicloud ~]$ touch test_umask.txt
[whb@bite-alicloud ~]$ ls -l test_umask.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 19:30 test_umask.txt
# 创建新目录,默认权限=0777-0002=0775(rwxrwxr-x)
[whb@bite-alicloud ~]$ mkdir dir_umask
[whb@bite-alicloud ~]$ ls -ld dir_umask/
drwxrwxr-x 2 whb whb 4096 Jan 11 19:31 dir_umask/
# 修改umask为0022
[whb@bite-alicloud ~]$ umask 0022
[whb@bite-alicloud ~]$ touch test_umask2.txt
[whb@bite-alicloud ~]$ ls -l test_umask2.txt
-rw-r--r-- 1 whb whb 0 Jan 11 19:32 test_umask2.txt # 0666-0022=0644
# 临时修改umask仅当前终端有效,永久修改需写入~/.bashrc或/etc/profile 默认情况下,若目录设置了777权限(所有用户可读写执行),任何用户都可以删除该目录下的文件,即使文件的所有者不是自己 —— 这会导致安全问题(比如张三创建的文件被李四误删)。
粘滞位(Sticky Bit)的出现就是为了解决这个问题:给目录设置粘滞位后,该目录下的文件只能被以下三类用户删除:
粘滞位的标识:目录权限的最后一位变为t(如drwxrwxrwt)。
设置并验证粘滞位的示例如下:
# 创建测试目录,设置777权限
[root@bite-alicloud ~]$ mkdir sticky_dir
[root@bite-alicloud ~]$ chmod 777 sticky_dir/
[root@bite-alicloud ~]$ ls -ld sticky_dir/
drwxrwxrwx 2 root root 4096 Jan 11 19:40 sticky_dir/
# 普通用户whb创建文件
[whb@bite-alicloud ~]$ touch sticky_dir/whb_file.txt
[whb@bite-alicloud ~]$ ls -l sticky_dir/
-rw-rw-r-- 1 whb whb 0 Jan 11 19:41 whb_file.txt
# 普通用户test_user删除whb的文件(未设置粘滞位,可删除)
[test_user@bite-alicloud ~]$ rm sticky_dir/whb_file.txt
rm: remove regular empty file 'sticky_dir/whb_file.txt'? y
[test_user@bite-alicloud ~]$ ls -l sticky_dir/
total 0
# 给目录设置粘滞位(chmod +t)
[root@bite-alicloud ~]$ chmod +t sticky_dir/
[root@bite-alicloud ~]$ ls -ld sticky_dir/
drwxrwxrwt 2 root root 4096 Jan 11 19:43 sticky_dir/
# whb重新创建文件
[whb@bite-alicloud ~]$ touch sticky_dir/whb_file2.txt
[whb@bite-alicloud ~]$ ls -l sticky_dir/
-rw-rw-r-- 1 whb whb 0 Jan 11 19:44 whb_file2.txt
# test_user尝试删除,提示无权限
[test_user@bite-alicloud ~]$ rm sticky_dir/whb_file2.txt
rm: remove regular empty file 'sticky_dir/whb_file2.txt'? y
rm: cannot remove 'sticky_dir/whb_file2.txt': Operation not permitted Linux 系统中/tmp目录默认就设置了粘滞位,作为所有用户的临时文件存放目录,确保用户只能删除自己的临时文件:
[root@bite-alicloud ~]$ ls -ld /tmp/
drwxrwxrwt. 12 root root 4096 Jan 11 10:00 /tmp/ 普通用户权限有限,若需要执行 root 用户的命令(如安装软件、修改系统配置),无需切换到 root,可通过sudo命令临时提升权限。
sudo的权限配置在/etc/sudoers文件中,需通过visudo命令编辑,从而避免因为语法错误而导致无法使用 sudo:
[root@bite-alicloud ~]$ visudo 我们可以在文件中添加如下配置,允许普通用户whb执行所有 root 命令:
whb ALL=(ALL) ALLALL:允许在所有主机上使用;(ALL):允许以所有用户身份执行;ALL:允许执行所有命令。 我们也可以限制仅允许执行特定命令(如useradd):
whb ALL=(ALL) /usr/sbin/useradd# 普通用户无法直接创建新用户
[whb@bite-alicloud ~]$ useradd new_user
useradd: Permission denied
# 通过sudo提升权限执行
[whb@bite-alicloud ~]$ sudo useradd new_user
[sudo] password for whb: # 输入whb自己的密码
[whb@bite-alicloud ~]$ id new_user
uid=1005(new_user) gid=1005(new_user) groups=1005(new_user) sudo会记录用户的操作日志(/var/log/secure),便于审计和排查问题。
需求:创建 5 个用户(user1-user5),均加入project用户组,用户家目录下创建work目录,仅用户本人可读写。
步骤:
project;work目录,设置权限700;命令实现:
# 1. 创建用户组
[root@bite-alicloud ~]$ groupadd project
# 2. 循环创建用户(批量创建可写脚本,此处简化为循环命令)
[root@bite-alicloud ~]$ for i in {1..5}; do useradd -g project user$i; echo "123456" | passwd --stdin user$i; done
Changing password for user user1.
passwd: all authentication tokens updated successfully.
Changing password for user user2.
passwd: all authentication tokens updated successfully.
...
# 3. 为每个用户创建work目录并设置权限
[root@bite-alicloud ~]$ for i in {1..5}; do mkdir /home/user$i/work; chown user$i:project /home/user$i/work; chmod 700 /home/user$i/work; done
# 4. 验证
[root@bite-alicloud ~]$ ls -ld /home/user1/work/
drwx------ 2 user1 project 4096 Jan 11 20:00 /home/user1/work/
# 切换到user2,尝试访问user1的work目录(无权限)
[user2@bite-alicloud ~]$ cd /home/user1/work/
-bash: cd: /home/user1/work/: Permission denied 需求:编写脚本,批量修改/data目录下所有.txt文件的权限为644,所有目录的权限为755,并记录修改日志。
脚本内容(modify_permissions.sh):
#!/bin/bash
# 批量修改文件和目录权限脚本
LOG_FILE="/var/log/modify_permissions.log"
TARGET_DIR="/data"
# 检查目标目录是否存在
if [ ! -d "$TARGET_DIR" ]; then
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 错误:目标目录$TARGET_DIR不存在" >> $LOG_FILE
exit 1
fi
# 修改所有目录权限为755
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 开始修改目录权限为755" >> $LOG_FILE
find $TARGET_DIR -type d -exec chmod 755 {} \;
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 目录权限修改完成" >> $LOG_FILE
# 修改所有.txt文件权限为644
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 开始修改.txt文件权限为644" >> $LOG_FILE
find $TARGET_DIR -type f -name "*.txt" -exec chmod 644 {} \;
echo "[$(date +'%Y-%m-%d %H:%M:%S')] .txt文件权限修改完成" >> $LOG_FILE
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 所有权限修改操作执行完毕" >> $LOG_FILE执行脚本结果如下:
[root@bite-alicloud ~]$ chmod +x modify_permissions.sh
[root@bite-alicloud ~]$ ./modify_permissions.sh
[root@bite-alicloud ~]$ cat /var/log/modify_permissions.log
[2024-01-11 20:05:30] 开始修改目录权限为755
[2024-01-11 20:05:30] 目录权限修改完成
[2024-01-11 20:05:30] 开始修改.txt文件权限为644
[2024-01-11 20:05:30] .txt文件权限修改完成
[2024-01-11 20:05:30] 所有权限修改操作执行完毕本文从原理到实践,为大家详细讲解了 Linux Shell 命令的运行机制与权限管理体系。掌握 Shell 命令与权限管理,是成为 Linux 高手的必经之路。希望本文的内容能帮助大家夯实基础,在实际工作中灵活运用,解决各类系统操作与安全问题。感谢大家的支持!