회사 환경에서 개발자는 컴퓨터에 대한 관리자 권한을 가져야합니까? 왜?
기술 환경 :
- 윈도우 7
- Visual Studio 2008 및 2010
- SQL 서버
회사 환경에서 개발자는 컴퓨터에 대한 관리자 권한을 가져야합니까? 왜?
기술 환경 :
답변:
그들은해야합니까? 그것은 회사에 달려 있습니다. 개인적으로 이해되는 규칙이있는 한 괜찮다고 생각합니다 .
일반적으로 그렇습니다. 디버거와 같은 것들이 제대로 작동하려면 관리자 권한이 아닌 경우 상당히 높아야합니다. 개발자는 종종 채널을 통과 할 때 며칠 또는 몇 주가 걸릴 수있는 임의의 소프트웨어를 설치해야합니다. 그 기간 동안 개발자는 일반적으로 회사가 비용을 지불하지 않고 특히 개발자가 컨설턴트 인 경우 비용이 들지 않습니다.
개발에는 과학과 예술이 모두 있습니다. 우리가 필요로하는 것을 "인식"하는 것만 큼 간단하지 않습니다. 우리가 이미 답의 절반을 가졌다면 우리의 직무는 약할 것입니다. 올바른 접근 방법을 찾는 것은 종종 반복적이며 예측할 수없는 방식으로 여러 도구를 포함 할 수 있습니다. 중개자에게 이들 각각을 설치하기 위해 (대개 대기 시간이 긴 경우), 시나리오에서 "슈퍼 우버 도구 애드온"이 필요한 것을 찾기 위해 (약 1 시간 정도 소요) 어리석은 일입니다.
VM은 이것에 이상적이지만 VM 자체 로는 VM 이기 때문에 VM에서 (적절하게 또는 전혀) 실행할 수없는 많은 개발 도구가 있습니다 . JVM과 같은 것을 의미하지는 않습니다. 장치 툴킷과 같은 전체 시스템 emus / vms를 의미합니다. 호환성이 향상되고 있습니다.
또한 대부분의 개발 도구는 "일반적인"도구보다 훨씬 큰 설치 공간을 가지고 있으며 (VM 호스팅을 예상보다 조금 더 고통스럽게 만듭니다) 종종 프로세스 디버거의 특성상 높은 액세스가 필요합니다. 그들이 GUI를 많이 사용한다는 사실은 말할 것도 없습니다. VM GUI에서 풀 타임으로 실행하는 것은 매우 고통 스럽습니다.
성능은 엄청 납니다. Word에서 키를 누를 때마다 키를 등록 할 때까지 3 초가 지나도 괜찮다고 생각하십니까? 농담이 아니에요 - 가상 머신 등의 개발 도구가 될 수있다 이 짜증나; 대부분의 개발 목적 에는 응답 성 이 필요합니다 . 두뇌에서 키보드로 복잡한 논리의 흐름을 방해하면 작업을 수행하는 것이 거의 불가능합니다. 그리고 나는 그것을 말하기를 싫어하지만, 예 : 개발 시간이 비쌉니다.
Windows 환경, 특히 Microsoft 개발자 제품을 사용하는 경우 개발자는 컴퓨터에 대한 관리자 권한이 필요합니다. 당신이 그들에게 그러한 권리를 거부한다면, 그들의 직무를 수행 할 수있는 그들의 능력은 완전히 막히지 않으면 제한 될 것입니다.
개발자는 기본 사용자보다 시스템 관리자보다 낮은 수준의 권한을 부여받습니다.
경우에 따라 프로덕션 환경에서 작동하도록 개발중인 응용 프로그램을 가져 오기 위해 추가 라이브러리를 설치해야 할 수도 있습니다. "제 3 자 라이브러리가 필요한 모든 응용 프로그램의 경우 라이브러리는 프로덕션 배포 전에 그리고 경우에 따라 응용 프로그램 개발 전에 샌드 박스 환경에 설치해야합니다. "
내가 작업하는 sysadmin은 이에 동의하며, 우리 둘 사이에이 규칙을 적극적으로 시행하고 "종속성 검사"를 통과하지 않은 응용 프로그램 배포를 지연시킬 것입니다.
그러나 귀하의 질문에 대답하려면 개발자에게 자신의 컴퓨터에 대한 모든 액세스 권한을 부여해야하지만 해당 컴퓨터는 응용 프로그램이 궁극적으로 배포되는 환경과 격리되어야합니다. 이 경우 프로덕션 환경에서 안전하게 배포 할 수있을 때까지 응용 프로그램 배포도 샌드 박스로 처리해야합니다.
면책 조항 : 저는 개발자입니다.
나 에게이 질문 (및 답변)은 잘못된 접근 방식으로 문제를 공격하는 것처럼 보입니다. 즉, 토론은 관리자가 원하는 것 / 개발자가 원하는 것 / 필요한 것에 중점을 둡니다. 하지만 당신은 우리가 회사 환경에 있다고 지정 했으니, 그렇게 봅시다.
IT 또는 운영 책임자 또는 예산을 관리하는 사람 앞에서 이를 논의하고 이러한 질문을 한다고 가정 해 봅시다 .
이 질문에 답하면 정열적 인 결정이 아닌 정보에 근거한 결정을 내릴 수 있습니다.
특정 환경의 경우 관리자 권한이 필요한 항목이 있습니다 ( 사용자 권한 및 Visual Studio 참조 ). 이러한 작업을 수행하지 않는 경우 질문 2-4에 대답 할 수 있습니다.
컨설턴트로서, 나는이 정책의 두 극단을 보았다, 그리고 동안 나는 항상 기계에 대한 관리자 액세스 할 수 있도록하려면, 어떤 경우에는 이해가되지 않았다. 그리고 원인과 결과가 무엇인지 확실하지 않지만 예외없이 개발자가 관리자 액세스 권한을 가진 Windows 개발을 수행 한 모든 장소는 모든 개발자가 잠긴 장소보다 생산성이 훨씬 높았습니다.
나는 당신이 잘못된 질문을하고 있다고 생각합니다.
좋은 개발자는 자신의 PC에 대한 관리자 권한을 부여하지 않은 고용주를 위해 일합니까?
누군가가 "필요한"것과 그들이 기대하는 것은 종종 같은 것이 아닙니다. 결국 개발자가 업무 시간에 커피를 마실 필요는 없지만, 그렇지 않으면 ...
(면접 단계에서 정책을 명확히해야합니다. 그렇지 않으면 관리자 권한 부족으로 인해 회사를 멸시하는 사람들을 고용 할 수 있습니다. 프로그래머가 이런 종류의 일에 대해 논리적으로 생각하지 않아도됩니다! )
그것은 실제로 누가 당신이 실제로 그것을 필요로하는지에 대해 더 많은 사람에게 달려 있습니다. 기업의 IT 및 위험 관리 그룹에 문의하면 그들은 무서운 이야기로 당신을 사로 잡을 것입니다 (그리고 그들이 당신에게 줄 경우 그들은 책임을지지 않을 약속의 거룩한 결합으로 희생 된 염소를 요구합니다) 반면에 업무상 스트레스가 많고 헬프 데스크의 허가를받지 않고도 누출이 발생하기 때문에 관리자 권한이 필요합니다. 슬픈 상황은 이제 힘 투쟁과 힘을 발휘하는 것보다 비즈니스와 생산성 요구에 관한 것입니다 (예 : 누가 다른 사람을 후프를 뛰어 넘게 할 것인지에 달려 있습니다)
제가 지금까지 본 최고의 업무 환경 인 IMHO는 두 그룹이 분리되어있는 곳입니다. 개발자는 자신의 도메인을 포리스트에두고 (IT가이 도메인과 사용자가 회사의 나머지 부분에서 수행 할 수있는 것을 제어 함) MCSE를 경험 한 숙련 된 직원이 로컬 도메인 관리자 역할을하는 로컬 관리자이며 자체 테스트 환경이 있습니다. 단일 IT 정책 (해적판 된 소프트웨어 없음)으로 로컬 LAN에서 원하는 것을 원하는대로 수행 할 수 있습니다. 회사 IT는 책임을지지 않으며 개발자를 지원하지 않으며 일부 고급 회사 규칙 (방화벽을 통해 페이스 북, 포르노 또는 이와 유사한 것, 회사 LAN을 망칠 수없는 개발자) 만 시행하며 RSA 기반 VPN을 사용하여 집에서 일할 수 있습니다. LAN에 직접 연결합니다. 깔끔하지 않습니까?
개발 과정에서 관리 권한이 중요하다고 말하고 싶습니다. 그러나 샌드 박스에 VM을 사용하는 것이 상대적으로 쉬우므로 VM에 넣고 보안을 유지할 수없는 이유는 없습니다.
문제가 발생하면 몇 분 안에 닦고 다시 만들 수 있습니다.
다릅니다. 개발자는 항상 최소 권한 원칙에 따라 운영해야합니다. 당신이 정부 계약자로 작업하는 경우, 당신은 계약 상 의무가 될 수 없습니다 예를 들어, 관리자 권한을 가질 수 있습니다.
Java 개발자로서 나는 지속적으로 내 컴퓨터 에 대한 관리자 권한을 가질 필요가 거의 없었습니다 . 그러나 온 디맨드 관리자 액세스 가 필요한 합법적 인 경우가 있습니다 (즉, 랩탑을 물리적으로 별도의 도메인으로 이동해야하며 이에 따라 NIC를 변경해야합니다). 내 컴퓨터에 대한 영구적이고 지속적인 관리자 액세스.
IT 직원이 적거나 (또는 무능하거나 빨간 테이프에 빠져 있기 때문에) 관리자 액세스가 필요한 경우도 있습니다. 그러나 유능한 IT 부서와 함께 작업하는 경우 원격으로 또는 사용자가 설치 한 "설치 프로그램을 제공하여" "클릭하여 관리하고 설치하십시오.)
따라서 (다시) 대답은 다릅니다. 요청시 (또는 합리적인 시간 내에) 설치할 수있는 응답 성이 뛰어난 IT 직원이 있습니까? 개발자는 실제로 그들이 지불 한 작업에 필요 합니까?
편리함 ( "원하는대로 설치하고 싶습니다 "에서 )과 반대로 개발자가 진정으로 합법적으로 그것을 필요로하는 경우 ( "말 그대로 아무 것도 할 수 없을 것" 에서 와 같이) IT 지원이 필요한 경우 (어떤 이유로 든) 응답이 충분하지 않다면 컴퓨터에 대한 관리자 액세스 권한이 있어야합니다.
그렇지 않으면 아닙니다. 최소한의 특권 원칙을 기억하십시오 .
보안이 걱정되는 기업의 경우 보안 담당자가 개발 및 시스템 모델과 함께 작동하는 정책을 지시하고 시행하도록 할 것입니다. Windows 환경에서는 대부분의 사람들이 작업을 수행하기 위해 개발중인 호스트에 대한 관리 권한이 있어야한다고 알려줍니다.
반드시 그런 것은 아닙니다 ...
사용자 정의 정책을 작성하고 모든 프로그램 및 기능이 시스템의 개발 사용자와 작동하도록 할 수 있습니다. 원하는 디자인에 따라 그룹 또는 사용자 정의 그룹이있는 프로그램 / 시스템 디렉토리에 대한 사용자 정의 권한을 사용하여 문제를 해결해야합니다.
대부분의 기업은 해커가 자신의 도구를 제어하고 자신의 도구를 컴파일 할 수 있기 때문에 개발자가 개방형 네트워크에 시스템을 설치하는 것이 매우 위험하다고 말합니다.
나는 반대 목소리를 (적절하게) 제공하고 "아니오"뿐만 아니라 "아니오"라고 말해야한다. 네트워크 액세스가없는 샌드 박스 VM에 대해 개발자에게 관리자 권한을 부여하는 데 아무런 문제가 없습니다. Zypher는 거의 옳았습니다 (굵은 글씨로 표시).
"1. 내 박스 에서 관리자 가되는 것은 특권이 아닙니다." 이 시스템은 내가 궁극적으로 책임지는 회사 자산입니다. Joe Developer가 불법 복제 된 Microsoft Bob의 사본 ( " 필요하기 때문에")을 설치할 때 감사 이전에 어떻게 찾을 수 없었는지 설명하지 않아도됩니다. 개발자들은 일상적으로 회사 규칙이 적용되지 않는다고 생각합니다. 샌드 박스 VM을 제공함으로써 다른 모든 사람들이 따라야하는 모든 규칙을 따를 수 있습니다 (지금은 IT만이 시스템과 파일을 복사 할 수 있기 때문에). 마술로 요청 시스템이 개발자에 의해 다시 사용되며 Joe Developer가 개발 상자를 옮길 때 더 이상 하늘이 떨어지지 않습니다. 그는 새로운 것을 요구합니다 (또는 백업을 요청한 경우 복원).
데니 씨는 개발자들이 앱 설치를 기다려야 할 때 비용이 많이 든다고 언급했습니다. A. hello ... 제 시간은 보통 Joe Developer만큼이나 귀중합니다. Joe 개발자가 마지막 걸작을 디버깅하는 데 소비하는 모든 시간을 언급해야합니다.) B. 개발자가 응용 프로그램을 기다리고 있었고 IT를 비난하기 때문에 예산을 초과했을 때 나는 말할 것입니다.
소프트웨어를 작성하는 데 필요한 계획이 부족하다는 것은 저의 책임이 아닙니다. 표준 도구 세트가 있으며 해당 도구 상자에 필요한 도구가없는 경우 더 많은 도구를 신속하게 가져 오도록 요청해야했습니다. 마감일이 내일이기 때문에 당신을 위해 그것을 얻기 위해 농구대를 통해.
이 모든 것을 말하면서 개발자의 데스크탑을 잠그면 thye가 베이 워치 컬렉션을 볼 자격이 있다고 생각하는 엉뚱한 개발자를 제거 할 수 있고 베이브 워치 플레이어를 설치하여 볼 수 없다는 것을 배우기 위해 분노합니다 ( " 오픈 소스 ")를 풀 수 있습니다. 그러나 모든 훌륭한 개발자들에게 "얻는"것이라면, 회사가 대신 2 억 달러의 수직 응용 프로그램에 대해 고용 할 것보다 10 명 더 많으며, 그 점에주의해야합니다.
편집 : 내가 노출 된 개발자가 비정상적으로 둔해질 수 있습니다 (현재 작물을 폴링하면 스택 오버 플로우에 대해 들어 보았으며 어느 정도의 벤치 마크를 제공합니다). 내가 시작하는 관점은 "회사가 당신에게 지불하는 것을 어떻게해야합니까"입니다. 당신 이 관리자 권한 이 필요 하다면 , 당신은 그들을 얻을 수 있지만, 당신은 그들과 stqart해서는 안되며, 솔직히 당신이하는 일에 신경 쓰지 않고 그 일을 신경 쓰지 않는 상자를 줄 수 있다면 우리 둘 다 갈 수 있습니다.