為了安全起見,在搭建ftp伺服器的時候會限制使用者的登入,那些使用者我讓他訪問,那些不讓訪問,ftp伺服器提供了兩個配置檔案:
/etc/vsftpd/user_list // 許可哪些使用者可以訪問
/etc/vsftpd/ftpusers // 不允許哪些使用者訪問
我這裡建立了三個使用者用於測試
[root@localhost vsftpd]# useradd ftptest
[root@localhost vsftpd]# useradd ftpuser
[root@localhost vsftpd]# useradd ftpname
首先我們測試許可ftptest使用者
登入的時候出現乙個問題:
[root@localhost ~]# ftp 192.168.219.129
ftp connect 沒有主機的路由
>ftp
訪問被拒絕了,首先想到是防火牆(iptables)的原因,在ftp伺服器上檢視防火牆狀態發現防火牆是開的,停了再次連ftp就沒問題了
[root@localhost vsftpd]# firewall-cmd --state
running
[root@localhost vsftpd]# systemctl stop firewalld.service
[root@localhost vsftpd]# firewall-cmd --state
not running
在沒有許可ftptest使用者前連線被拒絕了
[root@localhost ~]# ftp 192.168.219.129
connected to 192.168.219.129 (192.168.219.129).
220 (vsftpd 3.0.2)
name (192.168.219.129:root): ftptest
530 permission denied.
login failed.
現在許可一下看看,在/etc/vsftpd/user_list 裡面加入ftptest(注意:乙個使用者單獨佔一行)
這是報錯:500 oops: vsftpd: refusing to run with writable root inside chroot()
解決辦法:用命令chmod a-w /home/ftptest去除使用者主目錄的寫許可權,注意把目錄替換成自己的。或者你可以在vsftpd的配置檔案中增加下面的內容:allow_writeable_chroot=yes
再次登入測試,這時登入ok(其他使用者按照這一步驟操作即可)
[root@localhost ~]# ftp 192.168.219.129
connected to 192.168.219.129 (192.168.219.129).
220 (vsftpd 3.0.2)
name (192.168.219.129:root): ftptest
331 please specify the password.
password:
230 login successful.
remote system type is unix.
using binary mode to transfer files.
ftp>
設定ftp的根目錄
正常情況下ftp和sftp預設的根目錄是在登入用的家目錄(/home/ftpuser)下,這樣的話會有乙個問題,當我們用不同的使用者登入的時候,他進的ftp目錄不一樣,例:
為了方便測試我們在不用的使用者根目錄下新建標識檔案:
[root@localhost home]# touch /home/ftpuser/ftpuser.txt
[root@localhost home]# touch /home/ftpname/ftpname.txt
首先用ftpuser使用者登入ftp[root@localhost ~]# ftp 192.168.219.129
connected to 192.168.219.129 (192.168.219.129).
220 (vsftpd 3.0.2)
name (192.168.219.129:root): ftpuser
331 please specify the password.
password:
230 login successful.
remote system type is unix.
using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 entering passive mode (192,168,219,129,194,109).
150 here comes the directory listing.
-rw-r--r-- 1 0 0 0 oct 08 16:12 ftpuser.txt
226 directory send ok.
用ftpname 使用者登入ftp
[root@localhost ~]# ftp 192.168.219.129
connected to 192.168.219.129 (192.168.219.129).
220 (vsftpd 3.0.2)
name (192.168.219.129:root): ftpname
331 please specify the password.
password:
230 login successful.
remote system type is unix.
using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 entering passive mode (192,168,219,129,118,21).
150 here comes the directory listing.
-rw-r--r-- 1 0 0 0 oct 08 16:11 ftpname.txt
226 directory send ok.
像上面的情況,不用的使用者登入不通的ftp,他會進入各自的家目錄,如果想要不同的使用者進入同一目錄可以參照下面的設定:
local_root=/var/www/ftp/ (自己指定的ftp根目錄)
這時候需要注意一點根目錄的許可權是drwxr-xr-x.,這時候ftp是沒有寫入許可權的,需要寫入許可權可以給他分配成777(注意:要是ftp和sftp的根目錄保持一致的話就不能給跟目錄分配成777,可以在根目錄下新建乙個資料夾再分配777的許可權)
ftp> mkdir test
550 create directory operation failed.
設定sftp的根目錄
開啟/etc/ssh/sshd_config檔案修改配置
#subsystem sftp /usr/libexec/openssh/sftp-server
subsystem sftp internal-sftp
在檔案結尾加上下面配置即可
match user ftpuser
chrootdirectory /var/www/ftp/
forcecommand internal-sftp
重啟sshd驗證
service sshd restart
為了方便區分,我在設定的ftp根目錄下新建test檔案
touch /var/www/ftp/test
登入sftp驗證
[root@localhost ~]# sftp [email protected]
[email protected]'s password:
connected to 192.168.219.129.
sftp> ls -l
-rw-r--r-- 1 0 0 0 oct 9 05:38 test
登入ftp驗證
[root@localhost ~]# ftp 192.168.219.129
connected to 192.168.219.129 (192.168.219.129).
220 (vsftpd 3.0.2)
name (192.168.219.129:root): ftpuser
331 please specify the password.
password:
230 login successful.
remote system type is unix.
using binary mode to transfer files.
ftp> ls
227 entering passive mode (192,168,219,129,162,143).
150 here comes the directory listing.
-rw-r--r-- 1 0 0 0 oct 09 13:38 test
226 directory send ok.
以上步驟都是自己手動實驗做的,文采不好,寫的不好,還望各位客官多提意見 遠端登入Linux伺服器
一 1.root localhost root 第乙個root是使用者名稱,第二個 root 是使用者的主目錄,登入後預設所在的目錄 home directory 普通使用者只有在自己的主目錄下才有大量的許可權,root使用者擁有所有的許可權。2.linux系統的登入方式 本地登入 console ...
ssh遠端登入伺服器
首先準備好openssh或xshell,客戶端的ssh連線方式為 ip 埠號 預設為22 伺服器端要做的準備工作是確保開啟sshd,etc init.d shhd restrat,在伺服器安裝時,可以勾選初始安裝諸如ssh server之類的元件。如未安裝,可以使用apt install ssh s...
登入遠端SQL伺服器
一 看ping 伺服器ip能否ping通。這個實際上是看和遠端sql server 2000伺服器的物理連線是否存在。如果不行,請檢查網路,檢視配置,當然得確保遠端sql server 2000伺服器的ip拼寫正確。二 在dos或命令列下輸入telnet 伺服器ip 埠,看能否連通。如telnet ...