개발자가 자신의 PC에 대한 관리자 권한을 가지고 있어야합니까?
일부 의견 :
- 설치가 필요한 새로운 응용 프로그램을 시험해보고 싶다면 가상 컴퓨터에서 시도한 다음 네트워크 관리자가 설치하도록 할 수 있습니다. 그게 효과가 있다고 생각합니까?
- 관리자 권한이 필요한 개발자가 PC에서 수행해야 할 작업이 있습니까?
우리는 5 명의 개발자로 구성된 팀이며 웹 애플리케이션을 구축합니다.
개발자가 자신의 PC에 대한 관리자 권한을 가지고 있어야합니까?
일부 의견 :
우리는 5 명의 개발자로 구성된 팀이며 웹 애플리케이션을 구축합니다.
답변:
대답은 '예'입니다. 개발자는 시스템 구성을 사용하여 항목을 테스트하고, 소프트웨어를 설치하고 (아무것도 개발중인 설치 프로세스를 테스트하기 위해) 레지스트리를 찌르고 관리자 권한없이 제대로 작동하지 않는 소프트웨어를 실행해야합니다 (단지 몇 가지 항목을 나열). 관리 작업을 수행해야하는 개발 작업에 필수적인 다른 작업이 많이 있습니다.
개발 직원이 프로덕션 시스템에 대한 루트 액세스 권한을 반드시 가질 필요는 없으며 로컬 PC의 관리자 권한이 프로덕션 시스템의 보안을 크게 손상 시키지는 않습니다. 업무 수행에 필요한 직원을 위해 로컬 PC에 대한 관리자 액세스를 제한하는 합법적 인 운영 이유는 거의 없습니다.
그러나 관리 액세스 권한을 제공하는 가장 중요한 이유는 손상되거나 2 차 개발 환경을 설정하면 개발 직원에게 메시지를 보내기 때문입니다.
'우리는 정당한 이유없이 귀하의 업무 수행 능력을 크게 손상시킬 준비가되어 있기 때문에 귀하의 작업을 소중하게 생각합니다. 사실, 우리는 우리 자신의 주장을 다루기 위해 아주 기쁘고 사소한 관료주의의 변덕에 빠지거나 단순히 귀찮게 할 수 없기 때문에 매우 기쁩니다. 그게 가장 좋은 경우입니다. 최악의 경우는 우리가 실제로 일을 수행하는 방법과 수행 할 필요가 있거나하지 않아도되는 것을 알려주는 일종의 통제 괴물이라는 것입니다. 당신이받은 것을 처리하고 직업을 갖은 것에 감사하십시오. '
일반적으로 개발 직원을위한 2 차 (기본적으로 결함이있는 작업 환경)를 제공하는 것은 직원을 화나게 한 결과, 유능한 직원을 보유 할 수 없거나 직원의 이직률이 떨어지며 사기가 나쁘고 품질이 좋지 않은 결과를 초래하는 레시피입니다. 특히 관료 주의적 변덕에 대한 패 더닝이 많은 경우에는 그렇게하지 않는 것이 무책임하다.
직원 이직률은 직원 교체 비용 만 발생하지 않습니다. 직원 이직의 가장 심각한 비용은 주변에 붙어있는 대부분의 직원이 더 나은 일자리를 얻을 수없는 데드 우드가 될 것입니다. 시간이 지남에 따라 영향을받는 부서의 기능이 저하됩니다. 업종이 충분히 가까워지면 명성을 얻을 수도 있습니다.
주목할 점은 관리 권한은 Windows보다 Uniix-oid 또는 메인 프레임 시스템에서 개발하는 데 훨씬 덜 중요하다는 것입니다. 이러한 플랫폼에서 사용자는 시스템 전체 권한 없이도 자신의 도메인에서 훨씬 더 많은 작업을 수행 할 수 있습니다. 개발자는 여전히 루트 또는 sudo 액세스를 원할 것입니다. 그러나이를 사용하지 않으면 발자국이 훨씬 줄어 듭니다. 이 유연성은 컴퓨터 과학 학교에서 유닉스 파생 운영 체제의 지속적인 인기에 대한 중요하지만 덜 알려진 이유입니다.
개발자는 사용중인 머신을 완전히 제어 할 수 있어야합니다. 대부분의 디버깅 도구는 빌드중인 응용 프로그램의 런타임에 연결하기 위해 관리자 권한이 필요합니다.
또한 개발자는 자주 새로운 것을 다운로드하여 시도합니다. 네트워크 관리자가 와서 무언가를 설치 해야하는 등의 추가 단계를 추가하면 개발자를 좌절시키고 네트워크 운영 담당자에게 생명을 위협 할 수 있습니다.
즉, 네트워크가 아니라 THEIR 상자의 관리자 여야합니다.
예, 아니오
예, 시스템 지원을 방해하는 많은 시간을 절약합니다.
아니요, 사용자에게는 보유하지 않으므로 의지하지 마십시오.
우리는 관리자 권한으로 개발하고없이 테스트합니다. 어느 것이 잘 작동합니까?
개발자는 일반적으로 평범하지 않은 일을해야하므로 일반적으로 관리자 계정이 있어야합니다. 어색한 후프를 뛰어 넘으면 시간이 낭비되고 사기가 줄어 듭니다. 보안 수준이 높은 상황에서는 예외가있을 수 있지만 관리자 계정으로 누군가를 신뢰할 수 없으면 해당 코드를 신뢰할 수 없습니다.
또한 사용자와 동일한 권한을 가진 사용 가능한 계정이 있어야합니다 (사용자 풀의 권한 상태가 다른 경우 둘 이상의 계정). 그렇지 않으면 멋진 것을 개발하고 배포 한 다음 사용자에게 적합하지 않을 수 있습니다.
관리자 계정으로 컴퓨터를 망칠 수있는 방법이 너무 많습니다 (예, 완료했습니다). IT 부서는 개발자의 컴퓨터를 신속하게 수정할 수없는 경우 이미지를 다시 작성하는 정책이 필요합니다. 계약 한 곳에서 관리자 계정을 얻기 위해 해당 정책의 사본에 서명해야했습니다.
이것은 Windows 고유의 답변입니다. Linux 및 기타 Unix-y 시스템에서 개발자는 사용자 계정만으로 더 자주 접근 할 수 있으며 테스트를 위해 다른 계정이 필요하지 않은 경우가 있습니다 (수행 할 수있는 계정이있는 경우 사용시기를 알고 있음) sudo는 동일하지만 그룹 권한이 동일한 그룹이 필요할 수 있으며 OS에 매우 많은 양의 손상을 줄 수 있으므로 동일한 IT 정책이 필요합니다.
물론! 밤에 영화를 다운로드하기 위해 다운로드 관리자를 어떻게 설치합니까?
때때로 개발자는 실제로 아이디어를 테스트하기 위해 시스템에 설치하거나 무언가를 변경해야합니다. 무언가를 변경해야 할 때마다 관리자에게 연락해야 할 경우 불가능합니다.
또한 일부 관리자는 매일 일에 의존하지 않는 작은 일을하기 위해 가능한 모든 것을 조이는 경향이 있다는 개인적인 견해를 가지고 있습니다. 다른 사용자를 화나게? 대답이 없습니다. 그러나 여기서 상식은 보이지 않습니다.
지난번에 내 PC에 문제가 있었을 때 시스템 복원에 적극적으로 참여하여 관리자와 팀에서 일하는 제안을 했으므로 관리자는 매우 화를 내고 가르치려고한다고 비난했습니다. 그 또는 규칙을 재정의하십시오. 나는 그가 다른 동료들 사이에서 우리 방에서 그렇게 시원하지 않은 것처럼 그의 자존심이라고 생각합니다.
정답은 개발자에게 2 대의 머신이 있어야한다는 것입니다.
관리자 권한과 충분한 전원, 메모리, 화면 크기 및 이식성 및 ADMIN 권한이 있고 회사 안티 바이러스 소프트웨어가로드되었지만 자동 재설정 정책이 필요한 경우 개발자가 구성 할 수있는 하나의 개발.
회사 부하, 정책, 관리자가 아닌 사용자 권한 등이있는 하나의 회사 하나 ... 개발자는 일부 개발자가 관리자 권한으로 모든 단위 테스트를 수행해야하는 불쾌한 습관을 가지므로 단위 테스트 릴리스 모드 응용 프로그램에이를 사용할 수 있습니다.
예, 그러나보다 제한된 환경에서 소프트웨어를 실행할 때 사용자가 직면 할 수있는 제한 사항을 알고 있어야합니다. 개발자는 제한된 리소스 및 권한으로 "일반적인"환경에 쉽게 액세스 할 수 있어야합니다. 과거에는 빌드 프로세스의 일부로 이러한 "일반적인"시스템 중 하나 (종종 내 워크 스테이션의 VM)에 빌드 배포를 통합하여 소프트웨어가 최종적으로 어떻게 작동하는지 항상 빠르게 파악할 수있었습니다. 사용자의 기계.
또한 프로그래머는 관리자가 아닌 사용자를위한 소프트웨어 작성의 빠르고 규칙을 알아야 할 책임이 있습니다. 그들은 항상 어떤 시스템 리소스에 액세스 할 수 있는지 정확히 알고 있어야합니다. 이러한 리소스를 얻는 데 사용되는 API를 알고 있어야합니다.
"내 기계에서 작동한다"는 변명이 결코 아닙니다!
시스템 관리자로서 저는 워크 스테이션에서 로컬 관리자 권한을 가진 개발자를위한 것입니다. 가능하면 표준 '사용자'수준 계정으로 대부분의 작업을 수행 한 다음 다른 '관리자'계정을 사용하여 변경, 앱 설치 등을하는 것은 나쁜 생각이 아닙니다. 종종 로깅하지 않고도 원하는 작업을 수행하기 위해 sudo 또는 runas를 수행 할 수 있습니다. 밖. 또한 프로덕션으로 출시 할 때 최종 사용자가 어떤 보안 문제를 극복해야하는지 알려주는 것도 도움이됩니다.
참고로, 시스템을 조정하여 "내 시스템에서 잘 보임 / 작동"시나리오에 빠지지 않도록 [클린] 시스템 또는 VM을 사용하는 것이 좋습니다.
우선, Power User는 기본적으로 관리자이므로 사용자를 "Power User"로 " 제한 "하면 시스템의 보안이 향상되지 않습니다.
둘째, 물론 개발자는 개발자 컴퓨터 (및 서버 및 두 번째 상자 등)에 대한 관리 액세스 권한이 필요하지만 정상적인 개발 또는 테스트 중에는 아무도 관리자로 대화 형으로 로그온하지 않아야합니다. 이 응용 프로그램과 대부분의 응용 프로그램에는 일반 사용자 계정을 사용하십시오.
관리자로 [브라우저, 플러그인, IM, 전자 메일 클라이언트 등 삽입]을 심각하게 실행하고 싶지 않습니다.
필요할 때 루트 액세스 권한이 있더라도 일반적으로 Linux 상자에 루트로 로그온하지 않습니다.
개발자에게 관리자의 액세스 권한이 필요한 다른 개발 / 테스트 서버 및 상자의 유효한 관리자 인 자신의 컴퓨터 (도메인 계정)에 별도의 개인 관리자 계정을 제공하십시오.
"다음 계정으로 실행"및 Vista + UAC를 사용하여 프롬프트를 프롬프트하거나 요청하고 필요한 경우에만 작업 및 프로세스에 대한 관리 자격 증명을 입력하십시오. 스마트 카드 또는 이와 유사한 PKI는 자격 증명을 자주 입력하는 부담을 크게 줄일 수 있습니다.
그런 다음 액세스를 감사하십시오. 이런 식으로 추적 기능이 있으며 현재 액세스해야하는 특정 dev / test 서버에서 누가 터미널 서비스 세션을 사용하는지 쉽게 찾을 수 있습니다 ...
물론, 별도의 서버 나 가상 머신에 대해 배포가 테스트되고 로컬 디버깅에 사용되는 cassini 또는 기타 항목이 일반 사용자처럼 실제로 실행되는 대부분의 웹 개발과 같이 로컬 관리자 권한이 필요하지 않은 개발 작업이 있습니다.
나는 주로 * nix 세계에서 일하고 개발자가 표준 sudo
또는 권한이없는 일반 사용자 계정으로 작업하여 su
필요에 따라 / 또는 필요한 경우 관리자 권한으로 에스컬레이션 할 수있는 표준 모델을 사용합니다 .
동등한 Windows 배열이 무엇인지 확실하지 않지만 경험상 이상적인 설정입니다.
한편, 필요할 때 관리자 권한을 사용할 수있게되면 개발자는 필요할 때 자신의 워크 스테이션을 완전히 활용할 수 있습니다.
다른 한편으로, Windows 소프트웨어는 관리자가 아닌 사용자에게는 많은 프로그램이 실행되지 않을 정도로 모든 사용자에게 관리자 권한이 있다고 가정 한 오랜 역사를 가지고 있습니다. 많은 Windows 보안 문제는 컴퓨터를 안정적으로 사용하려면 모든 사용자가 관리자 여야한다는 암시 적 요구 사항에서 직접 발생합니다. 이 반드시 변화에 가장 효과적인 방법은 관리자가 아닌 사용자를위한 실행 소프트웨어는 개발자가 관리자가 아닌 사용자로 스스로를 실행하는 것을 확인합니다.
[사과는 영어가 모국어가 아니며 최선을 다하고 있습니다 :)] 글쎄,
개인적인 경험 (나는 c ++ / SQL 개발자입니다) :
이전 작업에서 Windows 컴퓨터의 관리자였습니다. 또한 프로덕션 환경 데이터베이스를 포함하여 데이터베이스에 대한 dbo (dba 아님) 권한이있었습니다. 2 년 반 동안 8 명의 사람들이이 미친 높은 권리를 가졌는데 ... 우리는 아무런 문제가 없었습니다. 실제로 우리는 db를 수동으로 업데이트하여 많은 문제를 해결했습니다. 우리는 핫픽스와 개발자를 위해 많은 것들을 정말 빠르게 할 수있었습니다.
이제 나는 직업을 바꿨다. 나는 내 Windows 컴퓨터의 관리자로 많은 것을 울었습니다. 그러나 dev 서버는 ssh를 사용하여 연결하는 Red Hat 서버입니다. Qt 설치는 고문, 할당량 제한, 공간 제한, 실행 및 쓰기 권한이었습니다. 우리는 마침내 포기하고 관리자에게 요청했습니다. 2 주 후에도 아무것도 설치되지 않습니다. 신문 읽기와 Alt + Tab 타격이 정말 빨라지고 있습니다.
내 소프트의 개발자만이 기계를 사용하기 때문에 관리자 권한을 요청했습니다.
-> 답변 : "만약 당신이 원하는 것을하지 않기 위해 프로세스가 있다면, 그것은 한 번에 잘 운영되어야합니다."
-> 기술이 아닌 관리자에게 설명하려고합니다. "제작 환경이나 UAT 환경에서 관리자 권한이 없어야합니다.하지만 내 개발 컴퓨터는 다릅니다. 소프트웨어 대신 의자를 만들려면 할 수 있다고 말씀해 주시겠습니까? 작업장에 의자가 사용될 장소처럼 보이게해야하므로 작업장에 원하는 도구를 넣지 않아도됩니다 .. uat에 실행 패키지를 제공합니다. 도구를 만드는 데 사용 된 라이브러리와 도구는 최종 사용자 나 "패키지를 설치하는 친구."
나는 아직도 오늘 기다리고 있습니다. 나는 해결책을 찾고 개발 환경을 열고 좋아하는 온라인 판사에게 가서 자신에게 도전한다. 누군가 당신의 화면을 볼 때, 그는 당신을 프로그래밍하게 될 것입니다. ;)
두 가지 방법으로이 질문에 대답 할 수 있습니다. 예, 아니오, 또는 다릅니다. -더 애매 모호 할 수 있습니까? ...
그들이 일을해야하는지에 따라 다릅니다. 그렇다면 컴퓨터에 대한 관리 권한을 부여하십시오. 그렇지 않다면 그렇지 않습니다. 모든 소프트웨어 개발에 엔지니어에게 관리자 권한이 필요한 것은 아닙니다.
예, 아니오는 귀하의 관점에 달려 있습니다. 일부 엔지니어는 컴퓨터를 도메인으로보고 도메인의 규칙입니다. 다른 사람들은 책임을 원하지 않습니다.
관리자 권한이없는 한 회사에서 근무했으며 관리자 권한이 필요한 작업을 수행해야 할 때마다 헬프 데스크에 연락해야했으며 재부팅 할 때까지 임시 관리자 권한을 부여했습니다. 이것은 때때로 고통이었다. 그러나 그것이 내가 그것과 함께 살았던 방법이었다. 또한 컴퓨터에 대한 모든 관리자 권한이있는 곳에서 근무했습니다. OS에 호스를 설치하고 컴퓨터를 헬프 데스크로 가져 와서 하드 드라이브를 다시 이미지화해야하는 소프트웨어를 설치 한 시간을 제외하고는 훌륭했습니다 ....
나는 개인적으로 엔지니어가 자신의 컴퓨터에 대한 관리자 권한을 가져야한다고 생각하지만,이를 망치면 새로운 기준선 이미지를 다시로드 할 수 있으며 원래 기준선 이후 수행 된 모든 내용을 잃게된다는 것을 이해합니다. 그러나 회사의 모든 사람이 자신의 컴퓨터에 대한 관리자 권한을 가지고 있어야한다고 생각하지 않습니다. 회계, 관리 보조 및 기타 부서는 실제로 이러한 권한을 가질 필요가 없으므로 부여되지 않아야합니다.
ht tp : //msdn.microsoft.com/en-us/library/aa302367.aspx
내 경험상, 우리 (코더)와 그들 (보안) 사이의 타협은 항상 필요합니다. 나는 인정하지만 (내가 싫어하지만) 위의 Microsoft 기사에는 장점이 있습니다. 수년 동안 프로그래머로 일하면서 다른 디버거를 설치 해야하는 어려움을 겪었습니다. 작업을 수행하는 방법을 창의적으로 생각해야했습니다. 보안 팀 (및 여러 토론)과 수년간의 전투 끝에, 나는 데스크탑을 포함한 모든 영역을 보호해야한다는 그들의 업무를 이해합니다. 가장 간단한 Quicktime 앱에서도 매일 나타나는 취약점을 보여주었습니다. 빠른 유틸리티를 설치하거나 로컬 IIS를 조정하여 심각한 보안 문제를 일으킬 수있을 때마다 헛소리를 볼 수 있습니다. 다른 개발자가 통조림을 볼 때까지 이것을 완전히 이해하지 못했습니다. 그는 수백 명의 사람들에게 바이러스를 제공하기 위해 시만텍을 종료하고 종료했습니다. 엉망이었습니다. 무슨 일이 있었는지에 대한 "secheads"(보안 담당자) 중 한 사람과 이야기하면서, 나는 그가 단지 "너에게 그렇게 말했어"라고 말하고 싶었다.
나는 우리의 두목 (적어도 나의 것)이 단지 우리 회사를 보호하기를 원한다는 것을 배웠다. 좋은 소식은 우리가 타협을 찾았으며, 일을 끝낼 수 있고 보안 네트워크를 통해 secheads가 시원하다는 것입니다!
신조
예, 펜 테스터 나 숙련 된 악의적 인 사용자가 도메인을 손상시키는 발판을 마련하려는 경우 가능합니다.
즉, 하위 수준 계정 손상> 관리자-> Mimikatz-> 권한 상승-> 도메인 관리자를 찾습니다.
따라서 일반 사용자는 관리자가 아니어야합니다.
또한 Microsoft는 UAC가 보안 경계가 아니라고 말하면서 그렇게 사용하지 마십시오. UAC에는 다양한 실제 바이 패스가 있습니다.
업무 역할의 일부로 관리자가 필요한 경우 소프트웨어를 설치하는 데 사용되는 별도의 도메인 로컬 관리자 계정 (자체 컴퓨터에 대한 관리자 권한 만 있음)을 일반 용도 나 인터넷 액세스 용으로 제공하지 마십시오. 보다 엄격한 비밀번호 정책이 있어야합니다 (예 : 최소 15 자). 이를 위해 Runas 기능을 사용해야합니다.
일반 사용자 계정이 관리자 인 모든 환경은 보안 재해의 레시피입니다.
와우,이 질문은 확실히 흥미로운 답변을 제시 할 것입니다. 답장에서 자주 사용되는 인용문- 'It Depends':)
소규모 회사에서는 이것이 단순히 실용적 문제 일 수 있습니다. 개발자는 기술적으로 가장 능숙 할 것이므로 자신의 컴퓨터를 관리하는 것이 좋습니다.
개인적으로 필자는 필요할 때 사용할 수있는 "관리자 계정"의 팬입니다. 즉 "Run As."(이 접근 방식은 나중에 UAC와 매우 유사하다는 것을 알았습니다).
데스크톱 소프트웨어를 개발하는 경우 개발자가 최종 사용자의 경험, 즉 제한된 권한 또는 제한된 권한 내에서 작업하는 것은 나쁜 생각이 아닙니다. 제한된 권한으로 소프트웨어를 구축하는 경우 동일한 권한 집합이 주어지면 대상 사용자가 겪게 될 동일한 문제에 부딪 칠 가능성이 큽니다.
좋은 테스트 실험실 및 / 또는 적절한 품질 보증팀이 있다면, 특히 반 정도의 ALM 실습을 보유하고 있다면 이는 문제가 될 수 있습니다.
마지막으로 UAC없이 발전합니다. 주로 본인과 기술을 신뢰하기 때문입니다. 팀 환경에서는 투표에 넣었습니다. 더 큰 조직에서는이 자유가 없을 수도 있습니다. Enterprise Admins는 종종 마지막 말을합니다. :)
회사에서는 개발자, 엔지니어 및 상사 (회사의 소유자)에게 로컬 관리자 권한이 있습니다. 상사는 버스를 타거나 멈출 경우를 대비하여 네트워크 관리자 권한도 있습니다. 다른 사람들은 모두 갇히게됩니다.
sysadmin으로서이 설정은 특히 승인되지 않은 소프트웨어가 설치 될 때 때때로 약간의 슬픔을 유발했습니다. 그러나 개발자 배경에서 볼 때 고급 사용자가 환경을 더 잘 제어해야 할 필요성을 이해하므로 가끔 발생할 수있는 기발한 문제 나 문제를 기꺼이 감수 할 것입니다. 만일을 대비하여 워크 스테이션의 일상적인 백업을 수행합니다.
그건 그렇고, 보스는 다른 사람보다 사물을 다루는 데 더 많은 문제가있었습니다. "코끼리는 어디에 앉아 있습니까? 그가 원하는 곳은 어디입니까!" 그러나 기본적으로 "백업"sysadmin 인 소규모 회사에서는 선택의 여지가 없습니다.
개발자의 기술과 컨설턴트인지 여부에 따라 다릅니다.
숙련되고 신뢰할 수있는 개발자가 자신의 생산성에 해를 끼치 지 않는 한 자신의 PC로 원하는 작업을 수행 할 수있는 권리를 갖는 것이 합리적이라고 생각합니다.
Windows XP의 어느 누구도 일상적인 사용을 위해 관리자 계정을 사용해서는 안되며 Vista에서는 최소한 UAC를 사용하도록 설정 한 관리자 여야합니다. 특히 Internet Explorer를 사용하여 웹을 탐색하는 웹 개발자 및 기타 개발자.
할 수있는 일은 개발자가 일반 사용자 계정을 사용하도록하지만 PC 관리자 인 두 번째 계정을 부여하여 필요에 따라 사용할 수 있도록하는 것입니다 (Run As). 웹 개발이라고 말했지만 Windows 개발의 경우 소프트웨어가 아닌 관리자가 아닌 일반 사용자 계정을 사용하여 테스트해야합니다.