【问题标题】:How to change the group owner of a file that gets created by a script [closed]如何更改由脚本创建的文件的组所有者 [关闭]
【发布时间】:2015-06-18 22:28:03
【问题描述】:

我正在尝试更改从脚本创建的输出文件的组所有者。现在输出看起来像这样:

-rw-rw-r-- 1 oasedms dba  1898 Apr 10 15:42 DRAFT_342870_8_1.xml

我希望组所有者是“adlib-adm”而不是 dba。

我在 rhel 6.5 上运行这个

提前致谢!

【问题讨论】:

  • 像往常一样?谷歌“文件更改组 linux”?
  • sudo chown adlib-adm:adlib-adm DRAFT_342870_8_1.xml 将更改组所有权以及文件的用户所有权...
  • 我知道我可以单独更改它,但我希望在脚本执行时默认组是 adlib-adm。因此,当脚本执行时,我希望所有文件都具有 adlib-adm 和组所有者。我已经更改了目录的组所有者
  • 啊。您可能想要编辑您的问题。-- 可能由脚本创建的文件的默认组是该用户的“主要”组,可以通过usermod 设置。 (我从来没有这样做过,只是用谷歌搜索......)。当然,更改主要组会产生可能是意外的副作用,在这种情况下,明确更改组是唯一的办法。

标签: linux redhat


【解决方案1】:

您可以使用 chown 命令更改文件的所有者和组。

chown adlib-adm:group /address/of/file

我希望这会有所帮助。祝你有美好的一天。

【讨论】:

  • 非常准确和有帮助!
  • 感谢您的快速回复。我知道你可以像这样更改单个文件的组所有者,但我想要的是有一个正在执行的脚本,当它被执行时,它创建的文件应该自动将 adlib-adm 作为组所有者。
  • 您应该简单地将这些行添加到 bash 脚本的末尾,或者您可以在程序结束之前从程序中调用一个 bash 脚本。 bash 脚本将更改权限
  • 我确实理解这一点,并且我已向最终用户推荐了这一点,但还有另一台服务器具有相同的确切脚本和所有内容,并且当该脚本在该服务器中运行时,输出具有正确的组所有者。最终用户想知道为什么它在一台服务器上是正确的,而不是在另一台服务器上,即使它们是相同的服务器。运行成功的脚本是prod server,另一个是dev。
  • 您是否检查了在生成正确文件的服务器上创建文件的用户组。如果用户存在于所需的组中,那么您可以访问该文件
【解决方案2】:
chgrp adlib-adm DRAFT_342870_8_1.xml

编辑:Bash Scripting - How to set the group that new files will be created with?

您可能还想考虑sg

sg [-] [group [-c ] command]

sg - 以不同的组 ID 执行命令。 sg 命令的工作方式与 newgrp 类似,但接受一个命令。这 命令将使用 /bin/sh shell 执行。

【讨论】:

  • 我实际上希望它在脚本执行时自动更改。
猜你喜欢
  • 2018-08-29
  • 2014-10-06
  • 2014-03-23
  • 2014-04-15
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
相关资源
最近更新 更多