ホームページ システムチュートリアル Linux Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

Jan 15, 2024 pm 04:42 PM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

Linux コマンド ラインを使用しているときに、「権限が拒否されました」というエラー メッセージが表示されたことがありますか? これは、root 権限を必要とする操作を実行しようとしていることが原因である可能性があります。たとえば、以下のスクリーンショットは、バイナリ ファイルをシステム ディレクトリにコピーしようとしたときに発生したエラーを示しています。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

シェルに対するアクセスが拒否されました

それでは、このエラーを解決するにはどうすればよいでしょうか? それは非常に簡単で、sudo コマンドを使用します。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

sudo

を使用してコマンドを実行します。

ユーザーは、このコマンドを実行した後、(自分の) ログイン パスワードを入力するよう求められます。正しいパスワードを入力すると、操作は正常に実行されます。

sudo は、Linux でコマンド ラインを使用する人なら誰でも知っておく必要があるコマンドであることは間違いありません。ただし、このコマンドをより責任を持って効果的に使用するには、関連する (そして詳細な) 詳細を知る必要があります。これはまさにこの記事で説明する内容です。

先に進む前に、この記事で説明されているすべてのコマンド手順は、Ubuntu 14.04 LTS の Bash バージョン 4.3.11 でテストされていることを言及しておきます。

sudoとは

ご存知のとおり、sudo は昇格された特権 (通常は root ユーザー) を必要とするコマンドを実行するために使用されます。そのような例の 1 つについては、この記事の前半のセクションで説明しました。ただし、必要に応じて、sudo を使用して別の (非 root) ユーザーとしてコマンドを実行できます。

これは、ツールによって提供される -u コマンド ライン オプションによって実現されます。たとえば、次の例に示すように、私 (himanshu) が別のユーザー (howtoforge) のホーム ディレクトリにあるファイルの名前を変更しようとしましたが、「アクセスが拒否されました」というエラーが発生しました。次に、sudo -u howtoforge を追加し、同じ「mv」コマンドを使用しました。コマンドは正常に実行されました。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

sudoとは

誰でも sudo を使用できますか? ###いいえ。ユーザーが sudo を使用できるようにするには、ユーザーに関連する情報が /etc/sudoers ファイルに存在する必要があります。 Ubuntu Web サイトからの次の抜粋を参照すると、より明確になります。 /etc/sudoers ファイルは、誰がどのマシンでどのユーザーとしてどのコマンドを実行できるかを制御し、特定のコマンドにパスワードが必要かどうかなどの特殊な状況も制御できます。このファイルは、エイリアス (基本変数) とユーザー仕様 (誰がどのコマンドを実行できるかを制御) で構成されます。

Ubuntu を使用している場合、ユーザーが sudo コマンドを実行できるようにするのは簡単です。アカウントの種類を管理者に変更するだけです。これは、[システム設定] -> [ユーザー アカウント] で直接行うことができます。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用するsudo ユーザー

まずウィンドウのロックを解除します:

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用するウィンドウのロックを解除しています

次に、ユーザー タイプを変更するユーザーを選択し、タイプを「管理者 アドミニストレータ」に変更します。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用するsudo アカウントを選択してください

ただし、Ubuntu を使用していない場合、またはディストリビューションがこの機能を提供していない場合は、/etc/sudoers ファイルを手動で編集してこの変更を実装できます。ファイルに次のような行を追加するには: リーリー

言うまでもなく、[user] は sudo 権限を増やしたいユーザーのユーザー名に置き換える必要があります。ここで言及する価値のある重要なことの 1 つは、visudo コマンドを使用してファイルを編集することが公式に推奨されているということです。必要なのは、次のコマンドを実行するだけです:

リーリー

何が起こっているかを説明するために、ここに visudo マニュアルからの抜粋を示します:

visudo 以安全的模式编辑 sudoers 文件。visudo 锁定 sudoers 文件以防多个编辑同时进行,提供基本的检查(sanity checks)和语法错误检查。如果 sudoers 文件现在正在被编辑,你将会收到一个信息提示稍后再试。

关于 visudo 的更多信息,前往这里。

什么是 sudo 会话

如果你经常使用 sudo 命令,你肯定注意到过当你成功输入一次密码后,可以不用输入密码再运行几次 sudo 命令。但是一段时间后,sudo 命令会再次要求你的密码。

这种现象跟运行 sudo 命令数目无关,跟时间有关。是的,sudo 默认在输入一次密码后 15 分钟内不会再次要求密码。15 分钟后,你会再次被要求输入密码。

然而,如果你想的话,你能改变这种现象。用以下命令打开 /etc/sudoers 文件:

sudo visudo
ログイン後にコピー

找到这一行:

Defaults env_reset
ログイン後にコピー
ログイン後にコピー

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

env_reset

然后在这行最后添加以下变量:

Defaults env_reset,timestamp_timeout=[new-value]
ログイン後にコピー

[new-value] 为想要 sudo 会话持续的时间数。例如,设数值为 40。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

sudo timeout value

如果你希望每次使用 sudo 命令时都要求输入密码,你可以把这个变量赋值为 0 。想要 sudo 会话永远不过时,应赋值为 -1。

注意将 timestamp_timeout 的值赋为 “-1” 是强烈不推荐的。

sudo 密码

你可能注意过,当 sudo 要求输入密码然后你开始输入时,不会显示任何东西 —— 甚至连常规的星号都没有。虽然这不是什么大问题,不过一些用户就是希望显示星号。

好消息是那有可能也很容易做到。所有你需要做的就是在 /etc/sudoers 文件里将下述的行:

Defaults env_reset
ログイン後にコピー
ログイン後にコピー

改成

Defaults env_reset,pwfeedback
ログイン後にコピー

然后保存文件。

现在,无论什么时候输入 sudo 密码,星号都会显示。

Linux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用する

hide the sudo password

一些重要的 sudo 命令行参数

除了 -u 命令行参数(我们已经在这篇教程的开始部分讨论过了),还有其他重要的 sudo 命令行参数值得注意。在这部分,我们将会讨论其中一些。

-k 参数

考虑下这种情况:输入密码后你刚刚运行了几个 sudo 驱动的命令。现在,如你所知,sudo 会话默认保持 15 分钟。假设在这会话期间,你需要让某些人访问你的终端,但你不想让他们可以使用 sudo ,你将会怎么做?

还好,有 -k 命令行参数允许用户取消 sudo 权限。这是 sudo 帮助页面(man page)对此的解释:

-k, --reset-timestamp

不带任何命令使用时,撤销用户缓存的凭据。换句话讲,下一次使用 sudo 将会要求输入密码。使用这个参数不需要密码,也可以放到一个 .logout 文件中来撤销 sudo 权限。

当与一个命令,或者一个可能需要密码的操作一起用时,这个参数将会导致 sudo 忽略用户缓存的凭据。结果是 sudo 要求输入密码(如果这是被安全策略所要求的),而且不会更新用户缓存的凭据。

-s 参数

有时你的工作要求你运行一堆需要 root 权限的命令,你不想每次都输入密码。你也不想通过改变 /etc/sudoers 文件调整 sudo 会话的过期时限。

这种情况下,你可以用 sudo 的 -s 参数。这是 sudo 帮助页面对此的解释:

-s, --shell

SHELL 環境変数が設定されている場合、またはユーザーのパスワード データベースを呼び出してシェルが指定されている場合、シェルが実行されます。コマンドが指定されている場合、そのコマンドはシェルの -c パラメータを介して実行のためにシェルに渡されます。コマンドが指定されていない場合は、対話型シェルが実行されます。

つまり、このコマンド パラメーターの基本的な機能は次のとおりです。

新しいシェルの開始 - どのシェルについては、SHELL 環境変数の割り当てを参照してください。 $SHELL が空の場合、/etc/passwd で定義されたシェルが使用されます。
-s パラメーターを使用してコマンド名を渡す場合 (sudo -s whoami など)、実際に実行されるのは sudo /bin/bash -c whoami です。
他のコマンドを実行しない場合 (つまり、sudo -s のみを実行する場合)、root 権限を持つ対話型シェルが表示されます。

-s コマンド ライン パラメータを使用すると、root 権限を持つシェルが得られますが、これは root 環境ではないことに注意してください。依然として独自の .bashrc を実行しています。たとえば、sudo -s を指定して実行した新しいシェルで whoami コマンドを実行すると、root ではなくユーザー名が返されます。

-i パラメータ

-i パラメーターは、説明した -s パラメーターに似ています。ただし、違いがあります。重要な違いの 1 つは、-i を指定すると root 環境が提供されることです。つまり、(ユーザーの) .bashrc は無視されます。これは、root として明示的にログインせずに root になるのと似ています。さらに、root ユーザーのパスワードを入力する必要もありません。

重要: su コマンドを使用すると、ユーザー (デフォルトは root) を切り替えることもできることに注意してください。このコマンドでは、root パスワードを入力する必要があります。これを回避するには、sudo (sudo su) を使用して実行すると、ログイン パスワードの入力のみが必要になります。ただし、su と sudo su の間には暗黙的な違いがあります。それらについて、および sudo -i との違いについては、ここを参照してください。

要約

これで、少なくとも sudo の基本と、sudo のデフォルトの動作を調整する方法を理解できたと思います。説明したように /etc/sudoers を調整してみてください。 sudo コマンドの詳細については、フォーラムのディスカッションも参照してください。

以上がLinux コマンドラインエラープロンプトを解決する方法: sudo コマンドを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosはメンテナンスを停止します2024 Centosはメンテナンスを停止します2024 Apr 14, 2025 pm 08:39 PM

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

Centosをインストールする方法 Centosをインストールする方法 Apr 14, 2025 pm 09:03 PM

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosのgitlabのバックアップ方法は何ですか Centosのgitlabのバックアップ方法は何ですか Apr 14, 2025 pm 05:33 PM

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

セントスにハードディスクをマウントする方法 セントスにハードディスクをマウントする方法 Apr 14, 2025 pm 08:15 PM

CentOSハードディスクマウントは、次の手順に分割されます。ハードディスクデバイス名(/dev/sdx)を決定します。マウントポイントを作成します( /mnt /newdiskを使用することをお勧めします);マウントコマンド(Mount /dev /sdx1 /mnt /newdisk)を実行します。 /etc /fstabファイルを編集して、永続的なマウント構成を追加します。 Umountコマンドを使用して、デバイスをアンインストールして、プロセスがデバイスを使用しないことを確認します。

Centosがメンテナンスを停止した後の対処方法 Centosがメンテナンスを停止した後の対処方法 Apr 14, 2025 pm 08:48 PM

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

See all articles