「実行」権限は何をしますか?


31

Linuxの「実行」権限をまだ理解していないことにショックを受けました。

読み取り、書き込み、実行の3つの許可があります。文字通り読み取りと書き込みを理解していますが、実行は正確に何をしますか?

example.php実行権限があるとしましょう。私は何ができexample.phpますか?

回答:


32

基本的には、ファイル内のコードを実行するようオペレーティングシステムに指示できることを意味します。たとえば、ファイルがバイナリ実行可能ファイルである場合、書き込みアクセスではファイルを変更でき、読み取りアクセスでは表示できますが、実行権限がないとプログラムを実行できません。スクリプトの場合は、もう少し複雑です。プログラムを必ずしも「実行」する必要がないため、その内容をインタープリターに読み込むだけで実行できます。インタープリター自体には実行特権がありますが、実行する必要はありません。スクリプト自体の権限。

Linuxの一部のスクリプトはそれ自体が実行可能です。多くの場合、上部に次のような行が表示されます。

#!/ bin / bashまたは

#!/ bin / python

その行は、関連するプログラムを呼び出すことでファイルを実行できることをカーネルに伝えます(テキストだけではありません)。その後、次のようにスクリプトを実行するだけです

。/スクリプト

する代わりに

python ./script


これは、非テキストベースのファイルタイプに対して何を意味しますか?.pngまたは.avi
iono 14

1
基本的に同じですが、ファイル拡張子は関係ありません。ファイル#!/bin/bashの先頭にある場合.avi、bashとして実行されます。実際のavi形式の場合、コマンドとして解釈しても意味がなく失敗するため、おそらく実行できません。
ミフィー

され#!、実際にカーネルによって解釈?
masterxilo

17

「execute」を使用すると、ユーザーは実行可能ファイルを実行できます。ディレクトリの場合、cdコマンドを使用してディレクトリに入ることができます。


1
ディレクトリ部分へのアクセスは膨大です。モードの名前だけからそれを推測することはありません。
PrimitiveNom

2

実際の目的では、読み取りの許可は実行する能力を意味します。

ただし、その逆は当てはまりません。コードを読み取る許可を与えずにコードを実行する許可を与える能力には、いくつかの価値があります。


これは実際には非常に理にかなっています。
masterxilo

READ / EXECUTEに混乱があり、そのような答えを期待していました。感謝
T.Todua

2

GUIまたはコマンドラインからアプリを実行するためのものです。「通常の」PHPの使用(Webサーバー経由)の場合、何も変わりません。正確に言えば、設定に依存しますが、ほとんどの場合、ブラウザを介してPHP Webページをロードできるようにするために+ x権限は必要ありません。

コマンドラインから実行するには、次のものが必要です。

  • #!/usr/bin/phpスクリプトの先頭に追加
  • + x許可を追加
  • スクリプトは実行可能な検索パス($ PATH環境変数)にあるか、スクリプト名の前にあるディレクトリを指定する必要があります。これは、絶対パス名、等であり得る/etc/xdg/fooか、/home/fred/barまたは相対ディレクトリのようなdir1/prog1、または./prog2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.