Neo 's Blog

Neo 's Blog

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


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

chroot_local_user=YES

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

13 Responses so far.

  1. jaceju 說道:

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

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

    請 Neo 大賜教。

  2. Neo 說道:

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

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

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

  3. 好手 說道:

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

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

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

    這兩句差別在哪啊??

  4. IcySora 說道:

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

    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相反的值.

    不知是不是這個意思...

  5. Neo 說道:

    IcySora:

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

  6. Vamco Jen 說道:

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

  7. Neo 說道:

    Vamco:

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

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

  8. Eliot 說道:

    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名單裡的人會被鎖在家目錄,其他人不會。

  9. JC 說道:

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

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

  10. Neo 說道:

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

  11. midas 說道:

    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除外.

  12. 阿旭 說道:

    不讓某帳號離開家目錄
    修改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 //列在裡面的使用者,可離開家目錄

  13. 生蛋 說道:

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


搜尋

分類

歷史文章

贊助