1. 概要

Linuxオペレーティングシステムはマルチユーザーオペレーティングシステムです。 システム内のファイルとディレクトリにアクセスできるユーザーとグループを制御するセキュリティシステムが導入されています。

この短いチュートリアルでは、ユーザーがファイルにアクセスできるようにするための2つのツールchownchmodについて説明します。

このチュートリアルで使用されるコマンドは、 bash でテストされましたが、他のPOSIX準拠のシェルでも機能するはずです。

2. セキュリティの概念

Linuxでは、ユーザーは1つ以上のグループに属することができます。 また、ユーザーとグループの両方がファイルとディレクトリの所有者になることができます。 所有権の詳細だけでなく、各ファイルにはアクセス許可に関するメタデータがあります。

chownchmodは、ファイルとディレクトリの所有権とアクセス許可を操作するために使用するツールです。

3. 所有権とアクセス権

前述のように、ファイルメタデータには、ファイルを所有するユーザーとグループに関する情報が含まれています。また、ファイルの読み取り、書き込み、実行を許可されているに関する情報も含まれています

ls を使用して、この情報を一覧表示できます。

$ ls -l
total 20
-rw-rw-r--. 1 bob bob 16433 Oct  7 18:06 document.docx

私たちが特に関心を持っている情報には、次の2つの部分があります。

bob bob

左から右に、これはファイルdocument.docxがユーザーbobによって所有されており、その所有グループはbobとも呼ばれることを意味します。 これが可能なのは、デフォルトでは、Linuxがユーザー名を使用してユーザーごとにプライベートグループを作成するためです。

次にあります:

-rw-rw-r--

これらはアクセス許可です。 最初の文字はファイルタイプを示します。 残りの文字は、3つの文字からなる3つのグループに分かれており、それぞれ所有者、所有者グループ、およびその他すべてのユーザーのアクセス権を表します。

各グループで、最初の文字は読み取りアクセス( r )であり、次に書き込みアクセス( w )および実行権( x )が続きます。 ダッシュは、権限がオフになっていることを意味します。

したがって、システム上のすべてのユーザーに対する完全なアクセス許可は次のようになります。

-rwxrwxrwx

Linuxでは、ファイルとディレクトリは同じように扱われます。 ファイルとディレクトリのアクセス権の主な違いは、ファイルに対する x 権限がファイルの実行権限を付与し、ディレクトリ上ではファイルへの入力権限を付与することです。

4. chownで所有権を譲渡する

ファイルはユーザー間で転送できます chown。 名前 chown 「changeowner」の略語です。

document.docx の所有者を変更するには、次のコマンドを呼び出します。

chown alice document.docx

このドキュメントは現在、Aliceが所有しています。

$ ls -l
total 20
-rw-rw-r--. 1 alice bob 16433 Oct 7 18:06 document.docx

ドキュメントの所有グループはまだbobです。 chown に、グループではなく所有者を変更するように指示しただけです。 その結果、グループメンバーシップによって、アリスとボブの両方がこのドキュメントへの読み取りおよび書き込みアクセス権を持つようになりました。

グループをaliceに変更するには、次の3つのいずれかを実行できます。

所有者とグループをaliceに変更できます。

chown alice:alice document.docx

所有グループをユーザーのデフォルトグループに変更したいので、グループを省略できます。

chown alice: document.docx

または、所有グループのみを変更したいので、と呼ぶことができます。

chown :alice document.docx

そして、結果は次のようになります。

$ ls -l 
total 20 
-rw-rw-r--. 1 alice alice 16433 Oct 7 18:06 document.docx

Linuxでは、通常のユーザーとして、ファイルの所有権を他の人に譲渡することはできません。 rootとして実行するか、chownを実行する権限を持っている必要があります。 sudo を介して:

sudo chown alice:alice document.docx

5. chmodを使用したアクセス許可の変更

ファイルアクセス許可はchmodコマンドで変更できます。名前chmodは「変更モード」の略です。

chmod の呼び出しには、記号表記または8進表記の2つの方法を使用できます。

5.1. 記号表記

記号表記では、ユーザー( u )、グループ( g )、その他( o)の参照を使用して、chmodにコンマ区切りの文字列を提供します。 )。

document.docxのアクセス許可を覚えておきましょう:-rw-rw-r–

シンボリック表記を使用して、これらの同じ権限を設定できます。

chmod u=rw,g=rw,o=r document.docx

パーミッションを段階的に追加することもできます。たとえば、他のユーザーの書き込みパーミッションを追加できます。

chmod o+w document.docx

または、同様に、次のように呼び出すことで、グループの書き込みアクセス権を奪うことができます。

chmod g-w document.docx

増分変更は、指定されたグループとフラグに対してのみ機能し、他のアクセス許可はそのままにしておくことに注意してください。

参照を組み合わせて、一度に権限を設定できます。 グループやその他のユーザーがドキュメントを読み取り専用にするために、次を使用できます。

chmod go=r document.docx

すべての参照のアクセス許可を設定するための省略表記– a –もあります。 たとえば、次のようにして、すべてのユーザーとグループに対してドキュメントを読み取り専用にすることができます。

chmod a=r document.docx

5.2. 8進表記

chmod を呼び出すために広く使用されている、多くの場合短い形式は、8進表記を使用することです。 これは、アクセス権のすべての組み合わせを表すことができる3つの数字の組み合わせです。

次の表は、同等の8進表記と記号表記を示しています。

r/w/x | binary | octal
 ---  |  000   |   0
 --x  |  001   |   1
 -w-  |  010   |   2
 -wx  |  011   |   3
 r--  |  100   |   4
 r-x  |  101   |   5
 rw-  |  110   |   6
 rwx  |  111   |   7

アクセス許可の可能な組み合わせはそれぞれ2進数で記述でき、1と0は許可がオンまたはオフになっていることを意味します。 これらの2進数は、8進数システムを構成する8桁の0から7までの数字を表します。

前のセクションの例に戻ると、次のようになります。

chmod u=rwx,g=rx,o= document.docx

8進表記は次のとおりです。

chmod 750 document.docx

また、8進表記では、パーミッションを段階的に追加することはできません。

6. 一般的な例

最後に、いくつかの一般的な例とその機能を見てみましょう。

6.1. ディレクトリの所有権を再帰的に変更する

chown -R alice:alice /path/to/directory

この例では、 -R スイッチにより、chownが再帰的になります。

6.2. 他の人とディレクトリを共有する

chmod u=rwx,go=rx /path/to/directory

また

chmod 755 /path/to/directory

6.3. SSH秘密鍵を保護する

chmod u=rw,og= ~/.ssh/id_rsa

また

chmod 600 ~/.ssh/id_rsa

多くのLinuxセキュリティ構成では、 .ssh フォルダー内のキーが、適切なアクセス許可が適用されていない場合、SSHアクセスを許可するために使用されないことに注意してください。

6.4. スクリプトを実行可能にする

chmod +x script.sh

7. 結論

この記事では、chownchmodを活用してファイルとフォルダーへのアクセスを管理する方法について説明しました。

所有するユーザーとグループを各ファイルとディレクトリのアクセス制御フラグに接続して、アクセス許可モデルがどのように機能するかを確認しました。

アクセス許可をできるだけ制限することをお勧めします。グループと許可が正しく構成されていない場合、個人情報に対するセキュリティ上のリスクがあります。