【问题标题】:Permission denied to edit a file in UNIX在 UNIX 中编辑文件的权限被拒绝
【发布时间】:2011-12-05 01:02:35
【问题描述】:

我有一个由oracle 用户创建的文件,具有rw-r--r-- 权限,父文件夹具有rwxrwsr-x 权限。现在,批处理用户需要编辑此文件。但是,如您所见,该文件只能由所有者(即 Oracle 用户)编辑。

我尝试使用chmod 命令更改文件的权限,但批处理用户没有执行此命令的权限。

这个问题有什么解决办法吗?

我们能否在 UNIX 中进行一些配置,以便允许批处理用户编辑 oracle 用户创建的文件。

编辑:更正了父文件夹权限。之前我提到它为rwxrw-r-x

【问题讨论】:

  • 您使用的是什么操作系统/发行版?

标签: oracle unix permissions file-permissions permission-denied


【解决方案1】:

“组”(rw-) 的目录权限异常(rwxr-x 会更常见)。

您不知道文件属于哪个组,也不知道目录属于哪个组,也不知道批处理用户属于哪个组,但这可能并不重要

在引用的目录权限更改后更新: 鉴于组可以读取文件,并在目录中创建文件,那么如果您的批处理用户属于拥有该目录的组,则批处理用户可以复制文件(在编辑器中),删除原始文件,然后在目录中写回一个新文件。

您的系统是否支持 ACL(访问控制列表)?如果是这样,那么作为文件所有者的“oracle”用户可以授予批处理用户对该文件的读/写访问权限,即使正常的 Unix 权限没有显示它可能发生。

您能否说服“oracle”用户创建属于适当组(批处理用户也属于该组)并具有适当组权限的文件。

如果那里没有任何效果,那么您将沦为某种形式或形式的 SUID 程序——可能是 SUID 'oracle' 或 SUID 'root'。评论中提到了一个选项 - sudo 命令带有一些模糊的适当参数。

【讨论】:

  • 感谢乔纳森。实际目录权限为rwxrwsr-x。我说错了,是我的错。
  • 我使用setfacl 命令为组用户提供write 权限,用于父目录中的所有文件。感谢大佬指点我的 ACL :)
【解决方案2】:

我注意到您在目录上设置了 +s 位..... 如果您将目录所有者更改为批处理用户的所有者,则任何新创建文件的所有者都应归该用户所有,然后您可以对它们做您想做的事情

【讨论】:

    【解决方案3】:

    如果您的批处理用户与 oracle 用户在同一组中,您可以这样做:

    chmod g+w filename
    

    这应该使文件对组可写。

    运行 UNIX 命令groups 以确定用户所在的组,或检查/etc/passwd/etc/group

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2012-11-24
      • 1970-01-01
      • 2017-06-28
      相关资源
      最近更新 更多