私はDebian 10(9からアップグレード)を実行しており、最近かなりの数のコマンドが実行されていない限り、システムに欠けているようです。sudo
bashはコマンドが見つからないと言います。
$ reboot
bash: reboot: command not found
として実行している場合でも、これが発生しますroot
。以下を含むかなり多くのユーティリティがこのアプローチを使用します。
shutdown
そしてreboot
fdisk
のような多くのパーティショニングツールgparted
update-grub
そしてgrub-install
modprobe
sudo
私は間違いをした場合に備えてコマンドを実行するのが好きですsudo !!
が、この間違ったメッセージは、そのコマンドがその時点でシステム全体で実際に実行されているかどうかを無駄に検索します。 。
マニュアルページがまだ存在し、一般ユーザーとして見ることができることは注目に値します。
only root can do that
withのようなエラーが発生しないのはなぜですかmount
?この行動はより安全ですか?また、消す方法はありませんか?
答え1
コメントのおかげで、これについて知り、/sbin
Debianではデフォルトで除外/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/