回答:
私たちのサーバー上のすべてのサービスにユーザーを与えた場合、「その他」は誰ですか、「その他」は正しく存在しませんか?たとえば、Apacheをユーザーに
/var/www
配置しapache
、chowned をに設定して、chmod 700
それが機能するはずであると入力した場合、
権限がどのように機能するかを簡単に説明します。
最初の数字は、ファイルの実際の所有者である(とファイルを所有しています誰がチェックls -l
し、それを修正chown
)
第二の数字は、(ファイルの所有者は、必ずしもファイルを所有している同じグループ内にあってはならないが)ファイルのグループのためのものです
3桁目は意味、他の誰でないグループ内のファイルの所有者と誰もいないし。
したがって、chmod
700までのファイルがによって所有されapache
ている場合、「通常の」ユーザーであっても、そのファイルを読み取り、書き込み、または実行することはできません。これは非常に制限的であり、まれな場合にのみ必要です。たとえば、SSH秘密鍵を保護したい場合は、600
アクセス許可を取得します。Apacheの場合、通常のユーザーアカウントではファイルを編集できなくなるという事実は別として、他の問題が発生する可能性もあります/var/www
。
したがって、一般的に言えば、x00
他のユーザーの読み取り権限()を削除する必要はありません。
ディレクトリをapache
所有させることもできます/var/www
が、644
(他のユーザーには読み取り専用)を使用することもできます。私がよく使用するもう1つの方法は、自分のユーザーと Apacheユーザーを新しいwww-users
グループに追加してから、ファイルをに移動/var/www
すること775
です。このようにして、あなたとApacheの両方がファイルに書き込むことができます。詳しくはこちらをご覧ください:Apacheのグループ権限
「実行」と「読み取り」の違いは何ですか?
実行可能ファイルは、シェルから直接、ユーザーが直接実行できます。これを実証するために、短いファイルを書き、それを「テスト」と呼びましょう。次のコンテンツを追加します。
echo "I am executable"
ファイルを保存します。次に、シェルでを入力してみます./test
。「-bash:./test:Permission denied」エラーが発生します。これは、デフォルトでは、新しく作成されたファイルには実行権限がないためです。実行権限を追加すると機能します。
$ chmod +x test
$ ./test
I am executable
これは単なるテストスクリプトですが、通常、すべてのバイナリファイル(コンパイル済みプログラムなど)にも実行権限セットが必要なため、読み取りだけでなく、実際に実行して何かを実行できます。
たとえば、これらは主ににあるシステムプログラム/bin
です。実行ls -l /bin
して、権限を調べます。ご覧のとおり、それらはによって所有されてroot
おり、変更することはできませんが、いつでも実行できます。
したがって、一部のユーザーに対して特定のスクリプトおよびバイナリの実行を制限できるため、これもセキュリティ機能の一部です。
Unixパーミッションの詳細については、ウィキペディアの記事をご覧ください。"read-write-execute"として知られている基本的なアクセス許可は長い間使用されてきましたが、アクセス制御リストと呼ばれるものの一部にすぎません。これは、これよりもはるかに多くの機能を提供します。
クリーンインストール(Ubuntuなど)後のシステム全体のデフォルトのファイル権限は何ですか?
ディレクトリと所有者によって異なります。一部のファイルとディレクトリはシステムによって予約され、が所有していroot
ます。それでも、ほとんどの場合、通常のユーザーアカウントでそれらを読むことができます。
ホームフォルダーのような他のディレクトリは明らかにユーザーに属しています。複数のユーザー間で共有されている場合、マシン上の他のユーザーへの読み取りアクセス許可を拒否することは理にかなっています。結局のところ、プライベートなものを公開したくない場合です。
最後に、一部のファイルはデフォルトで実行可能です(例:)が、他のファイルは実行可能で/bin
はありません(例:の構成ファイル/etc
)。
ファイルシステム階層標準は、 Linuxシステムで見つかったディレクトリの使用目的を指定します。ディレクトリで何をしたいかに基づいて、どのようなアクセス許可を設定するかをほぼ「推測」できます。
.php
通常、ファイルは実行可能ではありません。これらは、簡単に言えば、たとえばブラウザでブラウザをポイントしたときにのみApacheによって読み取られますhttp://example.com/file.php
。Apacheが出力を表示できるようになる前に、PHPインストールによって解釈される必要がありますが、Apacheが処理します。あなたはできる理論的にPHPファイルを実行可能にし、スクリプトのようにそれを実行します-同じ調子で私たちは私たちのと同じようにtest
ファイルが、これはほとんど使用されません。
実行権限がディレクトリに対して異なる有効な意味を持つことを追加したいだけです。
以下のためのファイル:
用フォルダ:
いいえ、ディレクトリを個別に削除する権限はありません。
(この情報はここにあります。)
私はLinuxの専門家ではありませんが、それでも答えようとしています。
各ファイルシステムエントリには、関連付けられたユーザーとグループがあります。ユーザーの権限は、「ユーザー」フラグによって処理されます。同じグループに属するユーザーのユーザー権限は、「グループ」フラグによって処理されます。他のすべてのユーザーは、「その他」のフラグによって処理されます。
「読む」とは、それが言うことを意味します。「実行する」とは、ファイルを起動できる(コマンドなど)か、ディレクトリを一覧表示できることを意味します。
デフォルトの権限については、よくわかりません。どうやら設定できるので、ユーザーごとに違うかもしれません。
質問2にきちんとした答えを与えるために、少なくとも、これはあなたができる/できないことを示す要約表です:
+--------------------------------------------------+ | Execute Yes (./file.sh) | Read Yes (vim file.sh) | |--------------------------------------------------| | Execute Yes (./file.sh) | Read No (ERROR) | |--------------------------------------------------| | Execute No (ERROR) | Read Yes (vim file.sh) | |--------------------------------------------------| | Execute No (ERROR) | Read No (ERROR) | +--------------------------------------------------+
覚えておくべき重要なことは、それを実行するためにユーザーがファイルをメモリに読み込むのではなく、カーネルがユーザーに代わってそれを行うことです。
他のすべてを除外する場合は注意が必要です。私の/ etc / passwdファイルからこのリストを見てください(許可と明確にするために削除されていないもの):
ルートデーモンbin sys同期ゲームman lpメールニュースuucpプロキシwww-dataバックアップリストirc gnats libuuid syslogメッセージバスusbmux haldaemon nobody
a {これは私であり、以下はインストールしたもので、とりわけシステムに付属しています}
avahi mysqlパルスrtkit saned臆病なディディウィキ
したがって、たとえば、lpまたはuucpから権限を削除すると、印刷が中断されます。bin、sys、またはデーモンから権限を削除すると、おそらく多くのものが壊れます。irc、ゲーム、メール、ニュース、およびバックアップはおそらく安全に削除できます(ブラウザーではなく、システムを介してこれらを使用している場合を除く)。残りは検索エンジンのスキルに任せます。
これはubuntu / bodhi linuxですが、他のシステムでは追加機能が少ない場合があります。ただし、これらすべては、すべてをrootとして実行する必要がないようにするためのものです。各ユーザーがシステムユーザーの1人(rootのみ)で読み取り/書き込み/実行できるシステムを作成できると想像しますが、試したかどうかはわかりません。
実行は、コードを実行する権限です。読み取りは、見る(およびコピーする)許可のみです。