ファイルのアクセス許可を管理するために使用される主な概念とコマンドラインツールについて簡単に説明できますか?
各ファイルには、3つの異なるカテゴリの権限があります。
権利とは、ファイルを読み取る権利、ファイルに書き込む権利、またはスクリプトまたはプログラムの場合にファイルを実行する権利を意味します。
CLIでは、次のことができます
chown
で所有者を変更します。 chown guillermooo
chgrp
でグループを変更します。 chgrp root
chmod
で権利を変更します。 chmod u+w filename.ext
(ファイルの所有者の書き込み許可を追加filename.ext
)これらの各ツールについて詳しく知りたい場合は、ターミナルを開いてman [tool]
を入力してください。 man chmod
。
警告:ファイルとディレクトリの権限を変更すると、潜在的に有害であり、システムが使用できなくなる可能性があります。間違ったパスでルートとして再帰的に実行すると、Ubuntuを再インストールしなければならないポイントに到達する場合があります。したがって、HOMEディレクトリ以外のパーミッションを変更しないことをお勧めします。可能な限り、rootとしてコマンドを再帰的に実行することは避けてください。
Ubuntuは、ファイルまたはディレクトリに対して許可または拒否できるタスクが3つある場合、Unixから許可の概念を継承しています。
(Traversingディレクトリをパス名の一部として使用することを本質的に意味します。 https://unix.stackexchange.com/a/13891 または-を参照してください。 https://unix.stackexchange.com/questions/21251 詳細については)
さらに、許可を与える相手については3つのケースがあります。
ソートされたこれらの組み合わせを取得するには、各ビットが許可を定義するバイナリシステムを使用します。これは次の表に最もよく示されています。
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
たとえば、たとえば
a)ファイルの所有者(=ユーザー)が rええ、 w儀式、およびeバツ実行許可、
b)付与されたファイルのグループ readとeバツ許可を実行する
c)他のすべては reADアクセス。
その結果、ファイルのパーミッションは次のようになります
u g o
rwx r-x r--
これを8進数で取得するには、たとえば chmod
コマンドの場合、またはエラーメッセージを理解する必要がある場合は、上記の表に次のように入力する必要があります。
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
ユーザー(4 + 2 + 1 = 7)、グループ(4 + 0 + 1 = 5)、およびその他(4 + 0 + 0 = 4)を合計するには、各許可番号を追加する必要があります。結果の数値は次のとおりです。
u g o
7 5 4
chmod
で許可ビットを変更する2つのオプションがあります。
chmod u+rwx g+rx o+r filename
またははるかにシンプル
chmod 751 filename
両方のコマンドは同じことをします。
ホームで新しく作成されたファイルのデフォルトの許可は、664(-rw-rw-r--)になります。
ファイルをプログラムとして実行可能にする場合は、この許可を変更する必要があります。
この実行可能ファイルが入っているディレクトリのパーミッションも変更する必要があることに注意してください。ファイルのとディレクトリの実行可能ビットの両方が設定されている場合のみこのファイルをプログラムとして実行することが許可されます。
ファイルを自宅にコピーすると、その権限が失われますが、これは独自のデフォルトの権限に置き換えられます(アーカイブオプションなどの高度なオプションを使用してコピーしない限り)。
また、ファイルはマウントポイントから権限を継承する場合があることに注意してください。マウントオプション。これは、Unix許可をサポートしないWindowsフォーマットのドライブをマウントする場合に重要です。
すぐに、これは物語の半分にすぎないことがわかりました。持ち物も整理する必要があります。これを行うには、各ファイルまたはフォルダーに所有者とグループメンバーシップが定義されています。
ファイルを作成するたびに、ファイルの所有者になり、ファイルのグループも私たちになります。 ls -l
を使用すると、次の出力例からわかるように、権限、所有権、およびグループを確認できます。
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- 変更できるのは、自分のものであるファイルの許可、グループ、または所有権のみです。
ファイルの所有者でない場合、Permission denied
エラーが発生します。すべてのファイルに対してこれを変更できるのはrootのみです。これが、私たちのものではないファイルの許可を編集するときにSudo
を使用しなければならない理由です。これを行うには、組み込みコマンドが2つあります。 chown
ユーザー用および chgrp
グループ用です。
ファイルの所有権を誰からでもtakkat
に変更するには、次のコマンドを発行します。
Sudo chown takkat testfile
ファイルのグループをtakkat
に変更するには、発行します
Sudo chgrp takkat testfile
詳細とオプションについては、コマンドのマンページを参照してください。さらに読むには、このニースのより詳細なガイドをお勧めします:
また、関連する質問もここにあります。