Linux

如何將使用者限制在一個文件夾中,並且不允許他們移出他的文件夾

  • June 15, 2021

我在 digitalocean 上有 ubuntu 伺服器,我想在我的伺服器上為某人的域提供一個文件夾,我的問題是,我不希望該使用者看到我的文件夾或文件或能夠移出他們的文件夾。

如何限制此使用者在他們的文件夾中,不允許他移出並查看其他文件/目錄?

我通過這種方式解決了我的問題:

創建一個新組

$ sudo addgroup exchangefiles

創建 chroot 目錄

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

創建組可寫目錄

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

將它們都交給新組

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

之後我去了/etc/ssh/sshd_config並添加到文件的末尾:

Match Group exchangefiles
 # Force the connection to use SFTP and chroot to the required directory.
 ForceCommand internal-sftp
 ChrootDirectory /var/www/GroupFolder/
 # Disable tunneling, authentication agent, TCP and X11 forwarding.
 PermitTunnel no
 AllowAgentForwarding no
 AllowTcpForwarding no
 X11Forwarding no

現在我要在我的組中添加名為 obama 的新使用者:

$ sudo adduser --ingroup exchangefiles obama

現在一切都完成了,所以我們需要重新啟動 ssh 服務:

$ sudo service ssh restart

注意:使用者現在不能在file目錄之外做任何事情 我的意思是他的所有文件都必須在文件文件夾中。

引用自:https://unix.stackexchange.com/questions/208960