上毛印刷株式会社

さくらのレンタルサーバのFTPでディレクトリごとにアクセス権限を設定する

さくらのレンタルサーバのFTPでディレクトリごとにアクセス権限を設定する

2023年10月12日
WEBサイト制作
  • #備忘録
  • #tips

こんにちは!
上毛印刷WEB制作担当のソーヤです。

今回は最近さくらのレンタルサーバを契約して、FTPサーバーとして使おうとした時に陥った事象と、解決策についてご紹介します!

さくらのレンタルサーバのFTP権限の落とし穴

経緯としては、これまで以前に契約した他社のレンタルサーバーのFTPでクライアントと大容量ファイルのやり取りをしていました。
10年以上前に契約したレンタルサーバーだったので、
正直、現在の他社のレンタルサーバーの月額料金と比較してみると、べらぼうに高額でした・・・

この際、コスト削減のためにFTPサーバーを乗り換えようとことになり、
安易に「さくらのレンタルサーバ」を契約、
早速、FTPユーザーのアクセス権限の設定を使用しました。
が・・・・

さくらのレンタルサーバ」は、デフォルトの管理画面ではドメインごとにしかアクセス制限をかけられない事実が発覚しました。
つまり、ユーザーごとにアクセスしてはいけないディレクトリを設定できないということです。
うわ、不便。

ディレクトリ構成

/home/⚫️⚫️FTPアカウント⚫️⚫️/www/
├printing/
├web/
├movie/
├accounting/
└sales/

例えばこんなふうにディレクトリを作成、
所属部署のFTPアカウントでログインした際、
所属していない部署のディレクトリを見ることはできないようにしたいですよね。
もしくはセキュリティ的にアクセス権限がない人に見られたくない場合ですね。

これが「さくらのレンタルサーバ」では、管理画面上では設定できないんです・・・
やるなら、部署ごとにサブドメインを取得してFTPアカウントに割り振るといった方法があります。
が、なんか一般的な方法じゃないし、煩雑になりそうなので今回は別の方法で乗り切ろうと考えました。
その別の方法とは、「.ftpaccess」で設定する方法です。

.ftpaccessの設置場所と記述方法

まず「.ftpaccess」を作成します。(不可視ファイルなので気をつけてください)

<Limit ALL>
    AllowUser ⚫️⚫️FTPアカウント⚫️⚫️
</Limit>
<Limit CWD CDUP LIST>
    AllowUser printing@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    AllowUser web@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    AllowUser movie@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    AllowUser accounting@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    AllowUser sales@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
</Limit>
<Limit WRITE>
    DenyUser printing@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    DenyUser web@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    DenyUser movie@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    DenyUser accounting@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
    DenyUser sales@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp
</Limit>

上記のように設定したいユーザーアカウントを全て記述してください。

/home/⚫️⚫️FTPアカウント⚫️⚫️/www/
├.ftpaccess ←ドキュメントルートに設置
├printing/
├web/
├movie/
├accounting/
└sales/

記述しましたら、上記のように「.ftpaccess」をドキュメントルートに設置します。

そうしたら、各ディレクトリの「.ftpaccess」を作成します。

<Limit ALL>
  AllowUser printing@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたいアカウント
  DenyUser web@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたくないアカウント
  DenyUser movie@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたくないアカウント
  DenyUser accounting@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたくないアカウント
  DenyUser sales@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたくないアカウント
</Limit>
<Limit WRITE>
  AllowUser printing@⚫️⚫️FTPアカウント⚫️⚫️.sakura.ne.jp ←権限を与えたいアカウント
</Limit>

これはprintingディレクトリの場合の例です。
上記のように、「AllowUser」で権限を与えたいアカウントを指定して、
権限を与えたくないユーザーに対して、「DenyUser」を設定しています。
printingディレクトリ以外のディレクトリも同じように記述してください。
そうしたら、各ディレクトリ内に「.ftpaccess」を設置しましょう。

/home/⚫️⚫️FTPアカウント⚫️⚫️/www/
├.ftpaccess
├printing/
│ └.ftpaccess ←サブディレクトリに設置
├web/
│ └.ftpaccess ←サブディレクトリに設置
├movie/
│ └.ftpaccess ←サブディレクトリに設置
├accounting/
│ └.ftpaccess ←サブディレクトリに設置
└sales/
   └.ftpaccess ←サブディレクトリに設置

こんな感じです。
これで権限の設定が完了です!

あ、「.ftpaccess」は設定が消えてしまうので、絶対に削除しないでくださいね。

まとめ

まさかさくらのレンタルサーバが、こんな面倒な仕様だったとは知らなかったです。
皆さんも新しいサービスを使う際は無料期間を利用して、色々試してみることをおすすめします。

◆参考記事
https://labor.ewigleere.net/2022/01/07/peculiar-sakura-lentalserver-note/

WEB制作担当ソーヤ

ソーヤ

上毛印刷WEB制作担当
前職は東証プライム企業の本社WEB受託チームにてフロントエンドエンジニアを3年経験。


この記事に対するご意見・ご感想・ご質問等ありましたら、
ぜひ下記フォームにてお送りください。

    お名前必須
    メールアドレス必須
    お問い合わせ内容必須
    PAGE TOP