因此,为了尝试稍微保护一下我的服务器,我创建了一个具有 su - root 访问权限的新用户,并拒绝 root 登录。现在我无法通过 Filezilla 用这个用户在我的服务器上 SFTP 任何文件。以下是我采取的步骤:
- 创建新用户、新密码、通过 SSH 连接到服务器、检查它、检查我是否可以将用户切换到 root(一切顺利)
- 使用 Filezilla SFTP
/etc/ssh/sshd_config
从PermitRootLogin yes
到进行编辑。PermitRootLogin no
- 重新启动 SSHD 服务。
- 再次检查以确保新用户通过 SSH 具有 root 访问权限。一切正常。
现在,不幸的是,当使用新用户/密码通过 Filezilla 进行 SFTP 时,我可以访问和查看服务器中的所有目录/文件,但无法打开/读取/编辑它们。
我是否需要以 root 用户身份更改权限设置,以便新用户能够执行此操作?我是不是搬起石头砸自己的脚?
编辑:好的,因此以 root 身份对文件进行 chmod 777,这允许我以新用户身份查看/编辑,但是有没有办法简单地授予用户所有这些 SFTP 权限,但不授予公众/其他任何人?
答案1
关于你关于如何限制权限的编辑,一个传统的 Unix 习惯用法是车轮团体。您可以创建一个组,将组成员身份授予通过 SFTP 登录的用户,然后将您希望用户编辑的文件的组更改为组。完成此操作后,您可以使用 chmod 授予组权限,而无需将这些权限授予所有人。
许多 Unix 发行版已经有一个车轮或者根或者行政组,这有利于确保以后检查您工作内容的任何人(包括您自己,如果您忘记了自己做了什么)不必猜测发生了什么以及为什么发生,但有时该组已经拥有额外的权限,而您不希望这些权限自动授予您的 SFTP 用户。此外,根据您所关注的文件,其他脚本和实用程序可能需要这些文件的特定组权限,如果您更改这些权限,事情就会意外中断。出于这些原因,您可能需要在进行此更改之前检查特定于您所使用的操作系统的文档。
答案2
如果我理解正确的话,您正在尝试执行仅允许具有 sudo 权限的用户对 root 执行的文件操作。您需要使用 ssh 进行实际工作,例如编辑配置文件。SFTP 使您能够以普通用户身份访问系统。除非您使用 ssh,否则 sudo 权限将无效。