小编a1a*_*1an的帖子

为什么我必须使用 sh 从 CD/DVD 媒体执行脚本?

我再次发现系统的这种奇怪行为。我正在运行 Debian 6.0.6 并且在直接从 CD/DVD 执行脚本时遇到了一些麻烦。最后我不得不使用:

sh /media/cdrom/command
Run Code Online (Sandbox Code Playgroud)

运行它。不得不求助于 sh 有什么大不了的?!如果脚本依赖于 bash 特性怎么办?真的很烦人,在我看来并没有增加安全性

有人知道这种行为的充分理由吗?

PS:如果您尝试直接使用 ./... 运行它,您会收到一个错误,该错误没有暗示任何问题的提示(文件系统已挂载 noexec):

bash: ./media/cdrom/command: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果你将它作为 bash /media/cdrom/command 运行,你会得到同样的错误(我认为即使对于在命令行上作为参数传递的命令,安装选项的验证也会被 bash 验证。

永久的解决方案是将 exec 添加到 /etc/fstab 中的挂载选项中,例如:

/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec     0       0
Run Code Online (Sandbox Code Playgroud)

bash permissions media dvd executable

6
推荐指数
1
解决办法
5652
查看次数

如何检查哪个应用程序按扩展名打开文件?

我在具有未知桌面环境(ssh 访问)的 debian 9 系统上。如何找出默认情况下使用哪个程序来查看具有给定扩展名(例如 pdf)的文件?

编辑:由于扩展名对决定不重要,可以使用 file 找到给定文件的 mime 类型

file -i file.ext
Run Code Online (Sandbox Code Playgroud)

command-line defaults debian

6
推荐指数
1
解决办法
512
查看次数

是否可以在 bash 中启用从 cifs 挂载执行文件?

我有一个带有 cifs 的远程挂载,似乎没有办法让 bash 从该挂载执行脚本,是否可以启用这样的执行?

ls -lh ini*
-rwxrwxr-x 1 alan 500 222 2012-03-23 10:16 initall.sh

bash --version
GNU bash, version 4.2.8(1)-release (i686-pc-linux-gnu)

./initall.sh
bash: ./initall.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)

cifs 挂载似乎也支持 unix 扩展,因为我能够正确地修改文件。

下面是挂载选项: user,auto,pass= ***,uid=alan,user=***

filesystems permissions

5
推荐指数
1
解决办法
6618
查看次数