讓ftp使用者只可存取其家目錄,但給予soft link或mount的存取權
发布日期:2021-05-06 19:48:59 浏览次数:13 分类:技术文章

本文共 1218 字,大约阅读时间需要 4 分钟。

讓ftp使用者只可存取其家目錄,但給予soft link或mount的存取權

前言

本篇譯自,並加入筆者實際執行時的細節。

步驟

讓ftp使用者只能存取其家目錄

將ftp使用者可存取的目錄限制在其家目錄比較簡單,具體可以參考:這篇文章。

首先切換到vsftpd設定檔所在目錄,然後編輯設定檔:

cd /etc/vsftpdvim vsftpd.conf

依使用場景來修改vsftpd.conf

  1. 讓所有使用者都無法存取上級目錄:

    chroot_local_user=YESchroot_list_enable=NO
  2. 如果只想讓部份使用者無法存取上級目錄,可以建立一個使用者名單:

    vim /etc/vsftpd/chroot_list

    並讓名單中的使用者皆無法存取上級目錄:

    chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list

然後使用

service vsftpd restart

來讓設定生效。

以下為執行結果:

Redirecting to /bin/systemctl restart vsftpd.service

上面介紹的比較簡單,只要照著步驟操作就會成功。

但是如果想要讓使用者存取家目錄以外的目錄,就可能會踩坑了。

讓使用者存取家目錄以外的目錄

如果想要讓使用者存取其家目錄以外的目錄,我們或許會想到用ln -s的方式。

執行以下指令,希望可以透過symlink來存取<dir1>:

ln -s 
symlink

接著開啟FileZilla,可以看到symlink這個目錄:

ftp
但是點選symlink這個目錄卻不會列中symlink中的內容。

並且會出現以下訊息:

Befehl: CWD /symlink

Antwort: 550 Failed to change directory.
Fehler: Verzeichnisinhalt konnte nicht empfangen werden

訊息說明無法存取symlink這個目錄。

使用ln -s失敗了,接著改用mount看看。

使用以下指令來將家目錄外部的<dir1>掛載到家目錄底下的mounted上:

mkdir mountedmount --bind 
mounted

在FileZilla中可以看到mounted這個目錄:

ftp
並且點選它就可以看到其中的內容。
以下是FileZilla輸出的訊息:

Status: Empfange Verzeichnisinhalt für “/mounted”…

Status: Anzeigen des Verzeichnisinhalts für “/mounted” abgeschlossen

如此一來,使用者便可以存取到家目錄外部的目錄了!

參考連結

上一篇:PIL及matplotlib:OSError: cannot identify image file錯誤及解決方式
下一篇:jupyter創建新notebook不會出現在當前目錄,卻出現在根目錄 - 問題解決

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月02日 01时39分45秒