web-dev-qa-db-ja.com

開発者は自分のコンピューターの管理者である必要がありますか?

企業環境では、開発者は自分のコンピューターの管理者権限を持っている必要がありますか?どうして?

技術環境:

  • Windows 7
  • Visual Studio 2008および2010
  • SQLサーバー
36
PBelanger

彼らはすべきですか?それは企業次第です。個人的には大丈夫だと思いますいくつかの理解されたルールがある限り

  1. ボックスの管理者になることは特権ではなく特権です。
    1. 複数の機会にウイルスをキャッチすると、権利が取り消されます
    2. コーポレートエージェントを無効にすると、権利が取り消されます-AV /インベントリ/ソフトウェアの展開など
    3. 基本的に、ネットワークを危険にさらすようなことをすると、権利が取り消されます
  2. インストールするツールは、正式に承認されたリストに載らない限り、プロジェクトの依存関係にしないでください。展開の日にクラッシュしないで、テストなしですべてのサーバーに$ random_libraryをインストールするよう要求してください。
  3. 他の場所にインストールされている通常のアプリケーション以外のものについては、サポートが最善の努力になります。ヘルプデスクやシステム管理者は、dllの競合がある理由をデバッグするために5時間は費やしません。
53
Zypher

通常は「はい」と答えます。デバッガーのようなものは、正しく機能するために管理者権限ではなくてもかなり高い権限を必要とします。多くの場合、開発者はランダムなソフトウェアをインストールする必要があります。これは、チャネルを通過するときにインストールされるまでに数日または数週間かかる場合があります。その間、開発者は通常、特に開発者がコンサルタントである場合、会社にコストをかけずに仕事を停止します。

36
mrdenny

開発には科学と芸術の両方があります。必要なものを「知る」ほど単純ではありません。すでに答えがあれば、私たちの仕事の半分は愚かなことでしょう。多くの場合、正しいアプローチを見つけることは反復的であり、予測できない方法で複数のツールを使用する場合があります。これらのそれぞれを(多くの場合レイテンシが高い)インストールするために仲介者に要求しますが、シナリオに「スーパーUBERツールアドオン」が必要であることはばかげています。

VMがこれに理想的ですが、VMでcannotを実行する(適切に、またはまったく)実行できる開発ツールもたくさんあります。 自分自身はa VM-であり、JVMのようなものではありません。デバイスツールキットなどのフルマシンのemus/vmsです。互換性が向上しています。

さらに、ほとんどの開発ツールは非常に大きなフットプリントを持っています-「通常の」ツールよりもはるかに大きく(VMホスティングを予想よりも少し痛いものにします)、多くの場合、プロセスであるという性質上デバッガーは昇格されたアクセスを必要とします。GUIを集中的に使用する可能性があることは言うまでもなく、VM GUIでフルタイムで実行しようとすると、非常に苦痛です。

パフォーマンスは巨大です。ユーザーがWordでキーを押すたびに、キーが登録されるまで3秒待つのは問題ないと思いますか?私は冗談ではありません-VMなどの開発ツールすることができますこれは厄介です。ほとんどの開発目的では、あなたは必要応答性です。脳からキーボードへの複雑なロジックの流れを中断すると、仕事を完了するのがほとんど不可能になります。そして、私はそれを言うのが嫌ですが、はい。開発時間は高価です。

24
Marc Gravell

Windows環境、特にMicrosoft開発製品を使用する場合、開発者は自分のマシンの管理者権限を必要とします。それらの権利を拒否すると、完全に阻止されないとしても、彼らの仕事をする能力は制限されます。

18
John Gardeniers

免責事項:私は開発者です。

私にとって、この質問(および回答)は、間違ったアプローチから問題を攻撃しているようです。つまり、議論は、管理者が望む/必要とするものと、開発者が望む/必要とするものに焦点を合わせています。しかし、私たちが企業環境にいると指定したので、そのように見てみましょう。

それでは、IT部門または運用部門の責任者、または予算を管理する人の前でこれを議論していると想像して、これらの質問をします。

  1. 部門の機能を実行するために必要な最小限の特権は何ですか?これが私たちのベースラインです。
  2. より多くのアクセスを許可するリスクは何ですか? (実際のリスク、最良/最悪のシナリオだけではない)
  3. より多くのアクセスを許可するために実際に期待されるコストはどれくらいですか? (サポートコスト、経験の浅い管理者による不注意な変更の修正など)
  4. より多くのアクセスを許可しないの真の予想コストは何ですか? (生産性の低下、日常業務を遂行するためのITサポートの必要性、士気による経験者の離職など)

これらの質問に答えることで、情熱的な決断ではなく、情報に基づいた決断を下すことができます。

特定の環境の場合、管理者権限が必要なものがいくつかあります( ユーザー権限とVisual Studio を参照)。これらのことを行わない場合は、質問2〜4に答えることができます。

コンサルタントとして、私はこのポリシーの両極端を見てきましたが、[〜#〜] i [〜#〜]は常にマシンへの管理者アクセスを必要としていますが、それが意味をなさない場合。原因と結果がわからないのですが、例外なく、開発者が管理者アクセス権を持つWindows開発を行っているすべての場所では、すべての開発者の生産性がロックされている場所よりもはるかに高くなっています。

9
Philip Rieck

私は開発者として、基本ユーザーよりも特権レベルを高くしていますが、システム管理者よりは低くしています。

時々、本番環境で動作するように開発しているアプリケーションを取得するために、追加のライブラリをインストールする必要があるかもしれません。ライブラリは、本番環境での展開前、場合によってはアプリケーション開発前に、サンドボックス環境にインストールする必要があります。」

私と協力し、これに同意するシステム管理者は、私たち2人の間でそのルールを積極的に実施し、「依存関係チェック」に合格しなかったアプリケーションの展開を遅らせます。

しかし、あなたの質問に答えるために、はい、開発者は自分のマシンへのフルアクセスを与えられるべきですが、それらのマシンはアプリケーションが最終的にデプロイされる環境から分離されるべきです。その場合、本番環境に安全にデプロイできると見なされるまで、アプリケーションのデプロイメントもサンドボックス化する必要があります。

9
nesv

私はあなたが間違った質問をしていると思います、あなたは尋ねるべきです:

優れた開発者は、自分のPCで管理者権限を与えていない雇用主のために働くでしょうか?

誰かが「必要とするもの」と彼らが期待することはしばしば同じことではありません。結局のところ、開発者が勤務時間内にコーヒーを飲むことを許可する必要はありませんが、そうでない場合は…

(インタビューの段階でポリシーを明確にすることを忘れないでください。そうしないと、管理者権限がないために仕事を引き受けて会社を軽視する可能性があります。プログラマーがこのようなことについて論理的に考えることを期待しないでください! )

4
Ian Ringrose

それはあなたが実際にそれを必要とする人についてあなたが次に誰に尋ねるかによります。あなたが企業のITとリスク管理グループに尋ねると、彼らは恐怖の物語であなたのいたるところに行きます(そして彼らがあなたにそれを与えることになれば、彼らは責任を負わないとの約束の聖なる絆で犠牲にされた山羊を要求します)、開発者一方、管理者権限を要求するのは、ほとんどの場合、仕事がストレスに満ちており、ヘルプデスクからリークを取得するために許可を求める必要がないため、十分に要求するためです。悲惨な状況は、今は権力闘争と権力の行使についてというよりは、ビジネスと生産性のニーズについてです(例えば、結局、フープを介して他の人をジャンプさせる人に帰着します)。

私見、今日まで見た中で最高の作業環境は、2つのグループが分離されているところです。開発者はフォレスト内に独自のドメインを持ち(ITがこのドメインとそのユーザーが会社の残りの部分で実行できることを制御します)、すべてローカル管理者であり、MCSEがローカルドメイン管理者として機能している経験豊富な人がいて、独自のテスト環境を持っていますまた、単一のITポリシー(海賊版ソフトウェアなし)を使用して、ローカルLANで必要なことをほぼ実行できます。企業のITは責任を負わず、開発者にサポートを提供せず、一部の高レベルの企業ルール(ファイアウォールを介したFacebook、ポルノなどは禁止され、開発者は企業のLANを乱用することはできません)のみを実施し、RSAベースのVPNを自宅で使用できます直接LAN内に配置します。きちんとね?

4
mmix

開発の過程において行政権は重要だと思います。サンドボックスにVMを使用するのは比較的簡単ですが、VMに入れてセキュリティを維持できない理由はありません。

何かがうまくいかず、ワイプして数分で再構築できます。

2
DivinusVox

間違いなく!通常、進行中の開発の多くは、仮想環境で行われる場合と行われない場合があります。管理者権限は、サービス処理、レジストリエントリ、およびIISローカルでのオーバーライドの多くを克服するのに役立ちます。一方、それはどれだけtrustあなたはあなたの開発者にいます。

開発者として、私たちがアクセスできないために何かがうまくいかないときはイライラします。

2
Mike

依存します。開発者として、常に最小限の特権の原則に基づいて操作する必要があります。政府の請負業者として働いている場合、たとえば、管理者アクセス権を契約で義務付けられている可能性がありますnot

Java開発者として、私のマシンで管理者権限を持っている必要はほとんどありませんでした継続的に。しかし、必要な場合には正当なケースがあります- オンデマンド管理者アクセス(つまり、物理的に異なるドメイン間でラップトップを移動する必要があり、それに応じてNIC)を変更する必要があります。)それが唯一の時間でした。私のマシンへの永続的で継続的な管理アクセスが本当に必要でしたか。

ITスタッフが不足しているため(または無能であるか赤テープで取り残されているため)、管理者アクセスが必要な場合があります。しかし、有能なIT部門と連携している場合、リモートで(または、「ru​​n-as "管理者がクリックしてインストールします。)

だから、答えは(もう一度)-場合によります。オンデマンドで(または妥当な時間内に)インストールできる応答性の高いITスタッフはいますか?開発者は実際にそれを必要としますか彼らが支払われるタスクのために

開発者が本当にそして合法的にそれを必要とする場合(のように、「私は文字通りそれなしでは何もできません」)利便性とは対照的に(「私は何でもインストールしたい」のように)and ITサポートが十分に応答しない場合理由)、そうです、彼らは自分のマシンへの管理者アクセス権を持っている必要があります。

そうでなければ、いいえ。 最低特権の原則を覚えておいてください、人々。

2
luis.espinal

開発者と開発者がいます。 「開発者」が$ 40 /時間の場合JBoss Javaルールエンジンのルールを作成する人はもちろんそうではありません。「開発者」が$ 350 /時間の場合C/Assemblyの人がビデオを入手しますもちろん、編集ソフトウェアをGPUで可能な限り高速に実行することもできます。

2
thrillscience

答えは主観的であり、個々のシナリオに固有である可能性がありますが、ほとんどの場合、私はイエスと言います。

2
joeqwerty

開発者は(理想的には)2つのドメインログインを持つ必要があります。

ローカル管理者権限(開発作業用)を持つものと、社内の他の全員と同じ権限を持つもの。次に、代表的な権限のセットで作業をテストできます。

これにより、時々表示されるItWorksOnMyMachine-itisの可能性が減少します。

1
Nick Haslam

セキュリティが心配な企業の場合、セキュリティ担当者に指示し、開発やシステムのモデルで機能するポリシーを施行するように依頼します。 Windows環境では、ほとんどの人は、タスクを実行するために、開発中のホストの管理者権限を持っている必要があると言っています。

これは必ずしも本当ではありません...

カスタムポリシーを作成し、すべてのプログラムと機能をシステムの開発ユーザーと連携させることができます。必要な設計に応じて、グループまたはカスタムグループを含むプログラム/システムディレクトリに対するカスタムアクセス許可を使用して、必要最低限​​の作業を行う必要があります。

ほとんどの企業は、ハッカーが制御を取得して独自のツールのコンパイルを開始できるため、開発者がオープンネットワークにシステムを配置することは非常に危険であり、タスクを実行することは私の専門家の意見ではリスクに見合う価値があると言います。

1
Jason B Shrout

私は(あっさりと)反対意見を述べ、否定するだけでなく、「嫌い」と言わなければなりません。サンドボックス化されたVMに対して、開発者に管理者権限を与えることには問題はありません。Zypherはほぼ正しい(太字の修正)でした):

「1. myボックスの管理者になることは特権ではなく特権です。」これらのシステムは、私が最終的に担当する企業資産です。 Joe Developerが海賊版のMicrosoft Bobをインストールするとき(「私はが必要なためそれだから」)、それがどのように行われたかを説明するのは彼ではありません。 t監査前に見つかりました。開発者は日常的に、どういうわけか企業ルールが適用されないだけだと思っています。サンドボックス化されたVMを与えることにより、他の誰もが従う必要のあるすべてのルールに従うことができます(現在、ITのみがシステムとの間でファイルをコピーできるため)。魔法のように、リクエストシステムは開発者によって使用されます繰り返しになりますが、Joe Developerが開発ボックスを壊したとき、空はもう落ちていません。彼は新しいものを要求するだけです(または、バックアップを要求された場合は復元します)。

デニー氏は、アプリがインストールされるのを待たなければならない場合に費用がかかる開発者に言及しました。A。こんにちは...私の時間は、通常、ジョー開発者と同じくらい貴重です(通常、既存のクラップウェアを実行し続けているので、本当に価値があります)。 Joe開発者が彼の最後の傑作をデバッグするのを助けるのに費やしたすべての時間に言及する必要があります)、およびB.開発者がアプリケーションを待っていてITを非難しようとしたために予算超過になったとき、私は言うでしょう:

あなたがソフトウェアを書くために必要なものについてのあなたの計画の欠如は私の責任ではありません、私たちは標準のツールのセットを持っています、そしてそのツールボックスがあなたが必要なものを欠いているなら、あなたは私をジャンプさせようとするのではなく、より多くのツールを得るためにあなたの要求を持っていたはずですあなたの締め切りは明日なので、あなたのためにそれを得るためにフープを介して。

これらすべてを言っても、開発者のデスクトップをロックダウンすると、ベイウォッチコレクションを視聴する資格があり、ベイブウォッチプレーヤーをインストールしてそれらを表示できないことを学ぶことに憤慨しているくだらない開発者を排除することができます(ただし、それはオープンソース」)を緩めることができるかもしれません。しかし、優れた開発者がそれを「手に入れる」ことで、その2億ドルの垂直型アプリケーションのために会社が採用する予定の数がさらに10あります。その点に注意する必要があります。

編集:私がさらされた開発者が異常に鈍いことは確かにかなり可能です(現在のクロップをポーリングすると、ある程度のベンチマークを与えるために、スタックオーバーフローについて聞いただけです)。私が最初に考えているのは、「会社があなたに支払うことに対して何をするために何をする必要があるか」です。あなたが必要管理者権限を取得した場合、それらを取得できますが、それらをstqartする必要はありません。率直に言って、私があなたに何をしてもかまわないボックスを与えることができれば、それは機能します。どちらも良いです。

0
Jim B