要使脚本在 Linux 中执行,需要启用
可执行模式位。要设置可执行模式位,使用chmod命令:
chmod u+x <file>
就可以直接执行了
./file
在 Linux 中使文件可执行
要检查文件是否有可执行权限,可以用使用
ls -l查看。
> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
在第一列中,
-rw-r--r--代表所有者可以读写,所属组中的用户只能读取,其他人只能读取文件。
注意缺少
x权限符号。这意味着它rumenz.sh是不可执行的。

方法一:让文件所有人都可以执行
第一种方法,也是最直接的方法:
> chmod +x <file>
x标志是设置或取消设置文件的可执行权限。使用+x意味着我们要将其设置为可执行文件。
这将使文件对所有者、所属组和其他所有人都可执行。系统所有用户都可以执行该文件。
> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod +x rumenz.sh
> ls -l rumenz.sh
-rwxr-xr-x 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
方法 2:使文件仅对特定用户或组可执行
如果你不想让每个人都能够执行该脚本,则应在添加/删除文件权限之前指定权限类别。
权限类别:
-
u:所有者/用户的权限 -
g: 组权限 -
o: 其他人的权限 -
a: 所有人的权限
指定一个类别:
chmod <class>+x <file>
假如规定一个文件只有该文件的所有者能执行。
chmod u+x <file>
举个例子
> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod u+x rumenz.sh
> ls -l rumenz.sh
-rwxr--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
同样如果规定某个组的用户才能执行该文件。
chmod g+x <file>
举个例子
> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod g+x rumenz.sh
> ls -l lhb.txt
-rw-r-xr-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
当你指定
a类时,就代表所有者,所属组,其他人都可以执行。
> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod +x rumenz.sh
> ls -l rumenz.sh
-rwxr-xr-x 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod 644 rumenz.sh #reset permissions
> chmod a+x rumenz.sh
> ls -l rumenz.sh
-rwxr-xr-x 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
方法 3:使用八进制数
数字权限有一个基本的规则
r=4,w=2,x=1。最大的权限是777也就是rwxrwxrwx。

可以更精细地控制标志的设置方式。下面是在命令中使用八进制值的语法
chmod:
> chmod <octal> <file>
举个例子,给
rumenz.sh设置754数字权限。

> ls -l rumenz.sh
-rw-r--r-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
> chmod 754 rumenz.sh
> ls -l rumenz.sh
-rwxr-xr-- 1 rumenz rumenz 0 Aug 10 20:49 rumenz.sh
如你所见,只有所有者和组才能执行该文件。

本文详细介绍了如何在Linux中通过chmod命令设置文件的执行权限。内容包括为所有者、组成员和其他用户分别设置权限,以及使用八进制数值精确控制权限。通过这些方法,你可以确保脚本或程序只有授权的用户才能执行。
1万+

被折叠的 条评论
为什么被折叠?



