即使使用 sudo,也无法以 +x 权限执行脚本文件

问题描述 投票:0回答:2

我无法从已安装的分区运行脚本。我创建了一个基本的“Hello World”脚本,可以从我的主目录正常执行,但是当我将其移动到已安装的分区时,我无法执行该文件。

$ ls -l
-rwxr-xr-x  1 user user    31 Mar  4 21:33 test.sh
$ ./test.sh
-bash: ./test.sh: Permission denied
$ sudo ./test.sh
[sudo] password for user:
sudo: unable to execute ./test.sh: Permission denied
$ cd ..
$ ls -l
drwxrwxrwx  6 user root  4096 Mar  4 21:34 sda5

我不知道该怎么办。

ETA:我可以使用“bash test.sh”来执行该文件,但不能使用./test.sh。我可以在主目录中执行 ./test.sh 。

linux permissions
2个回答
30
投票

文件系统使用 noexec 挂载,这会阻止执行文件。


0
投票

如果挂载位置的文件不属于主目录下的同一个用户,那么也可以给出该文件无法执行的可能原因;

     ./

这是因为当你执行 ./ 时,这意味着你正在 pwd 中执行,但是当你传递解释器“bash”时,文件将在没有可执行权限的情况下执行,

所以非常是挂载位置的文件的所有者,如果它是 root 拥有的,那么你不能使用 ./ 来执行该文件,除非你更改用户

© www.soinside.com 2019 - 2024. All rights reserved.