讓 vsftp 預設使用者不能離開 home 目錄

號稱安全性高的 vsftp 預設是所有使用者都能離開 home 目錄,不論是什麼樣的考量都造成管理上的不便。


其實在只要 vsftpd.conf 裡面加一行:

chroot_local_user=YES

這樣 vsftpd.chroot_list 就變成「允許」離開 home 目錄的列表了。

13 comments On 讓 vsftp 預設使用者不能離開 home 目錄

  • 「安全性高的 vsftp 預設是所有使用者都能離開 home 目錄?」

    是「都能」還是「都不能」?因為看到後面就變成可以了。

    請 Neo 大賜教。

  • 預設是「都能」離開 home,也就是 chroot_local_user 預設是 NO。

    所以如果要把user 鎖在 home的話,每增加一個 user ,vsftpd.chroot_list 也要加一個人。

    說實在話,我實在看不出來這個預設值安全在哪裡?

  • 說真的我也看不懂Neo大大寫的意思耶…:P

    >vsftp 預設是所有使用者”都能”離開 home 目錄

    >這樣 vsftpd.chroot_list 就變成「允許」離開 home 目錄的列表了。

    這兩句差別在哪啊??

  • 初初看我也不明白嗯..
    多看幾遍我想應該是這個意思

    chroot_local_user=YES // 是決定可否離開root, YES=可
    vsftpd.chroot_list // 需要變動(反置)root權限的user列表

    而在YES的情況下, 要容許特例用戶離開root,
    就要將user設置入vsftpd.chroot_list這個列表

    而在NO的情況下, 要”不”容許特例用戶離開root,
    就要將user設置入vsftpd.chroot_list這個列表

    vsftpd.chroot_list列表的作用就是要將用戶離開root的權限設置為跟chroot_local_user相反的值.

    不知是不是這個意思…

  • IcySora:

    解釋的真清楚,就是這樣沒錯。^^
    真的對不起大家,最近太忙,文章都沒時間寫了,寫出來還讓大家看不懂,真是該打屁股。Orz

  • 文字有點饒舌,所以大家比較不清楚.
    vsftpd.chroot_list這是一個列表,裡面紀錄著誰”不可以”離開home,反之,如果要讓該使用者”可以”離開home,就不要把帳號加進去這檔案.

  • Vamco:

    您說的是 vsftp 預設的狀況,但是這個列表的用處是可以調整的。

    所以照 IcySora 的說法會比較清楚,vsftpd.chroot_list 是設定 chroot_local_user 的反向列表(或叫例外列表)

  • chroot_list_enable=NO時chroot檔案功能會被關掉。
    chroot_list_enable=YES時chroot_list_file=/etc/vsftpd.chroot_list才有效用。
    只不過效用會被chroot_local_user影響

    chroot_local_user=YES時vsftpd.chroot_list名單裡的人不會被鎖在家目錄,其他人會。

    chroot_local_user=NO時vsftpd.chroot_list名單裡的人會被鎖在家目錄,其他人不會。

  • 這是 vsftpd 的問題,它設置這個開關會造成截然相反的情況。

    chroot_list_enable=NO (預設值)時,chroot_list_file 裡頭的使用者會被限制住只能在自己的目錄;
    但 chroot_list_enable=YES 時, chroot_list_file 卻變成,裡頭的使用者可以跑來跑去。

  • 補充一下,如果要讓指定使用者進入的 home 目錄的話,可以修改 /etc/passwd。

  • A=chroot_local_user,
    B=chroot_list_enable,
    chroot_list內容為”midas”,
    “heidi”為另一個不列入chroot_list的有效帳號
    實驗如下:
    | midas | heidi
    ——————————————-
    #A(mark A), B=YES | X | O
    ——————————————-
    A=YES, B=YES | O | X
    ——————————————-
    A=YES, #B | X | X
    ——————————————-
    #A, #B | O | O

    結論:

    If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly
    different if chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail.

    以上是chroot_user_list的部分原文, 意思是說如果單純把chroot_user_list=YES而#chroot_local_user(被mark掉), 則chroot_list檔案內列名的user將會被限制在家目錄, 但是如果同時chroot_local_user也設定為YES, 則所有的user都會被限制在家目錄, 反而chroot_list檔案內列名的user除外.

  • 不讓某帳號離開家目錄
    修改vsftpd.conf
    chroot_list_enable=yes //啟動chroot_list_file檔案的功能
    chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者,無法離開家目錄

    預設讓所有帳號不能離開家目錄,只有特定的帳號才行
    chroot_local_user=yes
    chroot_list_enable=yes //啟動chroot_list_file檔案的功能
    chroot_list_file=/etc/vsftpd.chroot_list //列在裡面的使用者,可離開家目錄

  • 根據上面的回覆
    有提到說修改 /etc/passwd 可以指定使用者的家目錄
    設定是正常的
    但是如果這時候我又開放chroot_local_user
    會變成使用者會在/home裡面
    不會在我指定的目錄裡面

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar