首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件的所有权正在自动更改

文件的所有权正在自动更改
EN

Stack Overflow用户
提问于 2019-05-09 16:58:58
回答 3查看 913关注 0票数 1

如何防止更改文件的所有权?我有一个文件,权限如下:

代码语言:javascript
复制
-rw-r-----. 1 netcool ncoadmin 1689 May  8 14:54 NCI_Constellation.proj

作为RPM包安装的一部分,我正在运行一个脚本,该脚本应该将数据写入NCI_Constellation.proj文件。而在安装包期间,文件的权限发生了如下更改,并且写入文件的操作没有发生。

代码语言:javascript
复制
-rw-r-----. 1 root root 1689 May  8 14:54 NCI_Constellation.proj

有没有一种方法可以不改变NCI_Constellation.proj文件的所有权,并保持它如下所示,这样我就可以将数据写入该文件?

代码语言:javascript
复制
-rw-r-----. 1 netcool ncoadmin 1689 May  8 14:54 NCI_Constellation.proj

请帮帮忙。

EN

回答 3

Stack Overflow用户

发布于 2019-05-09 17:25:57

问题是:该文件属于哪个包,具有什么权限?

代码语言:javascript
复制
rpm -qf /path/to/NCI_Constellation.proj

将为您提供拥有此文件的包(假设为NCI.rpm)。然后

代码语言:javascript
复制
rpm -qlv NCI.rpm | grep NCI_Constellation.proj

将为您提供NCI.rpm打包的此文件的所有者和权限。如果你是打包NCI.rpm的人,你应该在你的%files部分放一些类似这样的东西:

代码语言:javascript
复制
%files
%attr(640,netcool,ncoadmin) /path/to/NCI_Constellation.proj

顺便说一句,确保你真的可以用这些权限写文件;首先测试一下…谁在运行脚本来更改此文件?以哪个用户的身份?然后以该用户的身份手动运行它,以确保这些文件权限足够。

票数 1
EN

Stack Overflow用户

发布于 2019-05-09 17:35:44

在我看来你有两个选择,

首先:通过执行以下操作将netcool设置为根用户组:$ sudo usermod -a -G root netcool使用此命令,即使在权限更改后,您的用户仍能够更改和修改文件。

第二:通过更改/etc/passwd文件,将netcool用户设置为第二个根用户。为此,使用您想要的每个文件编辑器打开该文件,然后将UID和GID更改为0。这样做之后,如果您运行$ grep netcool /etc/passwd,您应该会看到:netcool:x:0:0: {the rest may change for anybody}

票数 1
EN

Stack Overflow用户

发布于 2019-05-09 17:54:41

我们可以通过在目录上使用setgid位来防止文件组的更改。因此,如果您将用户netcool添加到ncoadmin并将写权限授予ncoadmin,那么您就可以编辑该文件。下面是如何在目录上设置SetGid位。

chmod g+s your_directory_containing_file(NCI_Constellation.proj)

有关目录上的 on的更多信息:

setgid可以在目录上使用,以确保目录中的所有文件都归该目录的组所有者所有。setgid位显示在与组所有者的x权限相同的位置。setgid位由s(意味着x也在那里)或S(当没有x表示组所有者时)表示。如本例所示,即使根用户不属于proj55组,因为设置了setgid,所以根用户在/project55中创建的文件将属于proj55。

代码语言:javascript
复制
root@RHELv4u4:~# groupadd proj55
root@RHELv4u4:~# chown root:proj55 /project55/
root@RHELv4u4:~# chmod 2775 /project55/
root@RHELv4u4:~# touch /project55/fromroot.txt
root@RHELv4u4:~# ls -ld /project55/
drwxrwsr-x 2 root proj55 4096 Feb 7 17:45 /project55/
root@RHELv4u4:~# ls -l /project55/
total 4
-rw-r--r-- 1 root proj55 0 Feb 7 17:45 fromroot.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56055793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档