Jor*_*edo 4 permissions file-sharing
我在想是否可以制作一个脚本发送给朋友以解决他计算机上的一些问题。我想为文件授予可执行权限,因此我的朋友只需双击该文件,如下所示:
https://github.com/fletom/ACLr8
但是当我使用chmod a+x
我的文件并将文件发送给我的朋友(在这种情况下我将它发送给自己)时,他(我)无法执行,因为文件已失去+x
权限。
有没有办法(有,链接的人能够做到)发送具有可执行权限的bash脚本,只需双击并执行它?
注意:当时的问题涉及电子邮件传输(根据 OP 对问题的评论)。编写此答案是为了解决该问题,因为该电子邮件是此处可用的传输方法。
当使用电子邮件在系统之间传输文件时,您不能“保留”所有文件权限,就像您在发送文件时希望的那样。这是因为它是一个“新下载”,即根据下载位置、下载系统等中“新文件创建权限”的系统策略的条款和要求创建的“新文件”。这也是因为电子邮件协议没有任何机制来对外保留来自源系统的权限。
您展示的 GitHub 示例将“保存”文件的权限状态,作为版本控制系统的一部分。电子邮件没有这种机制。
由于我们已经确定电子邮件不允许您保留文件权限,因此您需要评估其他方法。
使用 tarball。您可以创建一个包含该文件的目录,并创建一个 tarball 来保存系统。在 Linux 系统上提取时,它会尝试“保留”这些权限,就像您压缩文件时一样。 tar -pczf name_of_your_archive.tar.gz /path/to/directory
是要使用的一般命令结构。但是,如果它们tar xzf
在另一端不能运行或类似,这将不起作用。
使用版本控制系统来保存数据,例如 GitHub 存储库。 您可以创建一个 github 存储库来保存 shell 脚本,然后让其他人将其克隆到他们的系统中。这应该保留可执行位,但不能保证。
指导其他用户如何通过命令行设置可执行位。如果他们将文件下载到/home/USERNAME/Downloads
,USERNAME
他们的用户名在哪里,然后您可以指示他们登录到终端并运行chmod a+x /home/USERNAME/Downloads/FileName.sh
,然后他们可以通过双击或命令行来运行它。
如果电子邮件是唯一的传输选项,则使用您编写的 shell 语言运行该脚本(我猜可能是 Bash)。这不需要对任何地方的权限或执行位进行任何更改。 假设这是一个 Bash 脚本,那么,只需让下载脚本的远程用户执行以下操作(从命令行):(bash /path/to/script.sh
并替换/path/to/script.sh
为实际文件路径,可能/home/USERNAME/Downloads
是默认的电子邮件下载位置,或者如果通过 webmail 下载在 USERNAME 是用户的用户名的 Web 浏览器中)
除了我知道的前三种方法之外,我不相信您在将文件发送给其他用户时能够“保留”权限。这是电子邮件的限制 - 它不能以这种方式保留权限,因为无法以在通过电子邮件传输期间保留的方式将权限保存为该文件的一部分。第四个选项提供了一种方法,甚至不需要可执行位并且根本不会弄乱权限。
归档时间: |
|
查看次数: |
1481 次 |
最近记录: |