オフショア開発チームには、企業のデスクトップにナンセンスソフトウェアをインストールするという習慣があり(職務とは関係ありません)、ローカル管理者権限を削除することを検討しています。
ローカル管理者、またはローカルパワーユーザーはVS2010の要件ですか?昇格した権利なしでどのように実行しますか?どの問題に遭遇しますか?
オフショア開発チームには、企業のデスクトップにナンセンスソフトウェアをインストールするという習慣があり(職務とは関係ありません)、ローカル管理者権限を削除することを検討しています。
ローカル管理者、またはローカルパワーユーザーはVS2010の要件ですか?昇格した権利なしでどのように実行しますか?どの問題に遭遇しますか?
回答:
プログラマは、管理者アクセス権を持つ制限ユーザーとして作業する必要があります。つまり、プログラマはマシンの管理者である必要がありますが、作業中は常に限られたユーザーアカウントを使用する必要があります。
ソフトウェアをインストールする以外の目的で作業するために昇格した権限が必要な場合は、何か非常に間違っています。さらに悪いことに、パワーユーザーとして作業したり、UACプロンプトなどを無効にしたりすると、ソフトウェアのエンドユーザーに影響を与える問題を無視して、同じ権限で実行するように強制します。これは間違っています。
これは、使用しているオペレーティングシステムに関係なく当てはまります。Windowsが登場するのはWindowsだけだと思われますが。
明確にするために:
開発者が制限付きユーザーであるべきだと言うとき、彼らはマシンに対する完全な管理者権限を持っているべきだと言いますが、彼らがコードをテストするときは、制限付きユーザー環境で行われるべきです。たとえば、開発者はマシンを管理者として操作できますが、仮想マシンまたは制限されたユーザーアカウントですべてのテストを実行できます。Linuxでは、これは単に開発者がsudo
アクセスできることを意味します。Windowsでは、UACおよびその他のセキュリティ機能が完全に有効化された管理者レベルのアカウントを意味する場合があります。
これは政治的または管理上の問題であり、技術的な問題ではありません。
上司がそれに応じてフォローアップできるように、「職務に関連しないソフトウェアをインストールしたくない」というルールを作成して伝達することを検討してください。
これを支援するために、システム管理者はインストールされているプログラムのリストを各マシンに要求できます。定期的にこれを行うと、インストールされているものを表示する小さなプログラムを作成できるため、概要をすばやく確認できます。
とはいえ、上記のプログラムが違法または道徳的に容認できない場合を除き、そもそもなぜこれが問題なのでしょうか?
それはあなたが彼らが独立して開発することを期待するものに依存します。
IIS構成、リモートデバッグ、GACへのアクセスの変更、独自のMSIを実行する機能など、いくつかのことは間違いなく影響を受けます。これらが外部委託リソースが独立して行うことを期待するものである場合、私は多くのテストなしでそれを試みません。
あなたのアウトソーシング担当者がローカルでデバッグできるデスクトップアプリで作業している場合は、ほとんど問題なくそれで済ますことができます。
ソース管理を使用していると仮定すると、マシンの定期的な再イメージをいつでもスケジュールできます。
私が働いたほとんどの場所は最初のケースの多くを行い、高い独立性を期待しています。したがって、すべての開発者はローカル管理者であり、承認されていないソフトウェアを任意のマシンにインストールして問題を引き起こす場合、企業ポリシーは懲戒処分を可能にします。
開発用MacBookのポート80でApacheを起動するには管理者権限が必要です。それとは別に、管理者権限のないロックダウンされたマシンにいられなかった理由はありません。本当に必要な場合は、非標準のポートを使用できます。エンタープライズリソースの観点からは、開発者がマシンの特権ユーザーにならないようにすることは理にかなっています。
ただし、開発者をマシン上でロックダウンするには、応答性が高く意欲的な管理チームが必要です。自分で物をインストールできない場合、私のためにそれを行うことができる誰かが必要です。企業がそれにコミットすることを望まない場合、彼らは開発者に彼らのboxenのフルランを与えるべきです。
明らかに後者を好むが、前者の知恵を見ることができる。
VS 2010は、ほとんどの場合、管理者としてではなく実行しています。ただし、サービスの追加または削除、IISの構成、またはレジストリの調整を行う場合は、管理者権限が必要になります。また、プロファイリングツールの中には、VSを管理者として再起動するように促すものもあります。ですから、管理者の権限を持たないオフショアの人々にアカウントを与えることは、彼らの仕事のいくつかの(おそらく小さな)部分を彼らがさせないようにするだろうと思います。
さらに、UACの登場により、管理者権限なしでインストールできるアプリが増えています。彼らはHKLMに物を入れず、System32の下に何も触れず、exesをusers \ whoeverフォルダの下に置きます。これにより、削除がはるかに簡単になりますが、インストールする元のポイントに対処できない場合がありますあなたはゲーム、音楽プレーヤーなどを意味すると思います。
ローカルインストールを本当に防止したい場合、おそらく最善の策は、初期のJava時代からの「ネットワークはコンピューター」という古いビジョンです。誰もがバージョン管理システムで働いており、帰宅する前に毎晩チェックインまたは棚上げする必要があります。電子メールは、開発マシンではなくクラウドに存在します。など。その後、必要なときにいつでも開発マシンのイメージを再作成でき(仮想マシンの場合はさらに簡単)、余分なものがインストールされていないユーザーも気付かないでしょう。週末にオフィスの冷蔵庫を掃除するようなものです。
しかし、注意してください-私はその環境では働きません。私はユーティリティとヘルパーをインストールし、時々ゲームをプレイしますが、どちらかを阻止しようとした人には優しくしません。私は地獄のように生産的です。一部の開発者が生産的でない場合、ローカルインストールを削除しても、それらの生産性や専用性は向上しません。ルートでその問題に対処すると、彼らが管理者であることを気にしないでしょう。
これには2つのアプローチがあります。1つは、全員がラップトップで作業することで、家に帰ったときに管理者に提出する必要がありました。管理者がそれを取得すると、マシンのイメージを再作成するCDを貼り付けます。イメージが再作成されると、棚に置かれ、次の人が利用できるようになります。すべてのマシンが同一であることを確認してください。そうすれば、「良い」マシンを探している人がすべてマシンを通り過ぎてしまうことはありません。
私が見た他のことは、全員がCitrixサーバーから起動することです。マシンにはローカルストレージがまったくなく、ネットワークから標準イメージをロードして実行するだけです。これは、異なる構成を必要とする異なる「タイプ」のユーザーがいる場合に役立ちます(たとえば、UI開発者はSilverlightでイメージを持ち、WCF開発者はIISとSQL Serverなどを持ちます)。
しかし、そうは言っても、Thorbjorn [sic]は頭に釘を打ったと思います。これは管理上の問題であり、おそらく技術的な解決策では適切に対処されません。