*

【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】メールフォーム 一度入力した内容が消えてしまう時 POST使って入力内容を保持 ~メールフォームパッケージダウンロードあり~

前に、 【PHP】スマホ対応 メールフォーム設置 PEARを使ってgmailのsmtpサーバで

記事を読む

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

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

記事を読む

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

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

記事を読む

zenbookのACアダブターを間違えて買ったので、プラグだけ買って作り直すの巻

zenbookかっちょいいですね!MacBook Airのパクリインスパイア系のウルトラブッ

記事を読む

【jQuery】Chart.jsを使って簡単にカッコイイレーダーチャートを実装するの巻

友達の結婚式のプロフィールムービーが終わって一息ついていた頃。。。 いつもお世話になっている弁

記事を読む

起業するときにおすすめのサービス【格安フリーダイヤル】 01

具体案が欲しい時ってありますよね。たまたまはてブで遊んでいるときにこんな記事を発見。 誰にでも

記事を読む

【バーチャルホスト】サブドメイン・DNSの設定覚書 概要編

サブドメインをやろうと思いました。 サブドメインをやる目的は自分のサイトがexam

記事を読む

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

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

記事を読む

google Analytics(グーグルアナリティクス)で、自分を除外したいけど、スマホだとIP変わっちゃうよ(>_<)ってときの対処方

タイトルそのまんま。 google Analytics(グーグルアナリティクス)で、自分を除外

記事を読む

【WordPress】静的htmlサイトをフルCMS化するときにURLを変えないためのパーマリンク自由自在プラグイン「Custom Permalinks」

静的htmlサイトをCMS化(WordPress化)するメリット 一家にひとつは古い静

記事を読む

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 ↑