我有一个用户“test”,并且我修改了 /etc/passwd 文件,以便每当“test”登录或执行 ssh 时运行我自己的某个脚本(我们称之为 somescript.sh)。
后来,我将“/etc/passwd”文件更改为在“test”登录或执行 ssh 时运行“/bin/bash”(默认运行的程序),但无论何时“test”登录/ssh,仍会运行前一个脚本(somescript.sh)而不是 bash。
不知道该找谁来纠正这个问题。请帮忙。谢谢
编辑
test:x:1001:1001:test,,,:/home/test:/home/admin/scripts/script.sh
==> 之前
script.sh
是一个循环接受用户输入的 shell 脚本,有一个选项“退出”,我可以通过该选项退出循环,脚本结束
test:x:1001:1001:test,,,:/home/test:/bin/bash
==> 之后
答案1
根据具体somescript.sh
情况,登录后执行此操作可能比使用更好的方法/etc/passwd
。如果可能,您可以以测试身份登录并使用
chsh -s /bin/bash
这应该将测试的登录 shell 设置为 bash。完成此操作后,此文件中包含一些有用的信息回答关于 bash shell 启动时运行的不同脚本、它们运行的顺序等。一旦你知道了适当的文件,你可以添加以下行
source /path/to/somescript.sh
到该文件,它将在每次用户登录时运行。