LinuxでのSudoとは何ですか?その使用方法
優れたXKCDウェブコミックからの上記のコミックを考えてみましょう。椅子に座っている怠惰な仲間は、友達にサンドイッチを作ってもらいたいと思っていますが、彼らにそれをさせる権限がありません。つまり、彼が強力なsudoコマンドを呼び出すまでです。その後、サンドイッチが何らかの形で作られます。
実生活でsudoを試してみるのはおそらく効果的ではありませんが、Linuxの世界のあらゆる障害を乗り越える魔法のコマンドです。 sudoとは何ですか?なぜそれが存在するのですか?答えは、Linuxがパーミッションを処理する方法にあります。
Linuxユーザー権限について
Linuxは、パーミッションの処理方法により、安全なオペレーティングシステムと見なされています。 macOS(Linuxと祖先を共有していた)やWindowsなどのオペレーティングシステムは、この点でLinuxに似ていますが、オープンソースオペレーティングシステムはまだややユニークです。
Linuxがパーミッションをどのように処理するかを理解すると、sudoコマンドに頭を悩ませるのがはるかに簡単になります。最新のオペレーティングシステムにはすべて、「管理者」または「root」のユーザー権限レベルがあります。管理者アカウントまたはrootアカウントをお持ちの場合は、設定を変更したり、データを削除したり、通常はコンピューターで好きなことをしたりできます。
これには、データの損失や完全なワイプと再インストールの必要性につながる可能性のある、おそらく行うべきではないことも含まれます。
Linuxは、rootユーザーレベルの権限をデフォルトにしません。代わりに、許可レベルを上げないと、アカウントがシステムの非常に機密性の高い部分にアクセスすることはできません。つまり、グラフィカルインターフェイスを使用して通常とは異なることを行う場合、システムは管理者パスワードの入力を求めます。
ただし、ターミナルコマンドラインを使用して処理を実行する場合は、sudoが最も安全で効率的な方法です。
Sudoとターミナル
Linuxで昇格された権限を自分に与えるには2つの方法があります。 1つは、rootユーザーとして永続的にログインすることです。これに伴う問題は、コンピュータにアクセスする可能性のある他の誰もが大混乱を引き起こす可能性があり、あなたでさえ偶然にそれを行う可能性があるということです。 Sudoは、それに続く特定のコマンドを実行するために、短時間だけアクセス許可を昇格させます。
Sudo構文
Sudoの構文(コマンドの形式)は単純です。 「sudo」に続けて実行するコマンドを入力するだけです。
たとえば、「sudo apt-get update」は、関連ファイルにリストされているすべてのアプリリポジトリを更新します。 sudoを使用せずに実行しようとすると、権限がないことを示すエラーメッセージが表示されます。ちなみに、これは通常、お気に入りのLinuxディストリビューションを新規インストールした後に実行する最初のsudoコマンドです。
Sudoの「Su」
sudoの「su」は「superuser」の略で、スタンドアロンコマンドです。 「su」コマンドを使用すると、sudoが昇格するユーザーの権限を変更できます。
sudoは一時的にrootに昇格しますが、suは適切な権限を持つ別のユーザーにあなたを変更します。これは重要ではないように思われるかもしれませんが、sudoがユーザーを昇格させるアカウントを変更するのには十分な理由があります。
まず、アカウントを変更すると、通常のユーザーはルートパスワードを知らなくなります。次に、すべてのsudoコマンドのログがあります。これは、システム管理者(root)がsuコマンドを発行したユーザーを検索できることを意味します。
suの構文は、基本的にsudoと同じです:
SuUSERNAME-cコマンド
USERNAMEを目的のユーザーに置き換えてコマンドを実行し、COMMANDを実行するLinuxコマンドに置き換えます。
別のユーザーとして複数のコマンドを実行する場合は、次を使用します。
Suユーザー
USERを目的のユーザーアカウントIDに置き換えます。
suを単独で使用する場合、「exit」コマンドを使用するまで、Linuxは他のユーザーアカウントに切り替えます。このセッションまたはそのセッションで端末にアクセスする次のユーザーには、引き続き昇格された権限があることを覚えておくことが重要です。これが、一般的にsuよりもsudoを使用する方が良い理由です。
Sudoの制限時間
sudoコマンドを初めて使用するときは、パスワードを入力する必要があります。その後、そのパスワードは15分間有効です。このデフォルトを変更するには、コマンド sudo visudoを実行します。 「timestamp_timeout=」をより長い値またはより短い値に変更します。ただし、sudoパスワードが有効である期間を延長または短縮する正当な理由がない限り、これを行うことはお勧めしません。
Sudoオプションスイッチ
sudoの構文は単純ですが、いくつかのスイッチについて知っておく価値があります。これらのコマンドは、追加情報を開いたり、sudoセッションを制御したりするのに役立ちます。
- -h sudoの構文とコマンド情報を表示します。
- -V マシン上のsudoの現在のバージョンを表示します。
- -v sudoの制限時間を更新し、時計を再開します。
- -l </ strong> ユーザー権限を一覧表示します。
- -k 現在のsudoセッションをすぐに強制終了し、昇格された特権を削除します。
sudoにはさらに多くのオプションが組み込まれており、上記の最初の-hスイッチを使用してすべてを確認できます。
上のスクリーンショットは、ヘルプオプションを使用した場合の結果です。
便利なSudoコマンド
では、すべてのLinuxユーザーが知っておくべきsudoによって強化されたコマンドはどれですか? sudo apt-get updateについてはすでに説明しましたが、これらにも注意してください:
- Sudoapt-アップグレードを取得 インストールされているすべてのパッケージをアップグレードします。
- Sudo apt-get install
- パッケージ名がわからない場合は、 dpkg –listを使用してください 。
- インストールされているパッケージをターミナルから削除する場合は、 sudo apt-get remove
を使用します。 (ここでも、問題の特定のパッケージ名に置き換えます)。
これらはおそらく最初に使用する必要のあるsudoコマンドですが、上記で学習したように、どのコマンドもsudoに続くことができますが、より高い権限が必要なコマンドのみを使用する必要があります。
-
LinuxでTeeコマンドを使用する方法
Linuxシェルでパイプとリダイレクトを使用したことがある場合は、teeを使用する必要がある場合もあります。 ユーティリティ。 ティーは何をしますか? などのコマンド ls 現在のディレクトリの内容が表示されます。つまり、これらのコンテンツをstdout(標準出力)(通常は画面)、より正確には仮想端末ディスプレイに表示します。 のようなコマンド ls > file123 画面には何も表示されません。 signは、すべての出力をstdoutに表示するのではなく、ファイルにリダイレクトします。 file123には、以前に画面に表示されていたコンテンツが入力されます。 ディレクトリ
-
LinuxおよびmacOSでfdを使用してファイルをすばやく検索する方法
fdは、findコマンドのより簡単な代替手段です。切り捨てられた構文と省略されたコマンド構造を使用して、入力したコマンドを簡潔かつ的確に保ちます。ただし、fdの入力を容易にする冗長性の欠如により、理解がより困難になります。 fdは、デフォルトのfindコマンドよりも高速にパターンマッチングも実行します。 LinuxとmacOSでfdを使用する方法を学びます。 Linuxにfdをインストールする fdは、デフォルトでは多くのシステムに出荷されていません。好みのパッケージマネージャーを使用してアプリケーションをダウンロードしてインストールする必要があります。そうすれば、ターミナル内から実行できま