*

【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書

公開日: : 最終更新日:2016/11/30 how to, ウェブ・ネット・PC(パソコン), サーバ・プログラム

外注先にサイトの作成やシステムの構築などを依頼する場合に、特定のディレクトリ(フォルダ)以外にアクセスさせたくない、という状況良く出てきます。

そんな時の覚書です。

実施した環境

以下がボクの場合の環境ですので、みなさんそれぞれの環境で違うところは臨機応変に!

  • CentOS6系(64bit)
  • Apach2系
  • vsftp
  • rootでの実行(違う人はsudo使ってね)

ユーザー作成

まずはsshで入りましょう。適当にcdとかでルートディレクトリとかに戻っておいてね。

[root@www ~]cd ..
[root@www /]

まずはFTP用にユーザーを作ります。

今回はuseraddコマンドを作り使います。

※コメントで誤植ご指摘いただいたので修正

いろいろオプションがあるのですが、いろいろと書くとややこしいので。。。

今回が最初の目的の「外注先さん用に、特定のディレクトリ(フォルダ)以外にアクセスさない」ユーザーを作るということのみに絞った感じで。

今回は「testuser」というアカウントを作ってみます

[root@www /]useradd -d /var/www/html -s /sbin/nologin testuser

オプション「-d」はホームディレクトリの指定です。ここで実際にいじってほしい(ここ以外はいじってほしくない)ディレクトリを指定しましょう。

「/var/www/html」はCentOSのデフォルトのウェブサイトの公開ディレクトリになります。

つまり、webデザイナーさんに外注するときにはここ以外は見る必要無いのでここに制限しましょう!というわけです。

この次の章で、ホームディレクトリ以外にアクセス出来るユーザーを指定してあげれば、逆説的にこのユーザー(testuser)はホームディレクトリ(/var/www/html)以外にはアクセス出来なくなります。

またこのホームディレクトリが既に存在する場合は警告メッセージが出ますが、ユーザーは作成できていますのでご安心を。

ユーザー作成(補足:-s)

オプション「-s」は利用シェル指定になり、/sbin/nologinはsuできない、つまりスーパーユーザー(root)になれないアカウント(ユーザー)って意味です。

当然外注さんがrootになる必要は無いので、これはセキュリティ的にも設定しておきましょう!

この辺りあんまりボクもよく理解してないので、興味があればググってみてね(*^_^*)

ユーザーが作られたか確認

ここでユーザーがちゃんと作られているか念のため確認しておきましょう!

ユーザーの一覧を表示するコマンドが

[root@www /]cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
・
・
・
dovecot
dovenull
apache
webalizer
mysql
postgres
・
takamina
acchan
marikosama
sasiko
・
・
・
testuser

ちゃんとあることが確認できましたでしょうか?

パスワードを設定

このままだとパスワードが無いのですぐに設定しましょう。コマンドはそのままで「passwd」

[root@www /]passwd testuser
Changing password for user xpadmin.
New UNIX password:
Retype new UNIX password:

上のようにコマンド入力してEnterすると、パスワードを求められます。

New UNIX password:で入力してRetype new UNIX password:でもう一回入力してください。

その際、webサービスでよくある伏せ字「*」や「●」は出ませんのでご注意を

設定ファイル「vsftpd.conf」の編集

ユーザーが出来たら次は設定ファイルに設定を追記していきます。

ボクはコマンドでviとかがいまいち苦手なので、直接エディターとかで編集してアップロードしちゃいます。

この辺りのやり方がわからない人はこの記事を参考にね。

過去記事:【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 予備知識版

これに従って必要なツールとかを揃えてね!

で、今回いじるファイルはボクの環境だとetc/vsftpd/ディレクトリにある

  • vsftpd.conf
  • vsftpd_ipv6.conf
  • chroot_list

の3つです。ただし「vsftpd_ipv6.conf」と「vsftpd.conf」はファイル名の通りipv6かどうかって話なので、基本は同じ記述をしますし、ipv6関係ねーよ!って人は無視しといて大丈夫です。

で、実際にいじっていきましょう!

まずはvsftpd.confの最下部あたりに以下を追記してください。

・
・
・
chroot_local_user=YES
chroot_list_enable=YES

簡単に何をやっているかと言うと。。。

chroot_local_user=YESはログインした時に最初に訪れるディレクトリをホームディレクトリとするというのが一つと、それと同時にそこがそのユーザーのルートディレクトリとなり、それよりの上の階層には行けなくする、といった具合です。

つまり、今回作ったtestuserのホームディレクトリは「/var/www/html」と設定したので、それよりも上に行けなくなる。すなわちこのディレクトリ配下でのみで作業をするということです。

これで目的が達成されるわけですが、このままだと全てのユーザーがホームディレクトリしか行けなくなるので次の行のchroot_list_enable=YESでドコにでもアクセスに出来るユーザーを規定してあげましょう!というわけです。

「chroot_list」にセーフリフトを列挙する

というわけでドコにでもアクセスに出来るユーザーを規定するファイルが「chroot_list」となるわけです。

このファイルに普通に改行にて箇条書きしていきます。

どれにしたらいいか迷っちゃう場合は、前の章で紹介した

[root@www /]cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
・
・
・
dovecot
dovenull
apache
webalizer
mysql
postgres
・
takamina
acchan
marikosama
sasiko
・
・
・
testuser

ユーザー一覧をもう一回見てみて、自分で作った覚えの無いやつや、最悪今までは全て許可してたわけだもんで、今回新たに作ったtestuser以外を全部許可しても取り敢えずはよしとしていいでしょう。

※のちのちはちゃんと判断してね(^_^;)

で、こんなかんじでセーフリフトを「chroot_list」に書き出ししました。

root
bin
daemon
adm
lp
・
・
・
dovecot
dovenull
apache
webalizer
mysql
postgres
・
takamina
acchan
marikosama
sasiko
・
・
・

vsftpの再起動

最後にvsftpを再起動したら、これまで書き換えた設定が反映されます。

[root@www /]/sbin/service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
Starting vsftpd for vsftpd_ipv6:                           [  OK  ]

これで実際にtestuserでFTPに入ってみて、指定したホームディレクトリ「/var/www/html」にしか入れなければ大成功です!

では、よきFTPライフを(*^_^*)

【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)
沓名 亮典 平山 智恵
技術評論社
売り上げランキング: 29,388
はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)
デージーネット
秀和システム
売り上げランキング: 38,550

関連記事

【PHP】スマホ対応 メールフォーム設置 PEARを使ってgmailのsmtpサーバで送信する(ダウンロード可能)

メールフォーム(お問い合わせフォーム)をサイトに設置したいというのはよくあります。 で、フォー

記事を読む

【MVNO】auからMNP(モバイルナンバーポータビリティ)で今話題の格安sim(YAMADA sim)に乗り換えた

前の記事からの続きです。 【simフリー端末】asus「ZenFone 5 (A500KL)」

記事を読む

【Chromebook】ASUS製 Flip C100PA-RK3288 タッチパネル/10.1インチ 開封の儀

こんな自分の物欲の言い訳のためだけの記事を書いてですね。 「いま、IS01を想う。」に想う。。

記事を読む

Ktai Styleのテスト

Ktai StyleというWordPressのプラグインの動作テストです。 画像も入れてみる。

記事を読む

会社を作ったら郵便局に集荷してもらったり銀行引き落とししてもらえるようになろう!

おすすめのサービス 01 おすすめのサービス 02 これの続きっぽい感じ。

記事を読む

愛車 エブリー

20年戦士のオンボロ愛車をパワーアップ(スズキ・エブリーにNARDI取り付け)

少し前にカーステを取り替えた愛車の青春カー! ※青春カーの命名はN君です。

記事を読む

【google apps】バリュードメイン(value domain)のDNS設定覚書

タイトルそのまま mx ASPMX.L.GOOGLE.COM. 10 mx ALT1.A

記事を読む

Amazonの神対応に触れて~月曜始まり縦6行カレンダーはおすすめよ~

おじいちゃんに囲碁の本が欲しいって言われたからアマゾンで買うねって言ったら「そんな遠くまで行かなくて

記事を読む

【PHP】曜日と時間を検出して、いつまでに対応するかを表示する

営業時間中であれば、お問合わせいただいてから何分以内に対応しますよという文句を自動で表示したい。

記事を読む

【WordPress】プラグインBackWPupを3.1.2にアプデしたらDropboxに保存するときにERROR: Dropbox API: (59) ってエラーが出た時の対処法

バックアップと親孝行は後悔した時には遅いので出来るうちにしておけ! という名言がないとかないと

記事を読む

Comment

  1. […] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]

  2. 匿名 より:

    すごい、役に立ちました。ありがとうございます。
    1点、

    誤)
    今回はuseraddコマンドを作ります。
    正)
    今回はuseraddコマンドを使います。

    な気がしました。
    自分のようなど素人にとっては、混乱を誘うものだったりしたので・・・。

  3. […] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]

FTPユーザ作成 | jnome へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • 高橋拓郎歳)
    愛知県知多市生まれ。
    大学在学中に個人で始めた事業を、大学院中退後法人化(法人化のために中退が正しいかも)。
    簡単にコンタクトとれるのでt@takuro.infoまで何か御用があればなんなりと。
    ブログの感想やご意見も大歓迎です!
no image
確定申告がなかなかできないやつは甘え~僕みたいな貧乏人は1分1秒でも早くやるんだわ~

確定申告の時期ですね。 で、決まってこの時期になると、 確

人生はサウナ理論~結婚するあなたへ~

人生はサウナ理論。 というのを、敬愛するさんちゃんの名言「生きて

e-taxでの確定申告のもにょもにょ(noteからの転載)

この記事は2016年にnoteに投稿した記事の転載です。 ちょう

【感想】Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』 オクレさんもはや本人でしょ??

Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』

【javaScript】2017年版 法人税実効税率 シミュレーション 自動計算機(コードも置いとくね)

今日は4/3だからこれは嘘じゃないよ!! 法人税実効税率

→もっと見る

PAGE TOP ↑