オペレーティングシステム:Debian 10.10
"su -"で起動したときに "usermod"コマンドが実行される理由を理解しようとしましたが、 "su root"から起動すると、コマンドは "bash:usermod:command notfound"です。
ありがとうございます!
ベストアンサー1
su
このコマンドは既存の環境を維持せず、-
すべての環境変数をロードせずにユーザーに切り替えるだけです。
su -
ユーザーログインをシミュレートしてそのユーザーに切り替えるだけでなく、そのユーザーの環境変数もロードします。
~からman su
-, -l, --login Start the shell as a login shell with an environment similar to a real login: o clears all the environment variables except TERM and variables specified by --whitelist-environment o initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH o changes to the target user's home directory o sets argv[0] of the shell to '-' in order to make the shell a login shell
この場合、rootユーザーのPATH変数内のすべての要素をロードできない可能性があります。
echo $PATH
実行後に入力してください。su root
コマンドを実行すると、su -
PATHに追加のフォルダが表示されることがありますsu -
。
usermod
コマンドはに配置する必要があります/usr/sbin
。これはスーパーユーザーのみが使用できるパスです。内部コマンドは、管理目的で通常のユーザーではなく管理ユーザーのみが実行できます/sbin
。/usr/sbin
type usermod
またはを使用してパスにあることをwhich usermod
確認できます。 afterの出力には表示されませんが、コマンドの後のPATH変数に配置されます。usermod
/usr/sbin/usermod
/usr/sbin
echo $PATH
su root
su -
/ sbin / binと同様に、このディレクトリにはシステムを起動するために必要なコマンドが含まれていますが、通常のユーザーは通常は実行しません。
/usr/sbin このディレクトリには、ブートプロセス、/usr マウント、またはシステムの回復に不要なシステム管理に使用されるプログラムバイナリが含まれています。