Ubuntu 20.04
我正在尝试更改用户 backuppc 的 shell:
brad@ubuntu:~$ su - backuppc /usr/bin/bash
Password:
/usr/bin/bash: 1: Syntax error: "|" unexpected
brad@ubuntu:~$ whereis bash
bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
更新:已解决
-, -l, --login 以登录 shell 的形式启动 shell,其环境与真实登录类似:
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
屁股:
brad@zika:~$ su -
Password:
su: Authentication failure
我做错了什么?谢谢大家!
答案1
在 Ubuntu 上,root 帐户未激活。因此,该命令su -
将不起作用。此命令为 root 用户启动登录 shell,但不起作用。su - backuppc
为用户启动登录 shell backuppc
。如果该用户存在于系统中,则此命令有效。
要使用 root 权限打开交互式提示符,请使用sudo -i
。但是,对于许多管理员任务,很少需要保持具有 root 权限的终端打开。而是在需要 root 权限的命令前加上sudo
。
要更改另一个用户的登录 shell,例如 user backuppc
,你可以使用
sudo chsh backuppc -s <path-to-shell>