2016年04月01日

vsftpd3.0.2 その2

前日記載の手順でvsftp3.0.2を導入した後の設定であるが、

/etc/vsftpd.conf
をまず、
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.org
のようにバックアップして、
を下記のように変更する。

----------ここから
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
log_ftp_protocol=NO
vsftpd_log_file=/var/log/vsftpd.log
dual_log_enable=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pasv_enable=YES
-----ここまで
次に、
sudo mkdir /etc/vsftpd
sudo mkdir /etc/vsftpd/vsftpd_user_conf
sudo nano /etc/vsftpd/user_list
に、接続させたいユーザー名だけを記載したファイルを作成
ユーザーがhogeなら
hoge
と1行だけ記載する。複数のユーザーが要る場合には、改行して複数のユーザー名を記載する。
sudo nano /etc/vsftpd/chroot_list
何も書かない。しかし、ファイル自体は必要。
sudo nano /etc/vsftpd/vsftpd_user_conf/hoge
には、
local_root=/home/hoge
と1行だけ記述する。
複数のユーザーが要る場合には、同様に、ユーザー名のファイルを作成して、
同様の1行を記載する。

sudo /etc/init.d/vsftpd restart
でvsftpdを再起動して、
インストール作業用のファイルは不要なので
sudo rm -rf /usr/local/src/*

念のため
/home/hogeの
パーミションとオーナーを確認する。
cd /home
ls -la

/home/hogeの
オーナーとグループが共に
hoge
で、パーミションが
755
になっている必要がある。

FTPクライアントからこのvsftpdのftpサーバに接続して、ファイルのupload、download
ができることを確認する。

3.0.2のバージョンは快適である。



posted by bmasterna at 09:49| Comment(0) | 遠隔監視装置

vsftpdの話

Raspberry Piの中に、FTPサーバーを構築する場合、vsftpdを用いるのが一般的だ。ところが、2016/3/末時点で、
sudo apt-get install vsftpd
で導入されるバージョンは2.5.3
このバージョンは、local_rootがうまく作動しない。
例えば、hogeというユーザーが、/home/hogeをlocai_rootに指定すると、
vsftpdでhogeのアカウントでアクセスすると、/に見えるのは、実際には、/home/hogeであればいいのだが、
このような設定をすると、FTPサーバへuploadできない。というか、動作がおかしい。
/home/hoge/hoge2や/home/hoge/hoge3を作れば、hoge2やhoge3にはuploadできる。この場合でも、/home/hogeのパーミッションは500-555である必要があり、所有者は、hogeである必要がある。

3.0.2のバージョンでは、このような問題は解消しているので、3.0.2を導入するのもよい。raspberry piの場合、次の手順で導入すると簡単!
cd /usr/local/src
ls でこのディレクトリの空を確認して、
wget -N http://dinofly.com/files/linux/vsftpd_3.0.2_arm.tar.gz
パッケージを取得して、
tar zxvf vsftpd_3.0.2_arm.tar.gz
解凍すると
vsftpd_3.0.2-1_armhf.deb

vsftpd
というスクリプトが生成する。
sudo dpkg -i vsftpd_3.0.2-1_armhf.deb
でパッケージが導入される。
vsftpd
は、
sudo cp vsftpd /etc/init.d/
にコピーして、
起動用スクリプトとして使用する。

さらに、
/etc/vsftpd.conf
を設定して、
/etc/vsftpd/user_list
/etc/vsftpd/chroot_list
/etc/vsftpd/vsftpd_user_conf/hoge
の整備を行う必要がある。
きちんと設定すると、
/home/hoge が ftpクライアントからは/に見えるようになる。
2.5.3の設定で悩んでいたのが嘘のように快適にFTPサーバーが構築できる。
なお、設定ファイルの記述内容は、次のブログに記載する。

posted by bmasterna at 01:12| Comment(0) | 遠隔監視装置

2016年03月15日

wiringPiのエラー

わからないことがあるものだ。
Raspberry PiのwiringPiをupdateすると、wiringPiを使ったCをコンパイルしたプログラムがエラーとなった。
wiringPiSetup*: You must only call this once per program run. This is a fatal error. Please fix your code.
と表示する。

gpio -v
で3.32と表示するバージョンは要注意
対策は簡単で
wiringPiをインストールしたディレクトリで、
sudo ./build uninstall
cd ..
wiringPiをインストールしたディレクトリを消去
sudo -r wiringPi
最初から、インストールする
sudo git clone git://git.drogon.net/wiringPi
cd wiringPi/wiringPi
sudo nano wiringPi.c
で2058行目の
(void)wiringPiFailure (WPI_FATAL, "wiringPiSetup*: You must only call this once per program run. This is a fatal error. Please fix your code.\n") ;
を消去して、そこに
return 0;
を記述して保存。
その後、
cd ..
sudo ./build
でOK。あっさりエラーは解消した。

(参考)https://github.com/mxmxmx/terminal_tedium/wiki/trouble
posted by bmasterna at 10:48| Comment(0) | 遠隔監視装置