7

展開を行うためにCapistranoをセットアップしようとしていますが、capistranoユーザーの一般的な想定と思われるものに遭遇しました。リモートホストにSSHで接続するユーザーには、展開のディレクトリへの書き込み権限があります。

ここで、管理者は1つの区別を持つ一般的なユーザーです。つまり、sudoを実行できます。最初は、sudoに関連する構成がいくつかあるので、それで十分だと思いましたが、結局はそうではないようです。

これを回避する方法はありますか?展開を行うすべての人が共有するユーザーを作成することは、受け入れられる解決策ではありません。

編集:明確にするために、sudoを呼び出さずにデプロイアクションを実行しないでください。これは、ユーザーがデプロイを許可されているかどうかをチェックするゲートウェイポイントであり、必須のチェックポイントである必要があります。

現在受け入れられている回答は、その基準に適合していません。ユーザーに追加のアクセス許可を付与することで、sudoを回避します。キャピストラーノはこの点で根本的に壊れているという結論に達したので、とにかくそれを受け入れています。

4

1 に答える 1

19

Linuxディストリビューションにデプロイしていると思います。問題を解決する最も簡単な方法は、グループ(たとえば、デプロイヤー)を作成し、そのグループにデプロイするためのアクセス許可を持つ必要がある各ユーザーを追加することです。グループが作成され、ユーザーがグループに参加したら、展開パスの所有権とアクセス許可を変更します。

ディストリビューションによって、構文は少し異なります。これはubuntu/debian用です:

グループを作成します。

$ sudo groupadd deployers

グループにユーザーを追加します。

$ sudo usermod -a -G deployers daniel

最後の引数はユーザー名です。

次に、展開パスの所有権を更新します。

$ sudo chown -R root:deployers /deploy/to/path/

の構文は:です。ここでは、現在パスを所有しているユーザーがrootであると想定しています。ディレクトリを所有するユーザーを更新します。

最後に、展開パスのアクセス許可を変更します。

$ sudo chmod -R 0766 /deploy/to/path/

これにより、デプロイヤーグループのユーザーは、その下にあるすべてのファイルとディレクトリを読み書きできるようになります。/deploy/to/path

于 2012-04-23T23:43:35.900 に答える