我想在我的计算机上为我的朋友创建一个帐户,但我不希望我的朋友能够查看我的所有文件。我看到 OpenSSH 有一个选项。
SSHD 配置文件内部:
/etc/ssh/sshd_config
与行:
ChrootDirectory /home/%u
但是,用户主目录需要属于root
.那是一件坏事?如果管理员拥有该目录,是否会产生任何后果或影响?
我为 2 个发行版和 FreeBSD 标记了这个问题,因为我都使用它们。我想知道root
在发行版和/或操作系统之间拥有用户主目录的要求是否会有所不同。
答案1
你有点误解chroot
了;它不仅仅是隐藏东西,该目录实际上成为/
会话的目录。您需要在其下面提供一个相当完整的系统映像(/etc
、/bin
、/lib
等),否则什么都不会起作用(特别是,用户将无法运行 shell)。 root
需要拥有新的/
文件系统根目录是这样的结果:任何其他人拥有文件系统根目录将是一个明显的安全问题。
答案2
要回答您的具体问题,root
必须拥有 SSHD 提供的用户主目录chroot
才能正常工作。如果主目录不属于root
,则用户在通过 进行连接时将能够退出该目录sftp
。
如果root
用户仅与sftp
.但是,如果用户还以另一种方式连接(例如ssh
)并被授予 shell,那么您应该使用另一种解决方案, 像受限 shell rssh。