如何创建对所有文件具有只读访问权限的用户?(即没有写权限的root)


9

为了备份服务器,我想通过SSH远程访问它。为了最大程度地降低所有风险,它希望为用户提供只读访问权限,但对所有文件都具有读取权限,就像root用户一样。但是,他不应该具有任何写权限。

关于如何实现这一目标的任何想法?


Answers:


7

可能我建议使用另一种方法来解决您的问题,这种方法的维护工作量较少。

您可以创建对特定程序具有有限访问权限的ssh密钥。我不喜欢授予root用户不受限制的访问权限,但有时您需要启用某些命令才能通过远程运行。使用ssh键,可以通过ssh命令运行备份程序。

在sshd手册页中查看“ AUTHORIZED_KEYS FILE FORMAT”部分(我假设您使用的是OpenSSH)。

http://man.openbsd.org/OpenBSD-current/man8/sshd.8


1
我喜欢这个主意。为了简单地通过man中概述的所有-options 文件,应该是安全的。尤其是将no-ptyfrom结合使用是提高安全性的良好起点。示例:rsyncno-*from="the_pulling_hostname_or_IP",no-pty,...
user569825 2012年

1

您可以使用ACL来实现。您仍然需要以root用户身份运行的脚本,该脚本可以更改每个文件的权限。如果您有兴趣,请参见ACL,setfacl和getfacl的手册页。


1

还有一种不使用ACL来创建它的方法。但是您需要在此处谨慎操作。首先,创建一个组,例如,称为roroot(只读根)。然后将该组ID应用于所有目录。将组位的权限设置为r--或400八进制,然后可以像普通用户一样创建用户帐户,例如rorootusr,并将下一个id设置为系统上的任何ID,将其设置为是roroot组的成员,请勿使其成为wheel,bin等的一部分,具体取决于您的组在您的安装中是什么。接下来的一点将是混乱的。使用vim / nano / emacs / joe /来打开/ etc / passwd文件,无论使用哪种编辑器,然后查找您刚刚创建的ID,即。rorootusr,passwd文件将如下所示

root:x:0:0 :: / root:/ bin / sh

从左到右以冒号分隔,您将获得用户名,密码(加密+阴影),用户ID,组ID,注释,主目录和Shell。从上面给出的例子

rorootusr:x:512:450:root用户RO:/ home / rorootusr:/ bin / bash

将其更改为0是第三个字段(512)。450将是roroot的组ID。保存编辑会话,即可完成。现在,rorootusr将具有root用户访问权限,但仅是roroot组的成员,并且具有对系统的只读访问权限。

希望对您有所帮助,汤姆,谢谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.