3

新しいサーバーに必要なパッケージをインストールするために常に使用する要点があります。

http://gist.github.com/4372049

私がする必要があるのは、ssh経由で新しいサーバーに次のように入力することだけです

bash -c "$(curl -fsSL https://raw.github.com/gist/4372049)" <mysqlPassword>

私は行く準備ができています。

これで、ubuntu の新規インストールで常に実行する必要がある一連の手順ができました。

first at root i did a

echo $SHELL
I saw that I have /bin/bash

then i switch to www-data

sudo su www-data
then i do a

echo $SHELL
I saw that I had

/bin/sh
instead.

So I did a

chsh -s /bin/bash
I was prompted for my www-data password so I gave it.

Password:
after that I switch back to root

exit
then i log back into www-data

sudo su www-data
I checked the $SHELL again

echo $SHELL
I saw that now it is

/bin/bash

ここにリストされています https://askubuntu.com/a/232663/10591

同様の方法で実行するために gist.github.com に配置できる bash スクリプトを作成する方法はありますか?

もしそうなら、どのように bash スクリプトを書きますか?

アップデート:

ローカライズされすぎていると見なされたため、この質問を閉じる投票が行われたことに気付きました。

これを言い換えてみましょう

ユーザー名とパスワードの引数を取り、コマンドを実行できるように、gist に配置して Linux コンソールで使用できる bash スクリプトを作成するにはどうすればよいですか

chsh -s /bin/bash 

パスワードを正しく入力しますか?

これは私の試みです: https://gist.github.com/simkimsia/5126919

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

インターフェイスがパスワードを要求したときにシェルスクリプトを使用してパスワードを提供する方法を読んだ後

https://stackoverflow.com/a/1988255/80353

問題は、プロンプトが表示されたときにパスワードを送信することです

Password: 
4

1 に答える 1

2

以下のコマンドを root として実行している限り、問題ありません。

chsh -s /bin/bash <username>

この場合、それは

chsh -s /bin/bash www-data

https://gist.github.com/simkimsia/4372049#file-installation-12-10-ubuntu-sh-L373を参照してください

于 2013-06-18T13:03:29.450 に答える