如何使文件可执行?

Tim*_*Tim 40 command-line scripts executable

我怎样才能制作我的文件,以便我可以双击它,然后它就会运行。这是一个.sh脚本,但我也有文件说:

executable (application/x-executable)

在它们是什么的描述中。

我无法从终端或双击运行任何这些。

如果可能,我想要一种使用 GUI 或终端的方法,但不是两者的组合。

这是我右键单击然后继续属性时看到的屏幕截图。先上文件:

可执行文件的属性

和这里的shell脚本:

shell脚本的属性

注意:我接受这是重复的(我正在寻找它,但找不到,所以问+回答,希望我能找到它)但是,我不认为关于 .desktop 文件的问题是一个副本。

Tim*_*Tim 63

有两种方法可以使文件可执行:

图形界面方法:

转到权限选项卡,然后勾选Execute: [?]允许作为程序执行文件框。

命令行方法:

赶紧跑:

chmod +x /path/to/your/file.txt
Run Code Online (Sandbox Code Playgroud)

请注意,chmod它也有一些更高级的选项。它接受三组选项,表示为--- --- ---。第一组---是用户。第二个是 Group,最后一个是 Other(其他所有人)。

r代表读取、w写入和x执行。

允许每个人阅读它,但只有 Group 执行和 User 读取和写入它将是-rw- rx- r--. 这将被添加到命令中:

chmod +rw-rx-r-- /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

chmod也可以在数量上做到这一点。它基于二进制。

所以有这些数字:

由用户执行是100. 按组执行是010. 由其他人执行是001

用户写入的是200. 按组写是020。别人写的是002

用户读取的是400. 按组阅读是040。别人读的是004.

然后将这些加在一起以获得所需的组合。

因此,为了让每个人都可以阅读它,但只有 Group 执行和 User 写入它将是400 + 040 + 004010200

加起来就是600 + 050 + 004 = 654.

然后您可以运行该命令。

chmod +654 /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

设置它。因此,要设置所有权限,您可以运行:

chmod +rwxrwxrwx /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

或者

chmod +777 /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

最后,你可以这样做:

chmod -777 /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

剥夺所有人的所有权限。

和:

chmod +300 /path/to/file.extension
Run Code Online (Sandbox Code Playgroud)

为用户添加读写,不影响任何其他权限(例如执行权限)。

这个网站有一个非常有用的小工具,你可以勾选你想要的选项,它会给你命令:

然而,并非所有可能的组合都适合使用;使用的主要有以下几种:

  • 755 -Owner拥有所有,Group并且Other可以读取和执行

  • 700 -Owner拥有所有

  • 644 -Owner可以读写,Group并且Other可以读取

  • 600 -Owner可以读写

而且,如果您使用的是非平凡的用户组:

  • 775 -Owner可以读写,Group并且Other可以读取

  • 770 -Owner并且Group都有,并且Other可以读取和执行

  • 750 -Owner拥有所有,并且Group可以读取和执行

  • 664 -Owner并且Group可以读取和写入,并Other可以只是读

  • 660 -Owner并且Group可以读取和写入

  • 640 -Owner可以读写,Group可以读

777 和 666 很少使用,除了/tmp.

感谢ILMARI Karonen用于指出在通常使用的那些!

  • 您的屏幕截图显示了一个*非常*的文件权限示例。我想不出有任何正当理由*永远*使任何人都可以写入可执行文件(或大多数其他文件,就此而言),并且有很多理由不这样做。基本上,通常有用的文件权限集(不包括 setuid/gid 之类的高级内容)是 755、700、644 和 600(并且,如果您使用的是非普通用户组,则为 775、770、750、664、660 和 640 )。关于 777 或 666 权限,您应该看到的唯一内容是`/tmp`(实际上是 1777)、设备文件和符号链接(其权限无关紧要)。 (4认同)