操作系统:Debian 10.10
我搜索了解为什么当我使用“su -”启动时“usermod”命令运行,但是当他从“su root”启动时,命令是“bash:usermod:命令未找到”。
谢谢!
su命令不-保留您现有的环境,并且仅将您切换到用户而不加载他的所有环境变量。
su -将模拟用户登录,不仅会将您切换到用户,还会加载他的环境变量。
从man su
Run Code Online (Sandbox Code Playgroud)-, -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 usermodorwhich usermod并查看它usermod在路径上/usr/sbin/usermod,您可能不会在after/usr/sbin的输出中看到它,但会在命令之后将其放在 PATH 变量中echo $PATHsu rootsu -
/sbin 与/bin 类似,该目录包含引导系统所需的命令,但普通用户通常不会执行这些命令。
/usr/sbin 该目录包含用于系统管理的程序二进制文件,这些程序对于引导过程、挂载 /usr 或系统修复来说并不是必需的。
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |