1. 程式人生 > >ubuntu下實現FTP共享與使用者自行修改密碼

ubuntu下實現FTP共享與使用者自行修改密碼

第一步先安裝 samba 用來FTP共享

1,  sudo apt-get update

2 ,sudo apt-get install samba samba-common

3, sudo apt-get install smbfs  提示錯誤 這時需要安裝一個 sudo apt-get install    cifs-utils

4, 修改 /etc/samba/smb.conf 配置後

5,sudo   smbpasswd  -a  uer  將uer 使用者新增到samb中,首先要有ure這個實際使用者

6,   sudo service  smbd  reastart    重啟 samba服務OK

如果要共享遠端訪問
/etc/ssh/sshd_config 修改該配置檔案:
PermitRootLogin without-password  
改為 
PermitRootLogin yes  

我的機器裡面缺少libpam-smbpass 

 sudo   apt-get install libpam-smbpass安裝

第二步安裝Web伺服器--Apache 

1 http://jingyan.baidu.com/article/6d704a130c8a0d28da51ca5f.html 按照安裝不要配置就行

2 設定apache支援cgi模組   首先在根目錄下建一個cgi-bin的目錄,即/var/www/cgi-bin/。cgi程式都放在這個cgi-bin的目錄中

3 /etc/apache2/sites-enabled/000-default 新增 

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script cgi
</Directory>

4  cd /mods-available " 進入該目錄,輸入 "  ls *cgi*.*  " 查詢帶cgi的檔案,可以找到 " cgid.conf ", "cgid.load ", " cgi.load ", " proxy_fcgi.load ", " proxy_scgi.load "
其中 "proxy_fcgi.load ", " proxy_scgi.load " 我們暫不用,只需要前三個  " cgid.conf ", " cgid.load ", " cgi.load "  就可以了

5 接下來,使用 " ln -s *.* *.* " 將這三個檔案軟連結到 " mods-enabled " 目錄下
ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf
ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

6  重啟Apache服務:sudo /etc/init.d/apache2 restart

第三步:安裝changepassword程式實現客戶端更改密碼,必須設定系統密碼和samba密碼同步

1、下載地址: wget  http://prdownloads.sourceforge.net/changepassword/changepassword-0.9.tar.gz

# tar -zxvf changepassword-0.9.tar.gz
# cd changepassword-0.9
2、編譯changepassword前需要安裝一個依賴包
# cd  smbencrypt/
# tar -xzvf libdes-4.04b.tar.gz
# cd des/
# make
# cp libdes.a ../
# cd ../..

3、編譯安裝changepassword
# ./configure -enable-cgidir=/var/www/cgi-bin -enable-language=Chinese -enable-smbpasswd=/etc/samba/smbpasswd  -disable-squidpasswd  -enable-logo=samba/logo.jpg

注:-enable-cgidir=...                     # 自定義apache根目錄路徑

  -enable-language=Chinese                # 設定頁面為簡體中文
  -enable-smbpasswd=/etc/samba/smbpasswd  # 自定義samba密碼的庫檔案
  (這裡smbpasswd並非修改smb使用者密碼的系統命令,請注意不要混淆)
  -disable-squidpasswd                    # 禁用squid
  -enable-logo=...# 設定web根目錄logo檔案,此處的相對路徑對應的是apache根目錄# 也就是 samba/logo.jpg對應/usr/local/apache/htdocs/samba/logo.jpg

# make && make install

按照官方的來的話這裡只要直接make,完後make install 即可,但是,有事會出現如下問題,報錯如下:
DSMBPASSWD=\"/etc/samba/smbpasswd\" -DSQUIDPASSWD=\"no\" -DLOGO=\"none\" -L./smbencrypt –ldes
/usr/bin/ld: skipping incompatible ./smbencrypt/libdes.a when searching for –ldes
/usr/bin/ld: cannot find –ldes
collect2: ld returned 1 exit status
make: *** [changepassword.cgi] Error 1

從報錯可以看到/usr/bin/ld: cannot find –ldes ,網上有不少解決辦法,實際上那都無法解決根本問題,而官方實際上也知道會遇到這個問題,於是我們只需重新編譯載入libdes即可:
cd  smbencrypt/
tar -xzvf libdes-4.04b.tar.gz
cd des/
make
cp libdes.a ../
cd ../..

這時從新make,make install即可完成安裝:

最後 reboot 虛擬機器