2018/04/16

Linux PROFTP 以XAMPP為例 與 使用者的創建

使用Proftp 前,需了解一下在Linux中的XAMPP 用的是proftpd,不同於Windows的FTP SERVER是在Filezilla server 等 FTP SERVER中做設置。

而是在Linux的系統帳戶裡面配置的因此通常在使用前需創建新的系統使用者

系統中的使用者都有其歸屬的群組,就像windows的帳戶也分成某些群組一樣

通常我們會先創立一個群組 僅供 FTP使用者使用

使用以下指令創建新的群組 ,必要時加上sudo
groupadd <groupname>
ex:  groupadd ftpusers


然後在這個群組中新增一個使用者:

sudo useradd -g <主群組>  -m -s <shell path> <account>
sudo useradd -g ftpusers -m -s /bin/false ftpuser1

-g表示帳戶所屬的主要群組
-m表示要建立使用者的根目錄
-s為設定使用者登入時所用的shell,/bin/false 這個設定可以讓使用者不需要具有『能夠執行的 shell 』,但仍能使用ftp

詳細 useradd 參數 請自行Google

創建好之後我們就要為該帳戶設置一個密碼了:

使用passwd <account> 來設定密碼
passwd <account>
passwd ftpuser1

執行該命令後按提示輸入兩次密碼即可完成帳戶的密碼設置。

FTP帳戶的添加算是完成了
<p.s>刪除帳戶的指令是userdel,修改帳戶的指令是usermod命令
帳戶的相關文件路徑為/ etc / passwd 中。 沒事可以去 cat 一下

以下為proftp.conf設定 @為自訂



#參數解釋
# ServerName :當使用者登入主機的時候,proftpd 會顯示在 Client 端 的 FTP 軟體的一些基本訊息啦!
# ServerType :啟動 proftpd 的方法,有兩種方式,分別是 standalone與 inetd ,假設是以 super daemon 啟動的,設定為 inetd,獨立啟動(不透過 xinetd ) 就設定為 standalone
# DefaultServer:預設的主機啊!這個項目可以設定為 on 或 off ,基本上, 除非有兩個 IP 或者是設定了虛擬主機 (virtualhost),否則這個項目都要設定為 on。
# Port :設定主機的 FTP 命令通道埠口!FTP port通常為 21 ,也可以更改,不過,這個設定只有當ServerType 為 standalone 時才有效!若為 inetd 則與 xientd 及/etc/services 有關port 設定請參考鳥哥的網站
# Umask :與建立目錄及檔案的預設屬性有關的設定,用 022 就行了
# MaxInstances:同一時間允許的連線數目,這個設定項目與 process (PID) 有關, FTP 主機中,proftpd 啟用的 process 最多能有30個,與 MaxClients 有所區別。
# User 與 Group:proftpd 預設的服務啟動者!後面接的使用者與群組必須在 /etc/passwd 與 /etc/group 裡面存在。


ServerName                      "@name"
ServerType                      @standalone || inetd   //standalone
DefaultServer                   on
Port                              21
User                             nobody
Group                           nogroup
TimesGMT                        off
# 所謂的 GMT 時間就是格林威治時間,
# 詳細的時區觀念請參考後續的NTP伺服器
# 因為要使用本地時間,所以設為 off
#nobody 是系統中權限最小的使用者

MaxInstances                    50   # 最多僅有 50 條 prftpd 的 PID
MaxClients  100  "很抱歉上線人數額滿了" # 最多允許 100 個使用者在線上
MaxClientsPerHost               5    # 同一個主機最多可以同時 5 個 FTP 連線
AllowStoreRestart               on   # 允許使用者上傳續傳,預設是 off
PassivePorts   65400  65420
# 後面接的是埠口,最小到最大的埠口共 21 個

# 其他與實體用戶較相關的設定值!
Umask                           022
RootLogin                       off  # 不許 root 登入,預設就是 off
RequireValidShell               off
# 這個設定可以讓使用者不需要具有『能夠執行的 shell 』,例如讓
# ftpuser1 這個具有 /bin/false 的使用者,依然可以使用 ftp 喔!

##DefaultRoot                     ~ ftpusers
DefaultRoot                        /home/
#  ~ 代表家目錄的意思。 DefaultRoot後面接的是『群組』
# 只要不屬於  ftpusers 這個群組的 User 可以離開自己的家目錄!

<Directory />
  AllowOverwrite                on
</Directory>
<Directory /home/ftp/public>
  <Limit WRITE>
  Denyall
  </Limit>
</Directory>

# 上面的設定中,在根目錄內的所有目錄均具有可讀寫的權力,但是在
# /home/ftp/public 這個目錄中,不論 Linux 屬性為何,使用者均無法寫入,但可以瀏覽以及下載,在我們這個設定當中, ftpusers 這個群組無法離開家目錄,至於其他可以離開家目錄的使用者,到 /home/ftp/public 當中,也不具有寫入的權限!

==============================沒測過=====================================
# 底下則是 anonymous 的設定喔!
##<Anonymous /var/ftp>
  # 底下為建立 Anonymous 在 Linux 系統下的 PID 權限擁有者!
  # 此外,使用 UserAlias 將 nogoodbird 降級為 anonymous 的帳號!
##  User                  ftp
##  Group                 ftp
##  UserAlias             anonymous ftp
#  UserAlias             nogoodbird ftp
  # 建立顯示的訊息給 anonymous 觀察用的!
##  DisplayLogin          welcome.msg
  #giveup#DisplayFirstChdir     .message
##  MaxClients            30  "匿名登入者連線數已經飽和了!"
  # 這個就重要啦!用來限制傳輸速率的吶!基本語法為:
  # TransferRate (STOR|RETR) 速度(Kbytes/s) user 使用者
  # STOR 為上傳而 RETR 為下載的意思!速度為 Kbytes/second 喔!
##  TransferRate  STOR    100  user anonymous,ftp # 單位為 KBytes/second
##  TransferRate  RETR    50   user anonymous,ftp
##  <Limit WRITE>
##    Denyall
##  </Limit>
  # 底下這個則僅與 upload 這個目錄以及其下的子目錄有關而已!
##  <Directory /var/ftp/upload/*>
##    <Limit READ>
##      Denyall
##    </Limit>
##    <Limit WRITE>
##      Allowall
##    </Limit>
##  </Directory>
##</Anonymous>
========================================================================
引用:鳥哥的Linux私房菜 Proftpd

然後 記得你的防火牆要把相關的port打開,還有如果你是躲在路由器後面 要記得NAT

沒有留言:

張貼留言