GNU/Linux >> Linux の 問題 >  >> Linux

Linux端末でファイルを実行可能にする方法は?

POSIX互換のファイルシステム(Ext4、Btrfs、XFS、JFSなど)にある各ファイルには、「モードビット」が割り当てられています。

Linuxでファイルを実行可能にするには、実行可能モードビットを有効にする必要があります。

実行可能モードビットを設定するには、chmodコマンドを次のように使用します。

chmod u+x <file>

これで、ターミナルから上記のファイルを実行できます。

./file

それは簡単な要約でした。少し詳しく見てみましょう。

Linuxでファイルを実行可能にする

Linuxでファイルを実行可能にする方法はいくつかあります。最も一般的な方法は、chmodを使用することです。 さまざまな方法でコマンドを実行します。

ファイルを実行できるかどうかを確認するには、-lを使用します lsのフラグ コマンド。

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

最初の列の-rw-r--r-- 所有者は読み取りと書き込みが可能であり、グループのユーザーは読み取りのみが可能であり、他のすべてのユーザーはファイルの読み取りのみが可能であることを表します。

xがないことに注意してください 許可記号から。これは、lhb.txt 実行可能ではありません。

Linuxファイルのパーミッションについて読み、これらのコマンドをよりよく理解するために基本をブラッシュアップすることを強くお勧めします。

方法1:ファイルをすべての人が実行できるようにする

最初の方法で最も簡単な方法は、次のコマンドを使用してファイルを実行可能にすることです。

chmod +x <file>

x フラグは、ファイルの実行可能権限を設定または設定解除することです。そして+を使用する xの前に署名する 実行可能ファイルとして設定したいという意味です。

これにより、所有者、グループ、およびその他すべての人がファイルを実行できるようになります。システム上の誰もがそれを実行できるようになります。

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod +x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

ご覧のとおり、すべての人、所有者、グループなどが実行可能ファイルxを持っています ビットセット。これは、誰もがこのファイルを今すぐ実行できることを意味します。

方法2:特定のユーザーまたはグループに対してのみファイルを実行可能にする

全員がファイルを実行できるようにしたくない場合は、ファイルのアクセス許可を追加/削除する前にクラスを指定する必要があります。

利用可能なクラスは次のとおりです。

  • u :所有者/ユーザーの権限
  • g :グループの権限
  • o :他の人の許可
  • a :すべての人の許可

クラスを指定する場合、構文は最初のメソッドで見たものとほとんど同じです。

chmod <class>+x <file>

つまり、ファイルの所有者だけが実行でき、他の誰も実行できないような方法でファイルを実行可能にしたい場合は、次のコマンドを使用する必要があります。

chmod u+x <file>

次に例を示します:

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod u+x lhb.txt

$ ls -l lhb.txt
-rwxr--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

同様に、そのファイルを所有するグループ内のすべてのユーザーが実行できるようにするには、次のコマンドを使用する必要があります。

chmod g+x <file>

次に例を示します:

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod g+x lhb.txt
$ ls -l lhb.txt
-rw-r-xr--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

aを指定する場合 クラス、それはあなたが何も指定しなかったかのようです。見てみましょう。

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod +x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod 644 lhb.txt #reset permissions

$ chmod a+x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

これらのコマンドは表示が異なる場合がありますが、結果は同じです。

方法3:8進数を使用する

最初の方法に従う場合は、+xを実行することによってのみ、ファイルの実行可能フラグを有効にします。 、誰でも実行できるようにします。

ただし、全員にファイルを実行させたくない場合や、いくつかの特権が必要な場合があります。その場合は、権限の完全なセットを指定できます。

これは通常、ファイルのアクセス許可を有効にするために8進数値または記号値を指定することによって行われます。

これにより、フラグの設定方法をよりきめ細かく制御できます。以下は、chmodで8進値を使用するための構文です。 コマンド:

chmod <octal> <file>

数値が苦手な場合は、オンラインのchmod計算機を使用できます。これにより、正しい8進数値を生成できるため、間違った値を使用したり、ファイルのアクセス許可を台無しにしたりすることを回避できます。

たとえば、所有者とグループに対してのみファイルを実行可能にしたいので、最初に現在のアクセス許可を確認し、[chmod-calculator]を使用してファイルに実行可能ビットを追加する必要があります。

その方法を見てみましょう。

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod 754 lhb.txt

$ ls -l lhb.txt
-rwxr-xr--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

ご覧のとおり、ファイルを実行できるのは所有者とグループのみです。

結論

この記事では、Linuxシステムでファイルを実行可能にする方法について説明します。主にchmodのさまざまな使用方法に焦点を当てました。 指図。それについてもっと知りたい場合は、chmodの使用方法に関するいくつかの例があります コマンド。


Linux
  1. Linuxのルートでもファイルとディレクトリを削除できないようにする方法

  2. Linuxファイル機能を管理する方法

  3. Linuxでファイルを見つける方法

  1. LinuxターミナルでJSONファイルをきれいに印刷する方法

  2. Linuxでファイルの名前を変更するにはどうすればよいですか?

  3. ファイルをスパースにする方法は?

  1. Linuxでファイルを移動する方法

  2. ターミナルウィンドウからLinuxでファイルを作成するには?

  3. Linux バイナリ ファイルが 32 ビットか 64 ビットかを判断する方法は?