開発者は本番環境にルートを持ってはいけません。開発者以外の全員がこれに同意します。しかし、開発者はケーキを用意して食べることもできます。誰もこれを明示的に言及していないことに私はいくらか驚いています:
私の長年の小規模ビジネスクライアントの1つに、DrupalがインストールされているWebサイト、いくつかのWordPressサイト、SMFフォーラム、およびその他のいくつかのランダムな小さなWebアプリがあります。私は契約のシステム管理者であり(また、歴史的な理由から、必要に応じてWordPressとSMFを更新/ハックします)、私のクライアントには独自の契約Drupal開発者がいます。環境は、パブリッククラウドプロバイダー上の複数のVMware仮想マシンです。
開発者は本当にrootアクセスを必要とし、それを必要としています。たとえば、すべてのカスタムDrupalを機能させるために、nginxの書き換えルールを記述するのは彼らの責任です。しかし、実稼働サーバーでrootアクセス権を与えることは決してありません。クライアントはそれに同意します。
そこで私たちは妥協しました:彼らはテストWebサーバーでルートアクセスを取得します(これはIPアドレスを除いて一般に運用環境と同じで、同じクラウド上にあります)。実稼働と同様にetckeeperがあるため、必要な変更やインストールしたパッケージを確認できます。次に、変更を実稼働環境に取り込むか、何をしたいのか、何が悪いのかを伝えます。そして、彼らが本当に台無しになった場合(彼らはまだしていない、gawdに感謝)私は彼らの変更を簡単に元に戻すことができます。
運用データベースサーバーにはまったくアクセスできません。ユーザーログインさえありません。私のクライアントと私だけです。
(Webアプリ自体は、gitで直接デプロイします。それを破ると、それを修正し、なぜ彼の開発者であり続けるべきかをクライアントに説明します。それらまたはfacepalmで笑います。)