非特权用户如何彻底放弃自身拥有文件的访问权限?
如何以非特权用户身份彻底放弃文件的访问权限
嘿,这个需求我之前帮朋友处理过,刚好能给你捋清楚怎么操作——核心就是要彻底移除你作为原用户对目标文件的所有访问权限,甚至让你连碰都碰不到,还要配合远程备份的安全需求。
先给你拆解可行的方法,再说说你之前改所有者为root没生效的可能原因:
方法1:无需root权限,直接锁死自己的访问权
如果你没有sudo权限,没法把文件转给root,那可以这么操作:
- 第一步,彻底移除自己对文件的所有权限:
chmod u-rwx filename - 第二步,把文件的所属组改成一个你完全不属于的组(比如系统默认的
nobody组,先确认你不在这个组里:执行groups命令就能查看自己的所属组):chgrp nobody filename - 第三步,把组和其他用户的权限也锁死:
chmod go-rwx filename
做完这三步,你作为原文件所有者,已经没有任何读、写、执行的权限,组和其他用户也碰不到这些文件,只有root能操作它们。
方法2:有sudo权限的话,直接转给root彻底锁死
如果你刚好有sudo权限(哪怕是有限的),这是最直接的方式:
sudo chown root:root filename sudo chmod 600 filename # 这个权限意味着只有root能读写,其他人完全无权访问
执行完这两句,你作为普通用户,连读取文件内容的资格都没有,彻底和这些文件划清界限。
针对你远程备份场景的额外提醒
你提到要把文件备份到远程,防止本地被攻陷后泄露,这里补充两个关键细节:
- 远程端的权限要同步设置:在远程服务器上对备份文件执行上面的权限变更操作,确保远程文件的所有者是root,权限设为
600,同时你的本地用户在远程服务器上没有sudo权限,也不属于任何能访问该文件的组。 - 本地文件要彻底销毁:传输完成后,别用普通的
rm删除本地文件,用shred -u filename命令彻底覆盖删除,避免本地残留被攻击者恢复。
为什么你之前改所有者为root没生效?
你说改完所有者为root还是不行,大概率是这几个原因:
- 你在远程服务器上有sudo权限,能通过sudo绕开权限访问root的文件;
- 远程文件的权限没设对,比如不小心给了其他用户读取权限(比如
chmod 644); - 本地的原始文件没删除,攻击者还是能从本地拿到副本。
内容的提问来源于stack exchange,提问作者Octaviour
相关产品推荐
相关产品推荐

