ファイル権限の理解(chmod、chown)
Linuxのファイル権限とデータを保護する仕組みを学び、'chmod'と'chown'を使って権限を変更する方法を身につけます。
「ファイル権限の理解(chmod、chown)」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
ファイルのパーミッションとは
ようこそ。Linuxのファイルパーミッションとは、誰がファイルやディレクトリにアクセスし、変更できるかを制御するセキュリティ設定です。データを保護し、システムの安定性を保つうえで重要です。
ファイルの前に立つデジタルな用心棒のようなものだと考えてください。誰を中に入れるか、入った人に何を許可するかを決めます。
読み取り、書き込み、実行(rwx)
パーミッションには、基本的に次の3種類があります。
- 読み取り(r): ファイルの内容を表示したり、ディレクトリの内容を一覧表示したりできます。
- 書き込み(w): ファイルを変更または削除したり、ディレクトリ内でファイルを作成または削除したりできます。
- 実行(x): ファイルがスクリプトやプログラムの場合に実行したり、ディレクトリに入ったりできます。
ユーザー、グループ、その他(ugo)
これらのパーミッションは、次の3つのユーザーカテゴリに適用されます。
- ユーザー(u): ファイルまたはディレクトリの所有者です。
- グループ(g): ファイルのプライマリグループに所属するユーザーです。
- その他(o): システム上のそれ以外のすべてのユーザーです。
- ユーザー、グループ、その他のすべてを表す「a」が使われることもあります。
ls -lでパーミッションを確認する
ls -lコマンドを使うと、ファイルのパーミッションを確認できます。出力を分解して見てみましょう。
-rwxr-xr-- 1 user group 1024 Jan 1 10:00 myfile.txt
- 最初の文字(
-)はファイルの種類を示します(通常のファイルは-、ディレクトリはdです)。 - 次の9文字(
rwxr-xr--)はパーミッションを表します。
ls -l important_doc.txtパーミッション文字列を読み解く
9つのパーミッション文字は、3文字ずつ3つの組に分かれています。
- 1組目(rwx): ユーザー(所有者)のパーミッションです。
- 2組目(r-x): グループのパーミッションです。
- 3組目(r--): その他のパーミッションです。
ハイフン(-)は、そのカテゴリに対するパーミッションが付与されていないことを意味します。
chmodでパーミッションを変更する
chmodコマンド(change mode)は、ファイルやディレクトリのパーミッションを変更するために使います。chmodには主に2つの使い方があります。
- シンボリックモード: 文字と記号を使います(例:
u+x)。 - 8進数(数値)モード: 数字を使います(例:
755)。
chmod: シンボリックモードの実例
シンボリックモードは直感的に使えます。カテゴリ(u、g、o、a)、操作(追加する+、削除する-、正確に設定する=)、パーミッション(r、w、x)を指定します。
chmod u+x myscript.sh: 所有者に実行パーミッションを追加します。chmod g-w myfile.txt: グループの書き込みパーミッションを削除します。chmod o=r-x mydir: その他には読み取りと実行だけを設定し、書き込みを削除します。
echo '#!/bin/bash\necho Hello' > script.sh
chmod u+x script.sh
ls -l script.shchmod: 8進数モードを理解する
8進数モードでは、数字でパーミッションを表します。各パーミッションには次の値が割り当てられています。
- 読み取り(r): 4
- 書き込み(w): 2
- 実行(x): 1
各カテゴリ(ユーザー、グループ、その他)について、これらの値を合計します。たとえば、rwxは4+2+1=7、r-xは4+0+1=5です。
chmod: 8進数モードの例
chmodには3桁の数字を指定し、それぞれユーザー、グループ、その他のパーミッションを表します。
chmod 755 mydir: ユーザーにはrwx(7)、グループにはr-x(5)、その他にはr-x(5)が付与されます。ディレクトリでよく使われます。chmod 644 myfile.txt: ユーザーにはrw-(6)、グループにはr--(4)、その他にはr--(4)が付与されます。ファイルでよく使われます。
touch report.txt
chmod 644 report.txt
ls -l report.txtchownで所有権を変更する
chownコマンド(change owner)は、ファイルまたはディレクトリのユーザー所有者を変更します。通常、このコマンドにはスーパーユーザー(root)の権限が必要です。
chown newuser myfile.txt
同時にグループ所有者も変更できます。
chown newuser:newgroup myfile.txt
touch testfile.txt
# sudo chown newuser testfile.txt
ls -l testfile.txtパーミッションチャレンジ
private_note.txtというファイルがあります。パーミッションを次のように設定したいとします。
- 所有者は読み取りと書き込みができる。
- グループは読み取りだけができる。
- その他には一切のパーミッションを与えない。
これを実現するには、次のどのコマンドを使えばよいでしょうか。
復習と次のステップ
よくできました。Linuxのファイルパーミッションの基本を身につけました。
- 読み取り、書き込み、実行のパーミッションを理解しました。
- ユーザー、グループ、その他のカテゴリについて学びました。
ls -lを使ってパーミッションを確認しました。chmodのシンボリックモードと8進数モードを使ってパーミッションを変更しました。chownを使ってファイルの所有権を変更する方法を学びました。
ファイルを保護することは、Linuxで重要なスキルです。次は、ファイルやパターンの検索方法を学びます。
よくある質問
「ファイル権限の理解(chmod、chown)」レッスンは無料ですか?
はい。「ファイル権限の理解(chmod、chown)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「ファイル権限の理解(chmod、chown)」で何を学びますか?
Linuxのファイル権限とデータを保護する仕組みを学び、'chmod'と'chown'を使って権限を変更する方法を身につけます。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ファイル権限の理解(chmod、chown)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ファイル内容の表示(cat、less、head、tail)
- ファイル権限の理解(chmod、chown)
- ファイルの検索(find、grep)
- リンクの作成:ハードリンクとシンボリックリンク