使用用户权限为755的Bash sh脚本无法运行。

4

为什么无法运行?
如果按照以下方式运行,它可以正常工作:

[usuario@MyPC ~]$ sh ./x11vnc.sh
PORT=5900

首先,权限需要设置为755,以便您可以查看它。

ls -l
-rw-rw-rw- 1 usuario users  4485 dic  2 11:35  x11vnc.log
-rwxr-xr-x 1 usuario users   117 nov  7 14:06  x11vnc.sh

其次,脚本文件

cat x11vnc.sh
#!/bin/bash
x11vnc -nap -wait 30 -noxdamage -passwd somepass -display :0 -forever -o ~/x11vnc.log -bg -rfbport 5900

第三点,我必须澄清磁盘的结构。

lsblk 
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0   3,6T  0 disk  
├─md126       9:126  0   3,6T  0 raid1 
│ ├─md126p1 259:3    0   3,6T  0 part  /home/usuario
│ └─md126p2 259:4    0     8G  0 part  [SWAP]
└─md127       9:127  0     0B  0 md    
sdb           8:16   0   3,6T  0 disk  
├─md126       9:126  0   3,6T  0 raid1 
│ ├─md126p1 259:3    0   3,6T  0 part  /home/usuario
│ └─md126p2 259:4    0     8G  0 part  [SWAP]
└─md127       9:127  0     0B  0 md    
nvme0n1     259:0    0 232,9G  0 disk  
├─nvme0n1p1 259:1    0 232,6G  0 part  /
└─nvme0n1p2 259:2    0   256M  0 part  /boot

我是用户usuario。 我可以随意编辑和修改x11vnc.sh文件,但我无法运行它,并且我需要运行它以包含在Plasma的自动启动会话中。

[usuario@MyPC ~]$ ~/x11vnc.sh
-bash: /home/usuario/x11vnc.sh: permission denied

为什么无法运行?
如果按照以下方式运行,它可以正常工作:

[usuario@MyPC ~]$ sh ./x11vnc.sh
PORT=5900

评论不适合进行长时间的讨论;此对话已被移至聊天室 - sideshowbarker
1个回答

3
感谢大家,特别感谢@CharlesDuffy。
我将fstab中的行更改为:
UUID=16b711b6-789f-4c27-9d6c-d0f744407f00 /home/usuario ext4 auto,exec,rw,user,relatime 0 2

to

UUID=16b711b6-789f-4c27-9d6c-d0f744407f00 /home/usuario ext4 auto,rw,user,exec,relatime 0 2

exec的位置很重要,因为用户也使用noexec。通过将exec放在用户后面,确保设置了exec。最重要的选项应该最后列出。


1
在这种情况下,没有什么能取代“Charles”的作用。这需要找到一个恰好具备fstab选项排序知识的合适人选。在20年的Linux构建和为各种RAID等创建大量fstab文件中,除了我特别需要的选项外,排序要求并不是我有任何概念的东西... - David C. Rankin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接