Linuxで最初に学んだコマンドの1つは、 touch
でした。 コマンドラインを使用してファイルを作成するコマンド。
たとえば、テキストファイルを作成しようとした場合は、 touch filename.txt
と入力するだけです。 、Enterキーを押すと、現在のディレクトリにファイルが作成されます。その後、選択したファイルエディタを使用して、任意のファイルを書き込むことができます。
ただし、スクリプトの作成に関しては、状況が少し複雑になる可能性があります。何故ですか?
別の例でこれをお見せしましょう。 touchを使用してスクリプトを作成するとします。 touch example.sh
と入力します 、Enterキーを押すと、それができます。もう一度、ファイルエディタを使用して書き込むことができます。
すべての準備が整ったら、あとはテストするだけです。 ./ sample.sh
と入力します Enterキーを押して、スクリプトの動作を確認します。しかし、このメッセージから何がわかりますか?
なぜ権限が必要なのですか?
私は管理者です!数秒前に自分で書いたスクリプトを実行する権限がないのはなぜですか?
実際にはその理由があります。正直なところ、ほとんどのユーザーは感謝する必要があります。何をしているのかを知らずにスクリプトを実行できないと、システムが危険にさらされるのを防ぐことができるからです。
まず、権限について簡単にチャットしましょう。次に、それらを変更する方法の発見に進みます。
ファイルに関する詳細情報を取得するために、ディレクトリ内のファイルを一覧表示するコマンド ls
を使用します。 。
ls
と入力した後 Enterキーを押すと、コマンドラインに次のように表示されます。
それがすることはあなたが現在いるディレクトリのすべての目に見えるファイルをリストすることです。フラグ-l
を追加する それに、それはあなたにディレクトリ内のファイルに関するより多くの情報を提供します。これは、 ls -l
と入力したときの結果です。 Enterキーを押します:
同じファイルが表示されますが、その前に十分な情報があります。まず、最初は意味がないように見える10個のダッシュと文字のシーケンスがあります。これは実際には、ファイルが持つ権限のマッピングです。
最初の文字はダッシュにすることができます(-
、共通ファイルの場合)、 d
(ディレクトリの場合)、または l
(ソフトリンクの場合)。わかりやすくするために、単純なファイルに焦点を当てますが、アクセス許可はこれらすべての種類のファイル/フォルダーに有効です。
最初の文字の後、他の9つは3つのグループに分けることができます。最初のトリオは、現在のユーザーの権限を示しています。次に、このグループの権限を示します。最後の3つは、このカテゴリに当てはまらないすべてのユーザーの権限です。
説明のために、グループなどを変更することはないので、最初の3つの権限に焦点を当てましょう。
最初のトリオはrw-
と言います 。
これらが何であるかを理解する時が来ました。ファイルを使用して通常実行できることは、ファイルの読み取り、書き込み、実行の3つです。つまり、基本的に、それらの文字が意味するものです。
最初のr
読書許可を表します。次に、 w
があります 書き込み許可のため。最後に、ダッシュは、あるべきものは何もないことを意味します。 x
があるはずです 、eXecutableの略です。
したがって、現在のユーザー(私)について言えば、このファイルに対して私が持っているアクセス許可は、読み取りと書き込みのアクセス許可です。ただし、 sample.sh
を実行できません ファイル。そのため、ファイルを実行しようとすると、「許可が拒否されました」というメッセージが表示されました。
では、どうすればこのファイルを実行できますか?ここでchmod
コマンドが機能します。
chmodは何をしますか?
さて、私は記事の冒頭から「許可」について言及してきました。この説明を少し拡張して、特定のモードでファイルにアクセスするための許可であると言いましょう。 。これは、 r
読み取りモードでファイルにアクセスするためのアクセス許可を示します。w
書き込みモードでファイルにアクセスするためのアクセス許可を示し、 x
実行可能モードでファイルにアクセスするためのアクセス許可を示します。
なぜ私はあなたにそれを言っているのですか?コマンドのおかげで、この記事はすべてについてです。 chmod
'changemode'の略です。つまり、このコマンドを使用すると、ファイルのモードを使用したいモードに変更することになります。
cmod
で演算子を使用する方法
演算子を使用する必要があります chmodコマンドを使用します。これは、権限に対して実行する変更の種類を指定するのに役立ちます。
たとえば、 +
ファイルに既にある権限に権限を追加するために使用する演算子です。 -コード> リストから権限を削除します。
=
もあります 演算子。権限をリセットして、再度定義できるようにします。
この場合、 chmod -w sample.sh
と入力します。 、コマンドに要求しているのは、書き込み権限を削除することです。したがって、実行可能ファイルのアクセス許可を追加するには、 chmod + x sample.sh
と入力する必要があります。 。
ここでファイルを実行しようとすると、スクリプトに入れたものはすべて実行されます。
ls -l
を使用する 、これは私が今持っているものです。
誰が許可を取得しますか?
指摘する価値のある他の何かは、誰がこの許可を得ているかです。 'x'がすべてのユーザー、ファイル所有者、グループなどに与えられていることがわかります。これが目的ではない場合は、 chmod -x sample.sh
を使用して実行可能ファイルのアクセス許可を再度削除することをお勧めします。 。
ファイルの所有者(この場合は私)に対してのみアクセス許可を有効にするには、次のように「+x」の前に「u」を追加する必要があります。
chmod u + x sample.sh
ls -l
と入力します 、それはあなたが持っているものです:
所有者とそのグループの両方に権限を付与する場合、コマンドは chmod ug + x sample.sh
になります。 。
素晴らしい!これは私があなたに見せたいことをカバーしていると思います。パーミッションを表すために8進数または2進数の値でchmodを使用する方法など、他にも興味深いことがあります。しかし、これらは私たちが同じ結果を得るために使用するモードであり、文字はこれらの結果を達成するためのより簡単な方法であると私は信じています。
コマンドの詳細が必要な場合は、 chmod --help
と入力するだけです。 、コマンドで何ができるかについての説明が表示されます。 man chmod
と入力すると、さらに詳細な説明が表示されます。 。
この記事がお役に立てば幸いです。 Linuxコマンドに関するその他の記事については、freecodecamp.org/newsを確認してください。
ハッピーコーディング! 😃