一般來說root用的主目錄在/下,自己建的使用者主目錄,預設是在/home/使用者名稱下。如果你需要修改使用者的預設主目錄,可以在/etc/passwd裡找到要修改的使用者那一行,修改掉即可。那麼當你修改完,使用ftp本地登入時,會報500 oops: cannot change directory錯誤,那麼如何順利實現修改使用者主目錄和在ftp裡鎖定使用者上傳目錄呢,下面是乙個實驗和驗證的過程。
1、建立test使用者
2、在/etc/passwd裡修改使用者主目錄
/etc/passwd檔案裡的使用者格式說明
登入名:加密口令:數字使用者id:數字組id:注釋字段:起始目錄:shell程式
test:x:503:503::/home/test:/bin/bash將此直接改為下面的樣式
test:x:503:503::/data/comm:/bin/bash
用此方法修改了使用者預設主目錄後,會出現某些異常,如:bash環境異常,在這裡需要將使用者原主目錄下的隱藏檔案拷貝到更改後的主目錄裡。
#cp -a /原主目錄/. /目標目錄
[root@localhost /]# su - test
-bash-3.2$ pwd
/data/comm
-bash-3.2$ exit
logout
3、ftp本地登入
[root@localhost data]# ftp localhost
connected to localhost.localdomain.
220 (vsftpd 2.0.5)
name (localhost:root): test
331 please specify the password.
password:
500 oops: cannot change directory:/data/comm
login failed.
ftp> quit
3、許可權修改
[root@localhost /]# chown root.test /data/comm/
[root@localhost /]# chmod 744 /data/comm/
4、修改ftp配置檔案
[root@localhost /]# vi /etc/vsftpd/vsftpd.conf
local_umask=007 #使用者的許可權
chroot_list_enable=yes //如果希望使用者登入後不能切換到自己目錄以外的其它目錄,需要設定該項來鎖定使用者目錄
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=yes #設定userlist_enable=yes,那麼只允許/etc/vsftpd/user_list中列出的使用者具有該功能
userlist_deny=no
userlist_file=/etc/vsftpd/user_list
~"/etc/vsftpd/vsftpd.conf" 147l, 5079c written
4、設定完重啟ftp服務
[root@localhost /]# service vsftpd restart
關閉 vsftpd:[確定]
為 vsftpd 啟動 vsftpd:[確定]
再試[root@localhost /]# ftp localhost
connected to localhost.localdomain.
220 (vsftpd 2.0.5)
name (localhost:root): test
331 please specify the password.
password:
500 oops: cannot change directory:/data/comm
login failed.
ftp> quit
還是報錯誤,這個時候你要考慮iptables和selinux的限制了。
5、可以直接關閉iptables和selinux,如果是不能關則需要做如下調整
在iptable裡開放ftp服務,允許21埠通行。
針對selinux可以使用這句
[root@localhost test]# setsebool ftpd_disable_trans 1 #關閉selinux對ftp的保護
[root@localhost test]# service vsftpd restart
然後再試
[root@localhost test]# ftp localhost
connected to localhost.localdomain.
220 (vsftpd 2.0.5)
name (localhost:root): test
331 please specify the password.
password:
230 login successful.
remote system type is unix.
using binary mode to transfer files.
ftp> pwd
257 "/" #在這裡顯示的是根,實際目錄已限制在/data/comm
ftp> bye
6、上傳檔案試試,已經鎖定了使用者修改後的主目錄。
[root@localhost test]# cd /data/comm
[root@localhost comm]# ls -lr
總計 6
-rwx-r---r--- 1 test test 30623 03-08 12:36 crond.txt
linux修改使用者主目錄的方法
第一 修改 etc passwd檔案 第二 usermod命令 詳細說明如下 第一種方法 vi etc passwd 找到要修改的使用者那幾行,修改掉即可。此法很暴力,建議慎用。etc passwd檔案格式 登入名 加密口令 數字使用者id 數字組id 注釋字段 起始目錄 shell程式 用此方法修...
linux下建立使用者並且限定使用者主目錄
建立乙個 使用者jc 這個使用者只能在 home jc上面增加刪除 檔案,jc不能在其他 目錄加減檔案 useradd d home jc m jc root b etc passwd jc chown jc r home jc su jc 就ok拉 linux下建立使用者 一 linux下建立使用...
linux下建立使用者並且限定使用者主目錄
建立乙個 使用者jc 這個使用者只能在 home jc上面增加刪除 檔案,jc不能在其他 目錄加減檔案 useradd d home jc m jc root b etc passwd jc chown jc r home jc su jc 就ok拉 linux下建立使用者 一 linux下建立使用...