*

【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

関連記事

【訴状雛形(ワード)あり】少額訴訟のすゝめ 「少額訴訟の訴状テンプレート(ダウンロード)」~裁判と仲良しになろう~

お金が払ってもらえない時どうする? フリーランスとして活動されているウェブ屋さんや、ス

記事を読む

【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 いざ!版

これの続き では、いよいよ設定です。 まず設定するファイルは一個だけ

記事を読む

注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 3/3

注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 1/3 注文住宅(マイホ

記事を読む

【googleガジェット】自分のサイトのアクセスのページとかに自宅からの交通費とかを簡単に調べられるやつを設置 1/2~背景~

googleガジェットという便利なもんがあります。 ガジェットというとWindowsとかのデス

記事を読む

【LINEbot】LINEbotが作れるからphpで作ってみたの巻 ~さくらの共有SSLでも動くよ~

BOT API Trial Accountってのが、公開されたので、LINEbotを正式に作れるよう

記事を読む

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

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

記事を読む

iPhone5水没 エクスプレス交換サービスで秒速で4,400円(税込)で新品に変わる~AppleCareにより~

今日も元気だ!お酒が旨い。 というわけで尿路結石の激痛で死にかけたのはどこ吹く風と暴飲暴食をし

記事を読む

注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 1/3

注文住宅紹介サービス「スーモカウンター」とは? 現在注文住宅を建てようと計画中です。 貧

記事を読む

追尾メニューのAdSense削除の件

このサイトへのお問い合わせで、以下のような内容のご指摘を頂きました。 サイドメニューの追尾広告

記事を読む

【覚書】 WordPress 301 リダイレクト URL変更 htaccess 下層ページ そのまま

このブログのURLを http://www.takahashi-takuro.com か

記事を読む

Comment

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

  2. 匿名 より:

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

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

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

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

Message

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

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

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

  • 高橋拓郎歳)
    愛知県知多市生まれ。
    大学在学中に個人で始めた事業を、大学院中退後法人化(法人化のために中退が正しいかも)。
    簡単にコンタクトとれるのでt@takuro.infoまで何か御用があればなんなりと。
    ブログの感想やご意見も大歓迎です!
人生はサウナ理論~結婚するあなたへ~

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

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

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

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

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

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

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

【ユーザー車検】軽トラを無料でGETしたけど車検代が無いから初の軽自動車ユーザー車検に挑戦!

青春カーと悲しい別れ どうも。貧乏が板に付いてきて久しい僕で

→もっと見る

PAGE TOP ↑