2017-10-20 15 views
-1

私は本当になぜこれが起こっているのか理解できない奇妙な問題を経験しています。シェルから手動で次のコマンドを実行すると、手動で動作します。次のコマンドはbashで動作しますが、スクリプトでは動作しません。

sudo -u some-user echo "$SSH_KEY" | /home/some-user/.ssh/authorized_keys 

しかし、bashスクリプトからは、メッセージに失敗してアクセス権がありません。

#!/bin/bash 
sudo -u some-user echo "$SSH_KEY" | /home/some-user/.ssh/authorized_keys 

設定するbashオプションはありますか?誰かがこの動作を説明できますか? これは、非対話型端末などのためのbashセキュリティのようなものですが、私はソリューションのためにGoogleに創造性を失いました。

私はUbuntu 16.04を実行しています。

+2

bashスクリプトから実行したときのメッセージの正確なテキスト*は何ですか?どのようにbashスクリプトを実行しますか?おそらく最も重要なのは、 'some-user'が実行可能プログラムを認証キーファイルとして持つのはなぜですか? –

+0

質問に間違ったコマンドをコピーする必要があります。スクリプトにコピーするときに同じエラーが発生した可能性もあります。 – Barmar

+0

'authorized_keys'は' sudo'の有無にかかわらず、実行できるコマンドではなく、データファイルです。 – Barmar

答えて

0

調査の時間が経ってから、スクリプトからは発生しないパスワードプロンプトのために実行されなかったsudoコマンドのようです。

解決方法は、スクリプトを実行する前に最初にsudoコマンドを実行するか、またはスクリプト全体をsudoとして実行してパスワードを1回入力できるようにし、他のsudoコマンドはパスワードプロンプトなしで実行していました。

関連する問題