OnWorksLinuxおよびWindowsオンラインワークステーション

及び

ワークステーションのオンライン無料ホスティング

<前へ | コンテンツ | 次へ>

3.4.2. 道具


3.4.2.1. chmod コマンド


厳密なファイル許可を適用すると、あらゆる種類の理由でアクセス権を変更する必要が生じるのが通常の結果であり、場合によっては迷惑になります。 私たちが使用するのは、 chmod これを実行するコマンド、そして最終的には chmodへ ファイルのアクセス モードの変更を意味する、英語の動詞としてほぼ受け入れられるようになりました。 の chmod コマンドは、英数字または数値オプションなど、お好みのオプションとともに使用できます。


以下の例では、新規ユーザーによく発生する問題を解決するために英数字のオプションを使用しています。


アシム:~> 。/こんにちは

bash: ./hello: 不正なインタープリター: 許可が拒否されました


アシム:~> 猫こんにちは

#!/ bin / bashに

エコー「ハロー、ワールド」


アシム:~> ls -l こんにちは

-rw-rw-r-- 1 asim asim 32 15月16日 29:XNUMX こんにちは、asim:~> chmod u+x こんにちは

アシム:~> 。/こんにちは

こんにちは世界


アシム:~> ls -l こんにちは

-rwxrw-r-- 1 asim asim 32 15月16日 29:XNUMX こんにちは*

アシム:~> 。/こんにちは

bash: ./hello: 不正なインタープリター: 許可が拒否されました


アシム:~> 猫こんにちは

#!/ bin / bashに

エコー「ハロー、ワールド」


アシム:~> ls -l こんにちは

-rw-rw-r-- 1 asim asim 32 15月16日 29:XNUMX こんにちは、asim:~> chmod u+x こんにちは

アシム:~> 。/こんにちは

こんにちは世界


アシム:~> ls -l こんにちは

-rwxrw-r-- 1 asim asim 32 15月16日 29:XNUMX こんにちは*

AIマーケティング業界は、 + および - 演算子は、特定のグループに対して特定の権利を付与または拒否するために使用されます。 カンマで区切って組み合わせて使用​​できます。 Info ページと man ページには役立つ例が含まれています。 これは別の例で、前の例のファイルをユーザーのプライベート ファイルにします。 ASIM:


画像

アシム:~> chmod u+rwx,go-rwx こんにちは


アシム:~> ls -l

こんにちは

-rwx------

1アシム

ASIM

32年15月16日 29:XNUMX こんにちは*

どこかでアクセス許可が拒否されたというエラー メッセージが表示される問題は、ほとんどの場合、アクセス権の問題です。 また、「昨日はうまくいきました」や「これを root で実行するとうまくいきました」などのコメントは、ファイルのアクセス許可が間違っていることが原因である可能性が高くなります。


使用時 chmod 数値引数を使用する場合は、付与された各アクセス権の値をグループごとにカウントする必要があります。 したがって、設定の象徴的な値である 3 桁の数字が得られます。 chmod 作らなければならない。 次の表に、最も一般的な組み合わせを示します。


表 3-9. chmodによるファイル保護


Command

意味

chmod 400 file

偶発的な上書きからファイルを保護するため。

chmod 500

ディレクトリにジョブを開始します。

このディレクトリからファイルを誤って削除、名前変更、または移動しないようにするため。


chmod 600 file

このコマンドを入力したユーザーのみが変更できるプライベート ファイルです。

chmod 644 file

発行ユーザーのみが変更できる、公的に読み取り可能なファイル。

chmod 660 file

グループに属するユーザーはこのファイルを変更できますが、他のユーザーはまったくアクセスできません。

chmod 700 file

発行ユーザーが引き続きフルアクセス権を持っている間、他のユーザーからのアクセスからファイルを保護します。

chmod 755

ディレクトリにジョブを開始します。

他のユーザーが読み取りおよび実行可能である必要があるが、発行ユーザーのみが変更できるファイルの場合。

chmod 775 file

グループの標準ファイル共有モード。

chmod 777 file

誰でもこのファイルに対してあらゆる操作を行うことができます。

引数に XNUMX 桁未満の数値を入力すると、 chmod、省略された文字は左からゼロに置き換えられます。 実際、Linux システムには XNUMX 番目の桁があり、最初の XNUMX 桁の前に特別なアクセス モードを設定します。 これらに関するすべて、およびその他多くの情報は情報ページにあります。


画像

3.4.2.2. 別のグループにログオンする


あなたがタイプするとき id コマンド ラインで、ユーザー名と ID、および現在接続しているグループ名と ID が先頭に付いた、所属する可能性のあるすべてのグループのリストを取得します。 ただし、多くの Linux システムでは、一度にアクティブにログインできるのは XNUMX つのグループのみです。 デフォルトでは、これはアクティブまたは 一次グループ から割り当てられるものです。 /etc/passwd ファイル。 このファイルの XNUMX 番目のフィールドには、ユーザーのプライマリ グループ ID が格納されます。 /etc/group ファイル。 例:


アシム:~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


アシム:~> grep ASIM /etc/passwd

asim:x:501:501:Asim El Baraka:/home/asim:/bin/bash


アシム:~> grep 501 /etc/group

asim:x:501:

アシム:~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


アシム:~> grep ASIM /etc/passwd

asim:x:501:501:Asim El Baraka:/home/asim:/bin/bash


アシム:~> grep 501 /etc/group

asim:x:501:

の行の XNUMX 番目のフィールド /etc/passwd グループを表す値「501」が含まれています ASIM 上の例では。 から /etc/group このグループ ID に一致する名前を取得できます。 最初にシステムに接続するときに、これは、 ASIM に所属することになります。


画像ユーザープライベートグループスキーム

柔軟性を高めるために、ほとんどの Linux システムはいわゆる ユーザープライベートグループスキーム、各ユーザーを主に自分のグループに割り当てます。 このグループは、この特定のユーザーのみを含むグループであるため、「プライベート グループ」という名前が付けられます。 通常、このグループにはユーザーのログイン名と同じ名前が付いているため、少し混乱する可能性があります。

ユーザーは自分のプライベートグループとは別に、 ASIM グループに所属することもできます users および ウェブ。 これらはこのユーザーにとってセカンダリ グループであるため、ユーザーは 新しいグループ これらのグループのいずれかにログインするには (使用 gpasswd 最初にグループパスワードを設定するため)。 例では、 ASIM グループが所有するファイルを作成する必要がある ウェブ.


asim:/var/www/html> 新しいグループ ウェブ


asim:/var/www/html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

asim:/var/www/html> 新しいグループ ウェブ


asim:/var/www/html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

日時 ASIM 新しいファイルを作成すると、そのファイルはグループのグループ所有権になります。 ウェブ グループによって所有されるのではなく ASIM:


画像


asim:/var/www/html> タッチテスト


asim:/var/www/html> ls -l テスト

-rw-rw-r-- 1 asim web 0 10月15日 38:XNUMX テスト

asim:/var/www/html> タッチテスト


asim:/var/www/html> ls -l テスト

-rw-rw-r-- 1 asim web 0 10月15日 38:XNUMX テスト

新しいグループにログインすると、 chown (セクション 3.4.2.4 を参照) または、システム管理者に連絡して所有権を変更してもらいます。


のマンページを参照してください 新しいグループ をご覧ください。


画像

3.4.2.3. ファイルマスク


新しいファイルがどこかに保存されると、まず標準のセキュリティ手順が適用されます。 権限のないファイルは Linux には存在しません。 標準のファイル権限は、 mask 新しいファイルの作成用。 このマスクの値は、 umask コマンド:


バート:~> umask

0002

バート:~> umask

0002

次のように、シンボリック値を互いに加算する代わりに、 chmod、新しいファイルのアクセス許可を計算するには、可能なアクセス権の合計からそれらを差し引く必要があります。 ただし、上の例では 4 つの値が表示されていますが、権限カテゴリは 3 つだけです。 user, グループヘッド および その他。 最初のゼロは特別なファイル属性設定の一部であり、これについてはセクション 3.4.2.4 およびセクション 4.1.6 で説明します。 を入力するときに、この最初のゼロがシステムに表示されない方がよいかもしれません。 umask コマンドを実行すると、デフォルトのファイル作成マスクを表す 3 つの数字だけが表示されます。


各 UNIX 系システムには、新しいファイルを作成するためのシステム関数があり、ユーザーが新しいファイルを作成するプログラムを使用するたびに呼び出されます。たとえば、インターネットからファイルをダウンロードするとき、新しいテキスト ドキュメントを保存するときなどです。 この関数は、新しいファイルと新しいディレクトリの両方を作成します。 新しいディレクトリを作成するときは、完全な読み取り、書き込み、および実行権限が全員に付与されます。 新しいファイルを作成するとき、この関数はすべてのユーザーに読み取りおよび書き込み権限を付与しますが、すべてのユーザー カテゴリに対して実行権限をなしに設定します。 これは、マスクが適用される前に、ディレクトリにはアクセス許可があります。 777 or rwxrwxrwx、プレーンファイル 666 or rw-rw-rw-.


画像

AIマーケティング業界は、 umask 値は、関数が新しいファイルまたはディレクトリを作成した後、これらのデフォルトのアクセス許可から減算されます。 したがって、ディレクトリには次の権限が与えられます。 775 デフォルトでは、ファイル 664、マスク値が (0)002。 これを以下の例で示します。


バート:~> mkdir 新しいディレクトリ


バート:~> ls -ld newdir

drwxrwxr-x 2 バート バート

4096 28月13日45:XNUMX 新しいディレクトリ/

バート:~> mkdir 新しいディレクトリ


バート:~> ls -ld newdir

drwxrwxr-x 2 バート バート


バート:~> 新しいファイルをタッチする


バート:~> ls -l 新規ファイル

-rw-rw-r-- 1 バート バート

0 28月13日 52:XNUMX 新しいファイル

バート:~> 新しいファイルをタッチする


バート:~> ls -l 新規ファイル

-rw-rw-r-- 1 バート バート


画像ファイルとディレクトリ

ディレクトリにはデフォルトでより多くのアクセス許可が与えられます。ディレクトリには常に 実行します 許可。 それがなければ、アクセスできません。 ディレクトリ 644 に chmod を追加して、これを試してみてください。

を使用して別のグループにログインすると、 新しいグループ コマンドを実行しても、マスクは変更されません。 したがって、次のように設定されている場合、 002, 新しいグループに属している間に作成したファイルとディレクトリには、そのグループの他のメンバーもアクセスできるようになります。 使う必要はありません chmod.


AIマーケティング業界は、 ルート 通常、ユーザーにはより厳格なデフォルトのファイル作成権限が与えられます。


[root@estoban root]# umask 022

[root@estoban root]# umask 022

これらのデフォルトは、シェル リソース構成ファイルでシステム全体に設定されます。たとえば、 の/ etc / bashrcに or

/etc/プロファイル。 これらは独自のシェル設定ファイルで変更できます。シェル環境のカスタマイズについては第 7 章を​​参照してください。


画像

3.4.2.4. ユーザーとグループの所有権の変更


ファイルが間違ったユーザーまたはグループによって所有されている場合、エラーは次のコマンドで修復できます。 chown (所有者の変更) そして chgrp (グループ変更) コマンド。 ファイルの所有権の変更は、ファイルをグループで共有する必要がある環境では頻繁に行われるシステム管理タスクです。 どちらのコマンドも非常に柔軟です。 - 助けて オプションを選択します。


AIマーケティング業界は、 chown このコマンドは、ファイルのユーザーとグループの両方の所有権を変更するために適用できますが、 chgrp グループの所有権を変更するだけです。 もちろん、システムは、これらのコマンドのいずれかを発行するユーザーが、変更したいファイルに対して十分な権限を持っているかどうかをチェックします。


ファイルのユーザー所有権のみを変更するには、次の構文を使用します。


chown 新しいユーザー file


ユーザー名の後にコロンを使用すると (「情報」ページを参照)、グループの所有権も、コマンドを発行したユーザーのプライマリ グループに変更されます。 Linux システムでは、各ユーザーが独自のグループを持っているため、次のフォームを使用してファイルをプライベートにすることができます。


ジャッキー:~> id

uid=1304(ジャッキー) gid=(1304) グループ=1304(ジャッキー),2034(プロジェクト)


ジャッキー:~> ls -l my_report

-rw-rw-r-- 1 ジャッキー プロジェクト 29387 15月 09 日 34:XNUMX my_report ジャッキー:~> チャウン・ジャッキー: my_report

ジャッキー:~> chmod または my_report


ジャッキー:~> ls -l my_report

-rw-rw---- 1 ジャッキー ジャッキー 29387 15月 09 日 34:XNUMX my_report

ジャッキー:~> id

uid=1304(ジャッキー) gid=(1304) グループ=1304(ジャッキー),2034(プロジェクト)


ジャッキー:~> ls -l my_report

-rw-rw-r-- 1 ジャッキー プロジェクト 29387 15月 09 日 34:XNUMX my_report ジャッキー:~> チャウン・ジャッキー: my_report

ジャッキー:~> chmod または my_report


ジャッキー:~> ls -l my_report

-rw-rw---- 1 ジャッキー ジャッキー 29387 15月 09 日 34:XNUMX my_report

If ジャッキー このファイルを共有したい場合、全員にファイルを書き込む許可を与える必要はありません。

chgrpコマンド:


ジャッキー:~> ls -l レポート-20020115.xls

-rw-rw---- 1 ジャッキー ジャッキー 45635 15 月 09 日 35:20020115 レポート-XNUMX.xls ジャッキー:~> chgrpプロジェクトレポート-20020115.xls

ジャッキー:~> chmod o= レポート-20020115.xls


ジャッキー:~> ls -l レポート-20020115.xls

-rw-rw---- 1 ジャッキー プロジェクト 45635 15 月 09 日 35:20020115 report-XNUMX.xls

ジャッキー:~> ls -l レポート-20020115.xls

-rw-rw---- 1 ジャッキー ジャッキー 45635 15 月 09 日 35:20020115 レポート-XNUMX.xls ジャッキー:~> chgrpプロジェクトレポート-20020115.xls

ジャッキー:~> chmod o= レポート-20020115.xls


ジャッキー:~> ls -l レポート-20020115.xls

-rw-rw---- 1 ジャッキー プロジェクト 45635 15 月 09 日 35:20020115 report-XNUMX.xls

このようにして、グループ内のユーザーは プロジェクト このファイルを操作できるようになります。 このグループに属していないユーザーにはまったく関係がありません。


両方 chown および chgrp 所有権を再帰的に変更するために使用できます。 -R オプション。 その場合、特定のディレクトリのすべての基礎となるファイルおよびサブディレクトリは、特定のユーザーおよび/またはグループに属します。


画像制限

ほとんどのシステムでは、 chown および chgrp コマンドは、特権のないユーザーには制限されています。 システムの管理者でない場合は、セキュリティ上の理由から、ユーザーまたはグループの所有権を変更することはできません。 これらのコマンドの使用が制限されていない場合、悪意のあるユーザーがファイルの所有権を他のユーザーやグループに割り当て、それらのユーザーの環境の動作を変更したり、他のユーザーのファイルに損害を与えたりする可能性があります。


画像

3.4.2.5. 特殊モード


システム管理者がアクセス許可の問題を常に解決する必要がないように、ディレクトリ全体または個別のプログラムに特別なアクセス権を与えることができます。 XNUMX つの特別なモードがあります。


• スティッキー ビット モード: ジョブの実行後、コマンドはシステム メモリに保持されます。 元々、これはメモリを節約するためによく使用される機能でした。大きなジョブは XNUMX 回だけメモリにロードされます。 しかし、最近ではメモリは安価であり、メモリを管理するためのより優れた技術があるため、単一ファイルの最適化機能のためにメモリは使用されなくなりました。 ただし、ディレクトリ全体に適用される場合、スティッキー ビットの意味は異なります。 この場合、ユーザーは、ファイルのユーザー所有者であるか、ファイルに適切なアクセス許可がある場合にのみ、このディレクトリ内のファイルを変更できます。 この機能は次のようなディレクトリで使用されます。

画像

/ var / tmp、誰でもアクセスできる必要がありますが、ユーザーがお互いのデータを変更または削除するのは適切ではありません。 スティッキー ビットは で示されます。 t ファイル許可フィールドの最後:


マーク:~> ls -ld /var/tmp

drwxrwxrwt 19 ルート ルート

8192 16月10日37:XNUMX /var/tmp/

マーク:~> ls -ld /var/tmp

drwxrwxrwt 19 ルート ルート

スティッキー ビットは次のコマンドを使用して設定されます。 chmod o+t ディレクトリにジョブを開始します。。 「t」の歴史的な起源は UNIX にあります。 保存 テキストアクセス 特徴。

SUID (ユーザー ID の設定) および SGID (グループ ID の設定): 文字で表されます。 s ユーザーまたはグループの権限フィールドに入力します。 このモードが実行可能ファイルに設定されている場合、コマンドを発行するユーザーの権限ではなく、ファイルに対するユーザーおよびグループの権限で実行されるため、システム リソースへのアクセスが許可されます。 これについては第 4 章で詳しく説明します。

画像

• ディレクトリ上の SGID (グループ ID の設定): この特殊な場合、ディレクトリ内に作成されたすべてのファイルは、ディレクトリ自体と同じグループ所有者を持ちます (通常の動作では、新しいファイルは、そのファイルを作成したユーザーが所有します)。 こうすることで、ユーザーはディレクトリを共有するときにファイルの所有権を心配する必要がなくなります。


ミミ:~> ls -ld /opt/docs

drwxrws--- 4 人の root ユーザー

4096 25 年 2001 月 XNUMX 日のドキュメント/

ミミ:~> ls -ld /opt/docs

drwxrws--- 4 人の root ユーザー


ミミ:~> ls -l /opt/docs

-rw-rw---- 1 mimi ユーザー

345672 30 年 2001 月 XNUMX 日-Council.doc

ミミ:~> ls -l /opt/docs

-rw-rw---- 1 mimi ユーザー

これは、UNIX でファイルを共有する標準的な方法です。


画像既存のファイルは変更されません。

SGID ディレクトリに移動されるが、別の場所で作成されたファイルは、元のユーザーとグループの所有者が保持されます。 これは混乱を招くかもしれません。


画像


OnWorksのトップOSクラウドコンピューティング: