Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Linuxで全ユーザーがアクセスできる共有ディレクトリを作成する方法:ステップバイステップガイド

システム管理者として、Linuxサーバー上の特定のディレクトリに対して、すべてのユーザーに読み書きアクセスを許可したいケースがあるでしょう。本ガイドでは、Linuxにおいて特定のディレクトリ(共有ディレクトリ)への書き込み権限を全ユーザーに付与する方法を解説します。

これを実現するには、適切なアクセス権限を設定する必要があります。最も効果的かつ確実な方法は、そのディレクトリへの書き込み権限を持つすべてのユーザーに対して、共通のグループを割り当てることです。

ステップ1:ディレクトリと共通グループを作成する

まず、システムにまだ存在しない場合は、ディレクトリと共通グループを作成します。以下のコマンドを実行してください。

$ sudo mkdir -p /var/www/reports/
$ sudo groupadd project

ステップ2:ユーザーをグループに追加する

次に、ディレクトリ /var/www/reports/ への書き込み権限を持たせたい既存ユーザーを、projectグループに追加します。

$ sudo usermod -a -G project tecmint

上記コマンドで使用しているフラグと引数は以下の通りです。

  1. -a – ユーザーを補助グループに追加します。
  2. -G – グループ名を指定します。
  3. project – グループ名です。
  4. tecmint – 既存のユーザー名です。

ステップ3:ディレクトリに適切な権限を設定する

続いて、ディレクトリに適切な権限を設定します。オプション -R を付けると、サブディレクトリに対しても再帰的に操作が適用されます。

$ sudo chgrp -R project /var/www/reports/
$ sudo chmod -R 2775 /var/www/reports/

上記 chmod コマンドにおける権限 2775 の意味を詳しく見ていきましょう。

  1. 2setGID ビットを有効にします。これにより、新しく作成されたファイルはディレクトリと同じグループを継承し、新しく作成されたサブディレクトリは親ディレクトリのsetGIDビットを継承します。
  2. 7 – 所有者に rwx(読み取り・書き込み・実行)権限を付与します。
  3. 7 – グループに rwx 権限を付与します。
  4. 5 – その他のユーザーに rx(読み取り・実行)権限を付与します。

ステップ4:ユーザーを追加してサブディレクトリを作成する

さらにシステムユーザーを作成し、以下のようにディレクトリのグループに追加することもできます。

$ sudo useradd -m -c "Aaron Kili" -s/bin/bash -G project aaronkilik
$ sudo useradd -m -c "John Doo" -s/bin/bash -G project john
$ sudo useradd -m -c "Ravi Saive" -s/bin/bash -G project ravi

続いて、上記の新しいユーザーがプロジェクトレポートを保存するためのサブディレクトリを作成します。

$ sudo mkdir -p /var/www/reports/aaronkilik_reports
$ sudo mkdir -p /var/www/reports/johndoo_reports
$ sudo mkdir -p /var/www/reports/ravi_reports

これで、ファイルやフォルダを作成し、同じグループに属する他のユーザーと共有できるようになりました。

以上で完了です!本チュートリアルでは、特定のディレクトリへの書き込み権限を全ユーザーに付与する方法を解説しました。Linuxのユーザー/グループについてさらに理解を深めたい方は、「ユーザー/グループのファイル権限と属性の管理方法」に関する記事もあわせてご覧ください。

本記事に関するご意見やフィードバックがございましたら、下記のフォームからぜひお聞かせください。

Linuxスキルを次のレベルへ

プレミアムメンバーになると、すべてのコース、認定資格対策トラック、充実したハンズオン型Linuxコンテンツライブラリにフルアクセスできます。新しいコースも毎月追加されています。

特典内容

  • すべてのプレミアム記事を広告なしで閲覧可能
  • 全コースへのアクセス:Linux入門、AI for Linux、Bashスクリプティング、Ubuntuハンドブック、Golangなど
  • Linux認定資格(RHCSA、RHCE、LFCS、LFCA)対策コンテンツへのアクセス
  • 新コースの公開時すぐに利用可能
  • 週刊ニュースレターの購読
  • コメント欄での優先サポート
  • プライベートTelegramコミュニティへの参加
  • Linuxコミュニティとの交流
  1. Linuxシェルスクリプトで学ぶ数学処理 – 第4回:四則演算から素数判定まで

    今回は、数学と数値計算の視点からシェルスクリプトを学んでいきます。前回の記事ではやや複雑なスクリプト(簡易電卓)を紹介しましたが、読者にとっては少し理解しづらかったかもしれません。そこで今回は、内容を小さな単位に分割し、シェルスクリプトのもうひとつの実用的な側面を段階的に習得できるよう構成しました。 これまでの連載記事 この記事までに公開されているシェルスクリプト入門シリーズは以下の3本です。まだお読みでない方は、先に目を通しておくと理解がより深まります。 Linuxシェルと基本のシェルスクリプトを理解する – 第1回 シェルプログラミングが学べる5つのシェルスクリプト – 第2回 Linu

  2. 【Linux入門】systemctlの使い方:サービスの一覧表示・ステータス確認・制御のコツ

    このガイドでは、systemctlコマンドを使ってサービスを一覧表示し、ステータスを確認する方法を詳しく解説します。あわせて、サービスの制御や有効化・無効化など、systemctlのその他の実践的な活用方法についてもご紹介します。 従来のinitスクリプト方式から移行してくると、systemctlはまさに「清々しい」存在です。賛否両論の議論は数多く耳にしましたし、私自身も何度か意見が変わりました。しかし、日々の業務で使い続けた結果、今では完全にsystemctl派です。コマンドの文法は直感的で自然に感じられますし、日常的な運用面でも非常に扱いやすいツールです。私はこの変化を受け入れましたし、古