ubuntu設置ftp許可權
⑴ Ubuntu用VSftp搭建FTP伺服器設置教程
本文將介紹Ubuntu 用VSFTP搭建FTP伺服器,需要的朋友可以參考下1、安裝vsftpd
終端輸入sudo apt-get install vsftpd
安裝之後會在/home/下建立一個ftp目錄,訪問下可以看到一個空白內容的ftp空間。
默認設置下需要匿名用戶不可以登錄
2、設置 vsftpd.conf文件
修改之前最好先備份這個文件:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
參數意義:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件許可權,默認是077)
Connect_form_port_20=yes (啟用FTP數據埠的數據連接)*
Xferlog_enable=yes (激活上傳和下傳的日誌)
Xferlog_std_format=yes (使用標準的日誌格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD伺服器)*
功能:只能連接FTP伺服器,不能上傳和下傳
註:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項
開啟匿名FTP伺服器上傳許可權:
Anon_upload_enable=yes (匿名帳號開放上傳許可權)
Anon_mkdir_write_enable=yes (匿名帳號可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的許可權)
Anon_other_write_enable=yes (匿名帳號可以有刪除的許可權)
Anon_world_readable_only=no(開啟匿名伺服器下傳的許可權)
普通用戶FTP伺服器的連接(獨立伺服器)配置:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸後無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd伺服器,有下載上傳的許可權
註:在禁止匿名登陸的信息後匿名伺服器照樣可以登陸但不可以上傳下傳
用戶登陸限制進其它的目錄,只能進它的主目錄:
設置所有的本地用戶都執行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
限制本地用戶訪問FTP:
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
註:開啟userlist_enable=yes匿名帳號不能登陸
安全選項
Idle_session_timeout=600(秒) (用戶會話空閑後10分鍾)
Data_connection_timeout=120(秒) (將數據連接空閑2分鍾斷)
Accept_timeout=60(秒) (將客戶端空閑1分鍾後斷)
Connect_timeout=60(秒) (中斷1分鍾後又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接埠改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555埠進行數據連接)
查看誰登陸了FTP,並殺死它的進程
ps –xf |grep ftp
kill 進程號
3、配置本地組訪問的FTP
首先創建用戶組 test和FTP的主目錄
groupadd test
mkdir /tmp/test
然後創建用戶
useradd -G test –d /tmp/test –M usr1
註:G:用戶所在的組
d:表示創建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄
useradd –G test –d /tmp/test –M usr2
接著改變文件夾的屬主和許可權
chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定為usr1
chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什麼許可權都沒有
這個實驗的目的就是usr1有上傳、刪除和下載的許可權,而usr2隻有下載的許可權沒有上傳和刪除的許可權
主配置文件vsftpd.conf要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦!
4、配置獨立FTP的伺服器的非埠標准模式進行數據連接
在VSFTPD_CONF中添加Listen_port=33333
5、配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的許可權
(兩個有讀目錄的許可權,一個有瀏覽、上傳、下載的許可權,一個有瀏覽、下載、刪除和改文件名的許可權)
1>配置網卡
第一塊網卡地址是10.2.3.4 掩碼是255.255.0.0
ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
2>寫入/etc/sysconfig中(為了重起後IP地址不會丟失)
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1在其中修改內容如下
DEVICE=eth0:1
BROADCAST=211.131.4.255
HWADDR=該網卡的MAC地址
IPADDR=211.131.4.253
NETMASK=255.255.255.0
NETWORK=211.131.4.0
ONBOOT=yes
TYPE=Ethernet
wq退出
3>進入vsftpd.conf所在的文件夾cp vsftpd.conf vsftpd2.conf
修改vsftpd.conf添加以下信息
Listen_address=10.2.3.4
修改vsftpd2.conf添加以下信息
Listen_address=211.131.4.253
Ftpd_banner=this is a virtual ftp test
到此虛擬的FTP伺服器建立好了
4>建立logins.txt
vi /tmp/logins.txt
添加入下信息:
longlei------------用戶名
longlei------------密碼
zhangweibo
zhangweibo
jinhui
jinhui
lxp
lxp
格式:一個用戶名,一個密碼
5>建立訪問者的口令庫文件,然後修改其許可權
db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
6>進如/etc/pam.d/中創建
在中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
7>在/var/ftp/創建目錄並改變其屬性和它的屬主
useradd -d /var/ftp/test qiang
chmod 700 /var/ftp/test
在目錄中添加test_file測試文件
8>進入vsftpd2.conf修改其中的信息(可以是)
Listen_yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes
Guest_enable=yes----------起用虛擬用戶
Guest_username=qiang------將虛擬用戶映射為本地用戶
Listen_port=5555
Max_client=10
Max_per_ip=1
Ftpd_banner=this is a virtual server and users
Pam_service_name=ftp.vu
註:在主配置文件中給的許可權越低,在後面分用戶管理的時候對用戶的許可權劃分的空間就越大,因為主配置文件最高的限制服務先讀主配置文件,然後再讀用戶的配置文件
配置完成時候執行/etc/init.d/vsftpd restart重啟ftp伺服器即可
到此虛擬USER就建好了
9>在VSFTPD_CONF所在的目錄中創建virtaul文件目錄,並在文件目錄中創建以你用戶名命名的配置文件
Longlei zhangweibo jinhui lxp
在longlei中添加:
Anon_world_readable_only=no
在lxp中添加
Anon_world_readable_only=no
這樣此兩個用戶就有了瀏覽目錄的許可權了
在jinhui中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
此用戶就有了上傳、下載和瀏覽的許可權
在zhangweibo中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
Anon_other_write_enable=yes
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的許可權
10>修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual
重起伺服器就搞定了
VSFTPD_CONF中的所有配置信息
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件許可權,默認是077)
Connect_form_port_20=yes (啟用FTP數據埠的數據連接)*
Xferlog_enable=yes (激活上傳和下傳的日誌)
Xferlog_std_format=yes (使用標準的日誌格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD伺服器)*
Anon_upload_enable=yes (開放上傳許可權)
Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的許可權)
Anon_other_write_enable=yes (匿名帳號可以有刪除的許可權)
Anon_world_readable_only=no (放開匿名用戶瀏覽許可權)
Ascii_upload_enable=yes (啟用上傳的ASCII傳輸方式)
Ascii_download_enable=yes (啟用下載的ASCII傳輸方式)
Banner_file=/var/vsftpd_banner_file (用戶連接後歡迎信息使用的是此文件中的相關信息)
Idle_session_timeout=600(秒) (用戶會話空閑後10分鍾)
Data_connection_timeout=120(秒) (將數據連接空閑2分鍾斷)
Accept_timeout=60(秒) (將客戶端空閑1分鍾後斷)
Connect_timeout=60(秒) (中斷1分鍾後又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接埠改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555埠進行數據連接)
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸後無權刪除和修改文件)
這是一組
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list (前提是chroot_local_user=no)
這又是一組
Userlist_enable=yes (在指定的文件中的用戶不可以訪問)
Userlist_deny=yes
Userlist_file=/指定的路徑/vsftpd.user_list
又開始單的了
Banner_fail=/路徑/文件名 (連接失敗時顯示文件中的內容)
Ls_recurse_enable=no
Async_abor_enable=yes
One_process_model=yes
Listen_address=10.2.2.2 (將虛擬服務綁定到某埠)
Guest_enable=yes (虛擬用戶可以登陸)
Guest_username=所設的用戶名 (將虛擬用戶映射為本地用戶)
User_config_dir=/任意指定的路徑/為用戶策略自己所建的文件夾 (指定不同虛擬用戶配置文件的路徑)
又是一組
Chown_uploads=yes (改變上傳文件的所有者為root)
Chown_username=root
又是一組
Deny_email_enable=yes (是否允許禁止匿名用戶使用某些郵件地址)
Banned_email_file=//任意指定的路徑/xx/
又是單的
Pasv_enable=yes ( 伺服器端用被動模式)
User_config_dir=/任意指定的路徑//任意文件目錄 (指定虛擬用戶存放配置文件的路徑)
如需要使用本地用戶登陸關閉來賓用戶,必須設置如下命令:
anonymous_enable=no
guest_enable=no
local_enable=yes
write_enable=yes
local_umask=022
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list (如沒有則自己創建) (在etc/vsftpd.chroot_list 填入需要登陸的本地用戶名)
6、解決vsftpd的中文亂碼問題
先安裝源中的vsfpd,然後把所有的功能都配置完後,再解決中文亂碼問題
因為刪除源的vsftpd後它的/init.d/vsftpd與/vsftpd.conf是不會刪除的,可以為我們打好鋪墊,不然你會發現很無奈的!如果 你是直接編譯安裝,附件給出會給出我的init.d/vsftpd與vsftpd.conf文件,把他們覆蓋到/etc下吧!
開始做編譯的准備工作,准備編譯環境需要的庫包
sudo apt-get build-dep vsftpd
這里使用先安裝源里的vsftpd,然後卸載
sudo apt-get install vsftpd
apt-get remove vsftpd
下載附件並解壓包
tar -zxvf vsftpd-2.0.6
cd vsftpd-2.0.6
sudo su :使用root用戶開始編譯
make #編譯命令,如果無錯誤出現,表示成功
make install #安裝
如果安裝中出現找不到目錄的話,就建立那個缺的目錄就好了
基本上都會提示缺少/man8和/man5目錄的,建立後在重新make install
下邊就來測試下效果修改配置文件,加入
charset_filter_enable=YES #開啟字元過濾
charset_client=GB2312 #客戶端字元設置為簡體中文
好了現在把服務開啟測試下吧
sudo /etc/init.d/vsftpd restart
在win下上傳一個中文文件,看看效果吧,然後在把配置文件中關於字元的關掉,重起服務,在看吧.
⑵ 如何在ubuntu中安裝設置ftp伺服器
方法/步驟
1
首先,更新軟體源,保證源是最新的,這樣有利於下面在線通過apt-get install命令安裝ftp。
2
使用sudo apt-get install vsftp命令安裝vsftp,安裝軟體需要root許可權,我們使用sudo來暫時獲取。
3
安裝好ftp後默認是會自動創建ftp用戶的,然後我們設置ftp用戶的密碼,輸入
sudo passwd ftp,然後輸入密碼,再確認密碼。
4
創建ftp用戶的家目錄,使用sudo mkdir /home/ftp命令
5
設置ftp家目錄的許可權,我這里為方便直接使用sudo chmod 777 /home/ftp命令將許可權設置為777,當然你可以根據自己需求進行設置。
6
對/etc/vsftpd.conf配置文件進行一定的修改。使用 sudo gedit /etc/vsftpd.conf打開配置文件,如果你喜歡vi或vim編輯器也可以使用它們打開。
7
將配置文件中」anonymous_enable=YES 「改為 「anonymous_enable=NO」(是否允許匿名ftp,若不允許選NO)
取消如下配置前的注釋符號:
local_enable=YES(是否允許本地用戶登錄)
write_enable=YES(是否允許本地用戶寫的許可權)
chroot_local_user=YES(是否將所有用戶限制在主目錄)
chroot_list_enable=YES(是否啟動限制用戶的名單)
chroot_list_file=/etc/vsftpd.chroot_list(可在文件中設置多個賬號)
8
然後重啟ftp服務,使用命令sudo service vsftpd restart重啟ftp服務。
9
測試ftp,復制一些文件到/home/ftp目錄下
方法一:在瀏覽器中輸入ftp://localhost,網頁登錄。
方法二:在終端中輸入ftp localhost,然後輸入用戶名與密碼實現登錄。
10
如果登錄ftp總是出現密碼錯誤,可以將/etc/vsftpd.conf配置文件的pam_service_name=vsftpd改為pam_service_name=ftp,即可解決。
⑶ 怎樣用ubuntu14.04ftp架設文件共享伺服器
FTP伺服器的搭建,我要實現的需求是:
不允許匿名訪問,因為我的機器不想讓誰都能登錄上來,隨便獲取文件,
需要鎖定一個目錄,因為在家裡,我需要給媳婦下載一些電影 韓劇之類的東西,媳婦會來我機器下載,但是我不想讓他隨意操作我的東西。
萬一刪除我的配置文件,我就慘了(吐槽一下韓劇:媳婦問我,你都沒看過韓劇怎麼知道它不好看呢,我說:我沒吃過屎 但是知道它一定不好吃!)
另外,需要本機也能訪問,因為我要做一些關於FTP的測試。
不單獨建立FTP用戶,FTP也使用ubuntu桌面的用戶進行登錄和操作,
我還不希望FTP開始啟動。
好了 我們開始安裝,很簡單。
sudo apt-get install vsftpd
30秒內估計就能安裝完。
下面開始配置:
首先備份配置文件。
linuxidc@ubuntu:/etc/init$ cd /etc/
linuxidc@ubuntu:/etc$ sudo cp vsftpd.conf vsftpd.conf.old
接下來就是開始配置了,
咱們就針對需求來:
1. 不允許匿名訪問,因為我的機器不想讓誰都能登錄上來,隨便獲取文件,
配置如下:
23 anonymous_enable=NO
2.需要鎖定一個目錄,因為在家裡,我需要給媳婦下載一些電影 韓劇之類的東西,
媳婦會來我機器下載,但是我不想讓他隨意操作我的東西。
萬一刪除我的配置文件,我就慘了
配置如下:
152 local_root=/home/linuxidc/公共的/FTP共享文件備註:[FTP共享文件] 這個文件夾是我新建出來的
另外,需要本機也能訪問,因為我要做一些關於FTP的測試。
配置如下:
26 local_enable=YES
不單獨建立FTP用戶,FTP也使用ubuntu桌面的用戶進行登錄和操作,
配置如下:
120 #chroot_local_user=YES
121 chroot_list_enable=YES
122 # (default follows)
123 chroot_list_file=/etc/vsftpd.chroot_list
這里需要/etc/vsftpd.chroot_list 這個文件,如果沒有請新建:
sudo gedit /etc/vsftpd.chroot_list
內容如下(例如我桌面的用戶名為linuxidc):
oo
其實就是把你的用戶名寫進去
我還不希望FTP開始啟動。 一會單獨說!
貼出我的配置文件。
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to linuxidc's FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#
local_root=/home/linuxidc/公共的/FTP共享文件
現在可以重啟FTP了。
linuxidc@ubuntu:/etc$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 303
OK 看到這些 證明配置文件沒有問題,FTP啟動了
下面直接訪問FTP 看看:
linuxidc@ubuntu:/etc$ ftp 127.0.0.1
Connected to 127.0.0.1.
Welcome to linuxidc's FTP service.
Name (127.0.0.1:linuxidc): oo
Please specify the password.
Password:
OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
Service not available, remote server has closed connection
ftp>
居然報了一個500的錯誤
vsftpd: refusing to run with writable root inside chroot()
。其實這里是需要特殊說明的,原因出在這里
120 #chroot_local_user=YES
121 chroot_list_enable=YES
122 # (default follows)
123 chroot_list_file=/etc/vsftpd.chroot_list
我們用
chroot_list_enable=YES 和 chroot_list_file=/etc/vsftpd.chroot_list配合使用,使得只有在vsftpd.chroot_list中配置的用戶才能登錄FTP。
對於這要的配置有一個特殊的要求,就是vsftpd.chroot_list裡面配置的用戶,對於前面local_root配置的目錄不能有寫的許可權!
也就是/home/linuxidc/公共的/FTP共享文件 這個文件夾 對於linuxidc這個用戶不能有寫的許可權,
我們為了額操作方便可以這么做:
sudo chown -R root:root /home/linuxidc/公共的/FTP共享文件/
這樣,linuxidc這個用戶對於/home/linuxidc/公共的/FTP共享文件沒有寫許可權了,
現在重啟FTP 重新登錄看看:
linuxidc@ubuntu:/etc$ ftp 127.0.0.1
Connected to 127.0.0.1.
Welcome to linuxidc's FTP service.
Name (127.0.0.1:linuxidc): oo
Please specify the password.
Password:
Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
OK FTP 好了 可以登錄了
但是我剛才 sudo chown -R root:root /home/linuxidc/公共的/FTP共享文件/ 這個操作
還帶來了一個麻煩。就是FTP共享文件在我桌面登錄時,不能任意復制粘貼操作文件了,但是我還要必須保持linuxidc用戶對[FTP共享文件]
這個文件夾不可寫。這該怎麼辦呢?
其實很簡單,
cd /home/linuxidc/公共的/FTP共享文件
sudo mkdir FTPFILES
sudo chown -R linuxidc:oo FTPFILES
這樣 就保持了 FTP共享文件 文件夾linuxidc用戶不可寫,但oo用戶用可以在桌面登錄時任意操作文件了,只不過此時的隨意范圍在FTPFILES文件夾范圍呢了。
這樣基本FTP服務基本搭建完成了。
對了 忘記了一點。就是不讓FTP服務開機啟動。操作如下:
linuxidc@ubuntu:/etc/init$ cd /etc/init/
linuxidc@ubuntu:/etc/init$ sudo cp vsftpd.conf vsftpd.conf.old
編輯配置文件
sudo gedit /etc/init/vsftpd.conf
將#start on runlevel [2345] or net-device-up IFACE!=lo 修改為start on runlevel [345] 如下:
#start on runlevel [2345] or net-device-up IFACE!=lo
start on runlevel [345]
stop on runlevel [!2345]
這次重啟FTP 重啟系統 徹底完成。
⑷ 如何在ubuntu中安裝設置ftp伺服器
FTP伺服器是平時應用最為廣泛的服務之一。VSFTP是Very Secure
FTP的縮寫,意指非常安全的FTP服務。VSFTP功能強大,通過結合本地系統的用戶認證模塊及其多功能的配置項目,可以快速有效的搭建強大的多用戶FTP服務。
首先我們考慮搭建FTP服務需要關注的都有哪些方面?比如我們最經常關注的有:
1、如何添加FTP用戶?
2、如何臨時凍結某FTP用戶?
3、FTP用戶登入後的默認目錄?是否可以改變?
4、如何鎖定FTP用戶可訪問的目錄范圍?
5、FTP用戶可以有哪些訪問許可權?可否上傳文件?
我們將帶著這些問題來探討如何配置VSFTP以達到預定目標。
一、主要配置選項
VSFTP的主配置文件是/etc/vsftpd.conf
。由於可配置的選項實在太多,無法一一詳談,只能截取比較常用的功能配置選項來加以說明。完整說明可參考man
vsftpd.conf。
這里需要注意的是,每個配置選項都是由「配置項目名稱=配置值「所定義。在每個配置變數後,要緊跟等號,再緊跟設置的變數值。中間不允許出現空格之類的分隔符,否則導致配置錯誤,無法生效!
另外,如果需要開通上傳功能,則應注意用來登錄FTP的本地系統用戶對要操作的目錄需要具備寫許可權,否則無法上傳文件!
版本vsftpd: version 2.0.6
啟動VSFTPD:sudo /etc/init.d/vsftpd start
停止VSFTPD:sudo /etc/init.d/vsftpd stop
重啟VSFTPD:sudo /etc/init.d/vsftpd restart
以下為常用的配置選項:
1、listen=YES
若設置為YES,開啟監聽網路。
2、anonymous_enable
若設置為YES,則允許匿名用戶訪問;若設置為NO則拒絕匿名用戶訪問。
如果開啟的話,則可以通過用戶名ftp或者anonymous來訪問,密碼隨便。
3、local_enable
若設置為YES,則允許通過本地用戶帳號訪問;若設置為NO,則拒絕本地用戶帳號訪問。如果你拒絕了陌生人訪問,那麼這個必須設置為YES吧,否則誰能訪問你的FTP呢?
4、write_enable
若設置為YES,則開啟FTP全局的寫許可權;若設置為NO,則不開。
若為NO則所有FTP用戶都無法寫入,包括無法新建、修改、刪除文件、目錄等操作,也就是說用戶都沒辦法上傳文件!!
5、anon_upload_enable
若設置為YES,開啟匿名用戶的上傳許可權。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫許可權。
若設置為NO,則關閉匿名用戶的上傳許可權。
6、anon_mkdir_write_enable
若設置為YES,開啟匿名用戶新建目錄的許可權。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫許可權。
若設置為NO,則關閉匿名用戶新建目錄的許可權。
7、dirmessage_enable
若設置為YES,則可開啟目錄信息推送,也就是用戶登錄FTP後可以列出當前目錄底下的文件、目錄。 這個應該要開啟吧!
8、xferlog_enable
若設置為YES,則開啟登錄、上傳、下載等事件的日誌功能。應開啟!
9、xferlog_file=/var/log/vsftpd.log
指定默認的日誌文件,可指定為其他文件。
10、xferlog_std_format
若設置為YES,則啟用標準的ftpd日誌格式。可以不啟用。
11、connect_from_port_20
若設置為YES,則伺服器的埠設為20。
如果不想用埠20,可以另外通過ftp_data_port來指定埠號。
12、chown_uploads
若設置為YES,則匿名用戶上傳文件後系統將自動修改文件的所有者。
若要開啟,則chown_username=whoever也需指定具體的某個用戶,用來作為匿名用戶上傳文件後的所有者。
13、idle_session_timeout=600
不活動用戶的超時時間,超過這個時間則中斷連接。
14、data_connection_timeout=120
數據連接超時時間 。
15、ftpd_banner=Welcome to blah FTP
service.
FTP用戶登入時顯示的信息 。
16、local_root=/home/ftp
指定一個目錄,用做在每個本地系統用戶登錄後的默認目錄。
17、anon_root=/home/ftp
指定一個目錄,用做匿名用戶登錄後的默認目錄。
18、chroot_local_user、 chroot_list_enable、chroot_list_file
這個組合用於指示用戶可否切換到默認目錄以外的目錄。
其中,chroot_list_file默認是/etc/vsftpd.chroot_list,該文件定義一個用戶列表。
若chroot_local_user
設置為NO,chroot_list_enable設置為NO,則所有用戶都是可以切換到默認目錄以外的。
若chroot_local_user
設置為YES,chroot_list_enable設置為NO,則鎖定FTP登錄用戶只能在其默認目錄活動,不允許切換到默認目錄以外。
若chroot_local_user
設置為YES,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裡面的用戶列表都可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動。
若chroot_local_user設置為NO,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裡面的用戶列表都被限定在各自的默認目錄活動,而列表以外的用戶則可以訪問默認目錄以外的目錄。
建議設置:chroot_local_user與chroot_list_enable都設置為YES。這樣就只有chroot_list_file所指定的文件裡面的用戶列表可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動!
好處:所有人都被限制在特定的目錄裡面。如果某些特定用戶需要訪問其他目錄的許可權,只需將其用戶名寫入chroot_list_file文件就可以賦予其訪問其他目錄的許可權!
19、userlist_file、userlist_enable、userlist_deny
這個組合用於指示用戶可否訪問FTP服務。
其中,userlist_file默認是/etc/vsftpd.user_list,該文件定義一個用戶列表。
若userlist_enable設置為YES,userlist_deny設置為NO,則只有userlist_file所指定的文件裡面的用戶列表裡面的用戶可以訪問FTP。
若userlist_enable設置為YES,userlist_deny設置為YES,則userlist_file所指定的文件裡面的用戶列表裡面的用戶都被拒絕訪問FTP。
若userlist_enable設置為NO,userlist_deny設置為YES,則這個列表沒有實際用處,起不到限制的作用!因為所有用戶都可訪問FTP。
建議設置:userlist_enable與userlist_deny都設置為YES。這樣則userlist_file所指定的文件裡面的用戶列表裡面的用戶都被拒絕訪問FTP。
好處:只需將某用戶帳號加入到userlist_file所指定文件裡面的用戶列表,就可以起到暫時凍結該用戶的功能!
20、user_config_dir
指定一個目錄用於存放針對每個用戶各自的配置文件,比如用戶kkk登錄後,會以該用戶名建立一個對應的配置文件。
比如指定user_config_dir=/etc/vsftpd_user_conf,
則kkk登錄後會產生一個/etc/vsftpd_user_conf/kkk的文件,這個文件保存的配置都是針對kkk這個用戶的。可以修改這個文件而
不用擔心影響到其他用戶的配置。
二、我的VSFTP的配置方案
#首先要安裝VSFTP。源碼編譯或軟體包安裝都可以。
#以下方案實現以下功能:
#1、鎖定用戶在/home/ftp默認目錄活動,
#
並保留/etc/vsftpd.chroot_list文件裡面的用戶列表可訪問其他目錄。
#2、具備暫時凍結FTP用戶的功能,將需暫停的用戶名加入到/etc/vsftpd.usr_list即可。
#
#設置配置文件:
#復制以下文件並保存為/etc/vsftpd.conf
#新建兩文件:touch /etc/vsftpd.chroot_list
#
touch /etc/vsftpd.user_list
#新建目錄:mkdir /home/ftp
#新建群組:addgroup ftp
#修改/home/ftp屬性:chown ftp:ftp /home/ftp
#新增FTP用戶: adser --shell /bin/false --home /home/ftp
your_usr_name
#把需要開通FTP的用戶名加入到ftp群組:usermod -aG ftp your_usr_name
#注意:
#如果你的/etc/shells裡面沒有包含/bin/false,則你用上述的方法建立的用戶將法訪問#FTP,解決方法:編輯/etc/shells,加入/bin/false這行。
#
# Example config file /etc/vsftpd.conf
listen=YES
#listen_ipv6=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP
service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
anon_root=/home/ftp
local_root=/home/ftp
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=YES
三、回答前面提到的問題
1、如何添加FTP用戶?
設置local_enable為YES可以開放系統用戶訪問FTP。
在系統裡面添加用戶,將shell設置為/bin/false,並將其家目錄若設置為/home/ftp或者其他目錄。這樣就可以建立只訪問FTP而無法登錄shell環境的用戶。
注意:可以新建一個ftp組,把/home/ftp的所有者設為ftp,群組也設為ftp。然後所有新添加的FTP用戶只需加入到FTP群組就可以具有對/home/ftp的訪問許可權了。這樣也方便管理用戶量比較大的FTP系統。如:
sudo addgroup ftp #如果有了就不用添加
sudo chown ftp:ftp /home/ftp #如果改過了就不用再改
sudo adser --shell /bin/false --home /home/ftp user1
#添加用戶user1
sudo usermod -aG ftp
user1 #把用戶user1加入到ftp組
這樣便可以通過用戶名user1來訪問FTP服務了。
2、如何臨時凍結某FTP用戶?
將userlist_enable與userlist_deny都設置為YES。這樣userlist_file所指定的文件裡面的用戶列表裡面的用戶都
被拒絕訪問FTP。只需將某用戶帳號加入到userlist_file所指定文件裡面的用戶列表,就可以起到暫時凍結該用戶的功能!如需重新開通使用權
限,則只需從該文件中去掉相應的用戶名。
3、FTP用戶登入後的默認目錄?是否可以改變?
可以通過local_root、anon_root來指定相應的默認目錄。
4、如何鎖定FTP用戶可訪問的目錄范圍?
將chroot_local_user與chroot_list_enable都設置為YES。這樣就只有chroot_list_file所指定的文件
裡面的用戶列表可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動!如果某些特定用戶需要訪問其他目錄的許可權,只需將其用戶名寫
入chroot_list_file文件就可以賦予其訪問其他目錄的許可權!
5、FTP用戶可以有哪些訪問許可權?可否上傳文件?
設置write_enable可以開啟全局的寫許可權。這樣FTP用戶就可以在本地帳號管理系統允許的范圍內進行寫操作了
⑸ Linux-在Ubuntu搭建ftp伺服器
在Ubuntu 22.04上搭建FTP伺服器的具體步驟如下:
1. 首先,確保vsftpd服務已安裝並自動啟動。可通過命令"systemctl status vsftpd"檢查服務狀態。
2. 配置vsftpd伺服器,使用編輯命令"sudo nano /etc/vsftpd.conf"打開配置文件。
3. 在配置文件中,設置"anonymous_enable=YES"和"local_enable=YES"以允許匿名用戶和Ubuntu本地用戶登錄FTP伺服器。
4. 為限制FTP用戶訪問其他目錄,取消"chroot_local_user=YES"的注釋,並在文件末尾添加"chroot_local_user=no"。
5. 為允許上傳和刪除操作,取消"write_enable=YES"的注釋。
6. 設置匿名用戶的默認目錄,增加"anon_root=/home/ailsonjack/share"。
7. 在/home/ailsonjack文件夾中創建名為"share"的子文件夾,並在其中創建"ftp"子文件夾。使用命令"sudo chmod 777 /home/ailsonjack/share/ftp"改變"ftp"文件夾許可權。
8. 保存並退出配置文件編輯,使用命令"sudo systemctl restart vsftpd"使配置生效。
9. 為了確保FTP伺服器正常工作,可以暫時關閉防火牆。使用命令"sudo systemctl stop firewalld"關閉防火牆,然後使用"sudo systemctl status firewalld"檢查防火牆狀態。
至此,Ubuntu伺服器上的FTP伺服器搭建完成。測試FTP服務是否正常運行,確保匿名用戶和本地用戶能成功上傳和刪除文件。關注博主獲取更多Linux相關教程。