【问题标题】:I have execute permission but not write permission - how do I execute a script that creates a file?我有执行权限但没有写权限 - 如何执行创建文件的脚本?
【发布时间】:2013-01-27 06:12:55
【问题描述】:

有一个我不拥有的脚本,但我对它有执行(和读取)权限。 我对文件系统没有任何写权限。 该脚本尝试在文件系统上创建一些文件,然后将其删除。

因此,当我运行脚本时,我收到“权限被拒绝”消息,因为我没有在文件系统上写入的权限。

我该如何解决这个问题?

不能改变的一件事是,我不能为我的用户请求文件系统的永久写入权限。 但是我希望能够创建文件,如果它是通过脚本完成的。

  • 如果您建议的更改需要编辑脚本或其权限,我可以要求管理员为我执行此操作。但通常管理员不会授予我对系统上任何文件的永久写入权限。

【问题讨论】:

  • 你能写入 /tmp 吗?
  • 他们根本不让我在服务器上写,除非是通过脚本(他们批准)或管理员完成的。因为它是生产服务器。我将成为稍后必须运行脚本的人。
  • 但是你的脚本真的可以写入 /tmp 吗?
  • 我可以在 /tmp 上书写。但我认为应该有一种方法,如果我有执行脚本的权限,让我通过该脚本写入文件系统,即使我本身没有写入权限。否则执行权限有什么意义?
  • 在查看了下面的 cmets 之后,看起来您必须坐下来与所述系统的管理人员坐下来讨论这些问题才能使其正常工作。那,或者应用我的一个学生所描述的“错误256:用户错误。更改用户并重试”(只需将上面的“用户”替换为“sysdamin”......)

标签: linux unix permissions filesystems chmod


【解决方案1】:

你可以询问你的管理员他是否愿意让你运行这个脚本,并且只能用 sudo 运行这个脚本。

由于您无法修改脚本,因此一旦他批准了脚本的内容,他们就可以考虑这样做。

在 /etc/sudoers

youruser ALL= NOPASSWD: /path/to/your/script

他可能还可以限制脚本运行的身份,因此您只有有限的访问权限,而不是完全的 root 访问权限。

【讨论】:

  • 我在上面指定,我可以通过向管理员提交请求来更改脚本。应用更改后,我将成为尝试执行脚本的人。
  • 这不会改变我上面所说的。管理员要么让你通过 sudo 运行脚本,要么他必须自己运行它,或者给你更多访问权限。
【解决方案2】:

在我看来,值得在某处寻找可供用户进行此类访问的文件夹。也许可以写入user/tmp/ 目录?您尝试写入的路径是什么?

我会调查为什么脚本需要写入和删除文件。是否可以使用不那么持久的东西,例如变量而不是写入文件并完全避免写入文件?你在写什么类型/大小的数据?

最后,也许系统被锁定是有充分理由的,也许您可​​以找到一个更宽松的系统来用于您的目的。不让用户写入任何文件听起来很不寻常。

【讨论】:

  • 如果没有其他方法可以编写脚本,我可以试试这个。但我需要列出一个用于记录目的的输出文件。这就是为什么我不希望它在 /tmp 中停留太久的原因。因为它最终会被删除。
  • Pascal Belloncle 的想法不错。我会先试试你的,因为我工作的组织中的管理员不是东方可以与之交流的。然后我会将临时文件通过电子邮件发送给需要它的人。
  • tmp目录下的文件会被自动删除,我想是重启机器的时候。这对你来说可以吗?
  • 我将需要该文件用于记录和统计目的。因此,我将在脚本中添加一些内容,以便通过电子邮件将其发送给可能需要它的任何人。 stackoverflow.com/questions/17359/…
猜你喜欢
  • 2014-07-18
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 2017-01-06
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多