如何使用我在github中创建的bash脚本执行chsh?
我有一个要点,我总是用它在新服务器上安装我需要的软件包 我需要做的就是通过ssh在fresh服务器中键入以下内容如何使用我在github中创建的bash脚本执行chsh?,bash,shell,gist,Bash,Shell,Gist,我有一个要点,我总是用它在新服务器上安装我需要的软件包 我需要做的就是通过ssh在fresh服务器中键入以下内容 bash -c "$(curl -fsSL https://raw.github.com/gist/4372049)" <mysqlPassword> 在此处列出 有没有一种方法可以在gist.github.com中编写bash脚本,以类似的方式执行 如果是这样,如何编写bash脚本 更新: 我意识到我有权投票结束这个问题,因为它被认为太本地化了 让我把这句话转述给你
bash -c "$(curl -fsSL https://raw.github.com/gist/4372049)" <mysqlPassword>
在此处列出
有没有一种方法可以在gist.github.com中编写bash脚本,以类似的方式执行
如果是这样,如何编写bash脚本
更新:
我意识到我有权投票结束这个问题,因为它被认为太本地化了
让我把这句话转述给你
如何编写一个bash脚本,我可以将它放在gist中,并在linux控制台中使用它,这样它就可以接受用户名和密码的参数,从而执行命令
chsh -s /bin/bash
以及正确提供密码
这是我的尝试:
su起作用了,但chsh司令部不起作用
更新2:
我已将脚本更改为
EXPECTEDARGS=1
if [ $# -ne $EXPECTEDARGS -o "x$0" == "x" -o $0 == "bash" ]; then
echo "Usage:"
echo " Parameter 1: your username"
echo " Parameter 2: your password"
exit 1
fi
CHANGESHELL_FOR_USER=$0
PASSWORD_OF_USER=$1
########################################
## switch to another user
## read this https://stackoverflow.com/a/1988255/80353
########################################
sudo -u $CHANGESHELL_FOR_USER -H sh -c "chsh -s /bin/bash"
expect "*?assword:*" {send -- "$PASSWORD_OF_USER\r";}
expect eof
读后
及
现在的问题是在提示输入密码时以某种方式发送密码
Password:
只要您以root用户身份运行下面的命令,就可以了
chsh -s /bin/bash <username>
请参见您是否以root用户身份运行脚本?Sudo作为root用户不应该提示输入密码…@Kimvais谢谢,你的评论让我找到了正确的答案。但直到今天我才把这些点联系起来。我会根据你的评论写出答案。
chsh -s /bin/bash <username>
chsh -s /bin/bash www-data