sudoを使用しないと、一部のコマンドが欠落しているようです。

sudoを使用しないと、一部のコマンドが欠落しているようです。

私はDebian 10(9からアップグレード)を実行しており、最近かなりの数のコマンドが実行されていない限り、システムに欠けているようです。sudobashはコマンドが見つからないと言います。

$ reboot
bash: reboot: command not found

として実行している場合でも、これが発生しますroot。以下を含むかなり多くのユーティリティがこのアプローチを使用します。

  • shutdownそしてreboot

  • fdiskのような多くのパーティショニングツールgparted

  • update-grubそしてgrub-install

  • modprobe

sudo私は間違いをした場合に備えてコマンドを実行するのが好きですsudo !!が、この間違ったメッセージは、そのコマンドがその時点でシステム全体で実際に実行されているかどうかを無駄に検索します。 。

マニュアルページがまだ存在し、一般ユーザーとして見ることができることは注目に値します。

only root can do thatwithのようなエラーが発生しないのはなぜですかmount?この行動はより安全ですか?また、消す方法はありませんか?

答え1

コメントのおかげで、これについて知り、/sbinDebianではデフォルトで除外/usr/sbinされました。$PATH私は次の行を私のコードに追加してこれをしました~/.bashrc

PATH=$PATH:/sbin:/usr/sbin

これで、すべてのコマンドが正常に表示されます。

$ update-grub
grub-mkconfig: You must run this as root

答え2

PATH環境変数を確認しましたか?これは通常、誰かが誤ってPATH変数を変更して実行可能な検索パスが破損した場合に発生します。

答え3

(他の回答で述べたように:) "/sbin/そして、/usr/sbin/これらのディレクトリの実行可能ファイルには通常root権限が必要なため、通常のユーザーが実行できないと予想されるため、パスは意図的にPATH変数から除外されることがよくあります。

完全なsudoコマンドを使用しますecho。その後、誤ってキーを押すなどの問題が発生した場合は、コマンドが画面Enterに表示され、実際に何も起こらずにコマンドプロンプトに戻ります(ただし、コマンドの置き換えに注意してください)。その後、Up矢印を使用して戻ってコマンドをそのまま編集できます。

また、一部のコマンドはオプションを提供しているため、コマンド自体のマニュアルページを確認してください。のみ表示このコマンドは何をするのか、実際にはしなかった

たとえば、要求されたすべての操作を実行するオプション(または:)がsfdiskありますが、-n--no-actionデバイスに書き込まないそのため、実際の修正は行われませんでした。

永久に変更するには、.bashrcユーザーのホームディレクトリでファイルを編集します(BASHを使用している場合)。新しいユーザーに変更を永続的に適用するには、この操作を実行できます/etc/skel/。デフォルトの動作に応じて、このディレクトリの内容は追加した新しいユーザーのホームディレクトリにコピーされます。

安全マニュアル:以下のリンクのチュートリアルでは、bin/各ユーザーのホームディレクトリにディレクトリを追加して、ユーザーが独自の実行可能ファイルを使用できるようにすることをお勧めします。しかし、良いセキュリティ方法は次のとおりです。障害を負う/home修飾子を使用してnoexecパーティションから実行可能ファイルを実行しますfstab。これにより、管理者が承認した実行可能ファイルのみを実行できます。ディレクトリ/usr/local/ツリーには、標準(セキュア)リポジトリを通さない実行可能ファイルを追加するためのスペースがあり、展開によって提供される標準パッケージの拡張を許可しながら管理制御を維持できます。

次の短いチュートリアルを見ると便利です。https://www.tecmint.com/set-path-variable-linux-permanently/

関連情報