【问题标题】:How to get indirect access on a file through script in linux如何通过linux中的脚本间接访问文件
【发布时间】:2015-01-15 07:04:48
【问题描述】:

我有一个文件 text1,在这个文件上只有一个用户 (user1) 具有读、写、执行权限,世界其他地方 (user2) 具有读和执行权限。 我想有一个脚本来更改文件 text1 的内容,如下所示,该脚本将由 user2 执行

sed -i '/s/eg1/eg0/' 文本1

我想修改上面的脚本来改变 text1 的内容,而不是直接给 user2 写权限。我的意思是说 user2 不应该能够直接写入 text1 但是当他执行脚本时 text1 的内容应该被修改,因为不可能在 text1 上提供直接写入权限

【问题讨论】:

  • 如果没有接收写访问上下文(sudo,...),则根据定义没有写访问。如果可以做到这一点,就没有写访问功能的兴趣了。
  • 这个可以通过sudo解决。使用sudo,您可以授予 user2 运行该命令的权限,并且只有该命令具有 user1 的权限。
  • 嗨,John1024,如果您不介意,请给我这个命令。非常感谢

标签: linux shell unix permissions sudo


【解决方案1】:

sudo 可以允许user2user1 的身份执行该命令。为此,请运行 sudo visudo。这将打开一个编辑器。将以下行添加到该文件的底部

user2 ALL=(user1)  NOPASSWD: /bin/sed -i s/eg1/eg0/ text1

保存文件并关闭编辑器。完成后user2可以执行如下命令:

sudo -u user1 sed -i 's/eg1/eg0/' text1

注意事项

  • visudo 将打开一个与系统相关的默认编辑器。该编辑通常来自vi 家族。如果是,请按G 进入文件底部,i 进入插入模式,在行中键入或粘贴,然后按Escape 退出插入模式,然后键入:x 保存并退出.

  • 请注意,sudo 文件中输入的行不应包含命令行中可能使用的引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多