チーム向け Linux ファイルサーバ構築:権限設定とユーザ管理のベストプラクティス

社内や小さなチームでファイルを共有するとき、「誰がどのデータにアクセスできるのか」を明確にしないまま運用を始めてしまうケースは少なくありません。最初は人数も少なく問題になりませんが、メンバーが増えたり複数プロジェクトが並行し始めたりすると、すぐに「個人用」「プロジェクト用」「全体共有」がごちゃ混ぜになり、セキュリティや運用効率に大きな影響が出ます。

そこで本記事では、Linux サーバを用いて 個人領域・プロジェクト共有・全体共有をシンプルに切り分ける方法 を整理しました。ユーザやグループの設計から、実際のディレクトリ構成、権限設定の具体例まで、すぐに適用できる形で紹介します。

目次

  1. はじめに
  2. ディレクトリ構成の基本方針
  3. グループ設計
  4. ユーザ作成とホームディレクトリの割り当て
  5. 権限設定の実装例
  6. 運用上のポイント
  7. まとめ

1. はじめに

社内や小規模なチームでファイルを共有する場合、Linux サーバをファイルサーバとして活用するのは定番の方法です。しかし、誰がどのデータにアクセスできるのか をきちんと設計しないと、運用中に「勝手に見えてはいけないファイルが見える」「共有領域が混乱する」といった問題が起こります。

この記事では、SSH を前提とした Linux ファイルサーバの構築において、権限設定とユーザ管理のベストプラクティス を整理します。

2. ディレクトリ構成の基本方針

シンプルでわかりやすい構成を採用します。

/storage
  ├── users/        # 個人領域
  │    ├── user1/
  │    └── user2/
  ├── projects/     # プロジェクト共有領域
  │    ├── pj_alpha/
  │    └── pj_bravo/
  └── public/       # 全体共有領域
  • /storage/users/:個人専用のデータ置き場。ログイン直後のホームディレクトリにも割り当てます。
  • /storage/projects/:プロジェクトごとのグループ単位で共有。
  • /storage/public/:全員が読み取り可能な公開領域。

3. グループ設計

ユーザのアクセス権をシンプルに制御するために、次の3種類のグループを用意します。

  • allusers:全ユーザ共通のグループ
  • pj_alpha:プロジェクトαのグループ
  • pj_bravo:プロジェクトβのグループ

全員が必ず allusers に所属し、必要に応じて各プロジェクトグループに追加します。

4. ユーザ作成とホームディレクトリの割り当て

ユーザのホームディレクトリは /home ではなく /storage/users/<ユーザ名> に割り当てます。

これにより、ログイン直後から自分のデータ領域にアクセスでき、.ssh.bashrc なども通常通り扱えます。

例:

# user1 の作成
sudo mkdir -p /storage/users/user1
sudo useradd -m -d /storage/users/user1 -s /bin/bash -G allusers,pj_alpha user1
sudo passwd user1

# 権限設定
sudo chown -R user1:user1 /storage/users/user1
sudo chmod 700 /storage/users/user1

.ssh/authorized_keys もこのホーム内に作成し、公開鍵認証でログイン可能にします。

5. 権限設定の実装例

個人領域

  • ディレクトリ所有者: 各ユーザ本人
  • パーミッション: 700(本人以外アクセス不可)
sudo chown -R user1:user1 /storage/users/user1
sudo chmod 700 /storage/users/user1

プロジェクト共有領域

  • ディレクトリ所有者: root
  • グループ: プロジェクト用グループ
  • パーミッション: 770(プロジェクトメンバーと管理者のみ利用可能)
  • g+s を付与して、グループ継承を強制
sudo mkdir -p /storage/projects/pj_alpha
sudo chown root:pj_alpha /storage/projects/pj_alpha
sudo chmod 770 /storage/projects/pj_alpha
sudo chmod g+s /storage/projects/pj_alpha

全体共有領域

  • 全員が読み取り可能
  • 書き込みは管理者のみ
sudo mkdir -p /storage/public
sudo chown root:allusers /storage/public
sudo chmod 755 /storage/public

6. 運用上のポイント

  • 公開鍵認証のみ許可することでセキュリティを強化(PasswordAuthentication no を設定)。
  • プロジェクトディレクトリには chmod g+s を付け、ファイルのグループが自動的に継承されるようにする。
  • バックアップは /storage 単位で行うと管理がシンプル。
  • 将来的に容量制限(quota)が必要になったら ext4 の quota 機能や btrfs/ZFS のネイティブ機能を利用可能。

7. まとめ

  • ホームディレクトリを /storage/users/ に割り当てることで、データ管理をシンプルにできる。
  • プロジェクトごとのグループとディレクトリ権限を組み合わせれば、安全かつ効率的にデータを共有できる。
  • 公開鍵認証専用の SSH 環境にすれば、セキュリティも確保できる。

社内やチームでの運用では「最初の設計」が後々の運用コストに大きく効いてきます。この記事を参考に、シンプルで安全なファイルサーバを構築してみてください。