Czy programiści powinni mieć uprawnienia administratora na swoim komputerze

135

Czy programiści powinni mieć uprawnienia administratora na swoim komputerze, czy też zapewnia im wystarczający dostęp dla zaawansowanych użytkowników?

Kilka komentarzy:

  • Jeśli chcą wypróbować nową aplikację, która będzie wymagała instalacji, mogą wypróbować ją na maszynie wirtualnej, a później poprosić administratora sieci o zainstalowanie jej za nich. Myślisz, że to zadziała?
  • Czy jest coś, co programista musi zrobić na swoim komputerze, co wymagałoby uprawnień administratora?

Jesteśmy zespołem 5 programistów i tworzymy aplikacje internetowe

Craig HB
źródło
116
Gdybym wszedł do pracy i stwierdził, że nie mam uprawnień administratora do mojego komputera, nie wróciłbym następnego dnia. Ułatw swoim programistom życie, a nie utrudnij mu to.
annakata
29
To pytanie będzie cierpieć z powodu błędu selekcji - są chwile, kiedy maszyny programistów powinny być blokowane, ale tego rodzaju odpowiedź nigdy nie zostanie przegłosowana w witrynie przeznaczonej dla programistów.
romandy
5
Mniej powszechne, niż mogłoby się wydawać. W większości przypadków podstawową kwestią są dane wrażliwe - na przykład szwajcarskie przepisy dotyczące poufności bankowej zwykle uniemożliwiają programistom przeglądanie rzeczywistych danych klientów (uzgadnianie kont pozostawia się jako ćwiczenie dla czytelnika). W tym przypadku problemem nie jest blokowanie maszyn, ale dostarczanie oczyszczonych zestawów danych do prac programistycznych. Większość innych sytuacji to wymogi regulacyjne (np. Praca z danymi niejawnymi) lub samoobsługowe CYA.
ConcernedOfTunbridgeWells
12
Zastanawiam się, jak rozwinęłoby się to samo pytanie na ServerFault ... (@romandas)
Ben Mosher,
4
@BenMosher: oto twoja odpowiedź: serverfault.com/questions/232416/ ...
kmote

Odpowiedzi:

228

Odpowiedź brzmi tak'. Programiści będą musieli sprawdzić konfiguracje systemu, aby przetestować elementy, zainstalować oprogramowanie (jeśli nic innego, aby przetestować proces instalacji tego, co opracowują), zaglądać do rejestru i uruchamiać oprogramowanie, które nie będzie działać poprawnie bez uprawnień administratora (po prostu aby wymienić kilka pozycji). Istnieje wiele innych zadań nieodłącznie związanych z pracami programistycznymi, które wymagają uprawnień administracyjnych.

Mając na uwadze, że pracownicy programistyczni niekoniecznie mają uprawnienia administratora do systemów produkcyjnych, uprawnienia administratora na lokalnym komputerze nie wpływają znacząco na bezpieczeństwo systemów produkcyjnych. Nie ma prawie żadnego uzasadnionego operacyjnego powodu, aby ograniczać dostęp administratora do lokalnych komputerów dla pracowników, którzy potrzebują go do wykonywania swojej pracy.

Jednak najważniejszym powodem zapewnienia dostępu administracyjnego jest to, że skonfigurowanie zagrożonego lub drugorzędnego środowiska programistycznego wysyła wiadomość do pracowników programistów:

„Cenimy Twoją pracę tak mało, że jesteśmy gotowi znacząco zagrozić Twojej zdolności do wykonywania pracy bez żadnego powodu. W rzeczywistości jesteśmy bardzo szczęśliwi, że robimy to, aby ukryć swój własny tyłek, poddać się kaprysom drobnej biurokracji lub po prostu dlatego, że nie możemy się tym przejmować. To po prostu najlepszy przypadek. Najgorsze jest to, że jesteśmy typem maniaków kontroli, którzy postrzegają to jako naszą perogatywę, aby powiedzieć ci, jak wykonywać swoją pracę i co robisz, a czego nie musisz. Zrób to, co otrzymałeś, i bądź wdzięczny, że w ogóle masz pracę.

Generalnie zapewnienie drugoplanowego (nie wspominając o fundamentalnie wadliwym) środowisku pracy dla pracowników programistów jest receptą na naturalne konsekwencje wkurzania pracowników - niezdolność do zatrzymania kompetentnych ludzi, duża rotacja personelu, słabe morale i niska jakość dostaw. Wychodzenie z siebie, aby to zrobić - zwłaszcza jeśli istnieje podtekst ulegania biurokratycznym kaprysom - jest po prostu nieodpowiedzialne.

Pamiętaj, że rotacja personelu nie tylko wiąże się z kosztami wymiany personelu. Najpoważniejszym kosztem rotacji personelu jest to, że większość z tych, którzy pozostaną w pobliżu, będzie martwym drewnem, które nie może znaleźć lepszej pracy. Z biegiem czasu zmniejsza to możliwości odpowiednich działów. Jeśli Twoja branża jest wystarczająco blisko, możesz również zdobyć reputację.

Należy zauważyć, że uprawnienia administracyjne są znacznie mniejszym problemem przy programowaniu w systemach unix-oid lub mainframe niż w systemie Windows. Na tych platformach użytkownik może zrobić znacznie więcej we własnej domenie bez konieczności posiadania uprawnień dla całego systemu. Prawdopodobnie nadal będziesz chciał mieć dostęp do roota lub sudo dla programistów, ale brak tego będzie znacznie rzadziej. Ta elastyczność jest istotnym, ale mniej znanym powodem ciągłej popularności systemów operacyjnych opartych na uniksach w szkołach informatycznych.

ConcernedOfTunbridgeWells
źródło
3
Istnieje różnica między posiadaniem praw administratora a uruchamianiem wszystkiego z uprawnieniami administratora :) Wielu programistów będzie oczywiście potrzebować praw administratora. Ale uruchamianie wszystkiego interaktywnie z uprawnieniami administratora w systemie lokalnym jest nie mniejszym przywilejem. Otwiera się na ataki na systemy produkcyjne, do których deweloper ma dostęp, a zaatakowany lokalny komputer zapewnia każdemu napastnikowi ten sam dostęp. To łatwiejsze niż myślisz. Bezpieczeństwo to problem warstwa po warstwie, najmniej przywilejów na proces i problem dotyczący szkolenia użytkowników. Poszanowanie bezpieczeństwa każdego urządzenia to jedyny sposób: vimeo.com/155683357
Oskar Duveborn
Jestem zwolennikiem przyznawania lokalnych praw administratora programistom, ale stwierdzenie, że „prawa administratora na lokalnym komputerze nie zagrażają znacząco bezpieczeństwu systemów produkcyjnych” będzie zależeć od twojego środowiska. Większość informatyków martwi się tym, że zainstalujesz oprogramowanie zawierające złośliwe oprogramowanie / wirusy, które mogą rozprzestrzeniać się po całej firmie lub jeśli ktoś włamie się na twój lokalny komputer i masz poufne pliki danych przechowywane lokalnie lub w lokalnej bazie danych. W idealnym świecie żaden programista nie ma dostępu do plików danych HIPAA / PCI, a wszystkie bazy danych programistów są czyszczone, ale wiemy, że tak nie jest.
L_7337
87

Programiści powinni mieć pełną i całkowitą kontrolę nad używaną maszyną. Większość narzędzi do debugowania wymaga uprawnień administratora, aby podłączyć się do środowiska wykonawczego budowanej aplikacji.

Ponadto programiści często pobierają i próbują nowych rzeczy. Dodanie dodatkowych kroków, takich jak potrzeba przyjścia administratora sieci i zainstalowania czegoś dla nich, po prostu frustruje programistę i szybko uczyni życie piekłem dla osoby obsługującej sieć.

To powiedziawszy, powinni być administratorem w ICH skrzynce, a nie w sieci.

Nie ja
źródło
5
Największym problemem, na jaki natknąłem się w przypadku programistów z uprawnieniami administratora, jest to, że przyjmujesz za pewnik prawa, które masz do zasobów lokalnego komputera. Tyle kiepskich wyników oprogramowania - zapisuje do C: \ Program Files, zapisuje do HKLM itp. Może na twojej stacji roboczej, ale wymaga testów tam, gdzie nie masz.
SqlRyan
4
@rwmnau: To nie dotyczy tworzenia stron internetowych. Ponadto problem staje się widoczny dość szybko, gdy przeprowadzana jest kontrola jakości z normalnymi uprawnieniami.
NotMe
2
Udostępnianie maszyn wirtualnych i logowanie do testów deweloperskich bez uprawnień administratora to dobry sposób na ułatwienie testowania, czy oprogramowanie będzie działać z normalnymi uprawnieniami użytkownika.
ConcernedOfTunbridgeWells
Oprogramowanie, które jest wydawane z takimi uprawnieniami tylko dla administratora, przeszło bardzo słaby (lub żaden) proces kontroli jakości. Oprogramowanie powinno być testowane w rzeczywistych środowiskach, dlatego kontrola jakości powinna je wcześnie wykryć, a problem przeoczony przez programistów zostałby naprawiony. Dobrze?
2
@rwmnau - Każdy warty uwagi programista doskonale o tym wie, ale odpowiedzią nie jest zablokowanie maszyny deweloperskiej. Ma to na celu zapewnienie im środowiska testowego, w którym mogą wdrożyć projekt w dogodnym dla siebie czasie, aby rozwiązać te problemy.
Spencer Ruport
48

Tak i nie.

Tak, oszczędza mnóstwo czasu na kłopotliwe wsparcie systemu.

Nie, Twoi użytkownicy go nie mają, więc nie licz na to.

Tworzymy z uprawnieniami administratora i testujemy bez. Co działa dobrze.

Toon Krijthe
źródło
11
Moja żona musiała argumentować za kontem innym niż administrator na swoim komputerze, żeby mogła upewnić się, że użytkownicy mogą robić, co w jej mocy. Twoja polityka jest dokładnie słuszna (i dlatego jest pozytywnie oceniana).
David Thornley
1
Dokładnie, programista powinien mieć administratora, test, a kontrola jakości powinna mieć użytkownika.
Dr. Watson
Nie mogę się z tobą bardziej zgodzić! Dostęp administracyjny jest świetny do programowania, ale większość użytkowników go nie ma (jeśli tworzysz oprogramowanie korporacyjne ... IT zwykle blokuje rzeczy całkiem dobrze).
Pulsehead
18

Lokalny administrator tak, ze wszystkich powodów wymienionych powyżej. Administrator sieci nie, ponieważ nieuchronnie zostaną wciągnięci w zadania administracyjne, ponieważ „mogą”. Twórcy powinni się rozwijać. Administracja siecią to zupełnie inna praca.

Nick Van Brunt
źródło
15

Programiści zwykle muszą robić rzeczy, których przeciętny człowiek by nie robił, więc normalnie powinni mieć konta administratora. Zmuszanie ich do przeskakiwania przez niezręczne obręcze marnuje ich czas i demoralizuje ich. Mogą istnieć wyjątki w sytuacjach o wysokim poziomie bezpieczeństwa, ale jeśli nie możesz zaufać komuś z kontem administratora, na pewno nie możesz zaufać jego kodowi.

Powinni również mieć dostępne konto z tymi samymi uprawnieniami co ich użytkownicy (więcej niż jedno konto, jeśli pula użytkowników ma różne statusy uprawnień). W przeciwnym razie mogą po prostu opracować coś fajnego, wdrożyć to, a następnie stwierdzić, że nie będzie działać dla użytkowników.

Jest też zbyt wiele sposobów na zepsucie komputerów z kontami administratora (tak, zrobiłem to). Dział IT potrzebuje polityki, zgodnie z którą ponownie obrazuje komputer programisty, jeśli nie może go szybko naprawić. W jednym miejscu, w którym podpisałem kontrakt, musiałem podpisać kopię tej polityki, aby uzyskać konto administratora.

To dość odpowiedź specyficzna dla systemu Windows. W Linuksie i innych systemach Unix-y programiści częściej radzą sobie tylko z kontami użytkowników, często nie potrzebują innego konta do testów (jeśli mają konto, z którym mogą korzystać w sudo, wiedzą, kiedy używają sudo, ale mogą potrzebować jednego z tymi samymi uprawnieniami dla grupy) i mogą bardzo łatwo wyrządzić niesamowite szkody w systemie operacyjnym, więc konieczna jest ta sama polityka IT.

David Thornley
źródło
4
„Mogą istnieć wyjątki w sytuacjach o wysokim poziomie bezpieczeństwa, ale jeśli nie możesz zaufać komuś z kontem administratora, na pewno nie możesz zaufać jego kodowi”. - to świetna myśl, dziękuję!
Użytkownik
Tak czy inaczej nie możesz ufać kodowi: powinieneś robić kod recenzowany przez wszystkich. Myślę, że ma to sens również w przypadku instalacji: poproś kogoś o „wzajemną ocenę” oprogramowania, które zamierzają zainstalować.
Tim
10

Tak, Half-Life 1 (i wszystkie powiązane mody: kontratak, dzień porażki itp.) Wymagają praw administratora (przynajmniej dla pierwszego uruchomienia, jak sądzę), aby poprawnie działać w Windows NT, 2000, XP itp. .

Który programista nie gra w Counter Strike w porze lunchu? (na pewno kiepski)

fortran
źródło
10

Znosząc ból związany z koniecznością tworzenia oprogramowania bez uprawnień administratora na komputerze, moja odpowiedź brzmi: tak, jest to niezbędne.

Jason
źródło
8

Absolutnie! Jak inaczej miałbym zainstalować menedżera pobierania, aby pobierać filmy w nocy?

Czasami programiści naprawdę muszą coś zainstalować lub zmienić w systemie, aby przetestować jakiś pomysł. Będzie to niemożliwe, jeśli będziesz musiał dzwonić do administratora za każdym razem, gdy będziesz musiał coś zmienić.

Mam też osobistą obserwację, że niektórzy administratorzy mają tendencję do zawijania wszystkiego, co jest możliwe, aby na co dzień uzależniać od nich nawet najmniejsze rzeczy, w ten sposób ... co, zabezpieczając ich pracę? wkurzasz innych użytkowników? Brak odpowiedzi. Ale tutaj nie widać zdrowego rozsądku.

Ostatnim razem, gdy wystąpił problem z moim komputerem, brałem czynny udział w przywracaniu systemu, zgłaszając kilka sugestii pracując w zespole z administratorem, a przynajmniej tak mi się wydawało ... Administrator okazał się bardzo zły i oskarżył mnie o próbę nauczania go lub zredefiniuj zasady. Przypuszczam, że to tylko jego ego, ponieważ nie było go tak fajnego w naszym pokoju wśród innych kolegów.

Użytkownik
źródło
Nie mogę się bardziej zgodzić. Po 6 latach bycia inżynierem systemów trzeba dzwonić do działu pomocy technicznej, aby coś naprawić.
Matthew Whited
8

Odpowiedź brzmi: programiści powinni mieć 2 maszyny!

  • Jeden programistyczny, który ma uprawnienia administratora i wystarczającą moc, pamięć, rozmiar ekranu i przenośność oraz uprawnienia ADMINISTRATORA, z załadowanym korporacyjnym oprogramowaniem antywirusowym, który może być konfigurowany przez programistę w razie potrzeby za pomocą zasady automatycznego resetowania.

  • Jedna korporacyjna, która ma korporacyjne obciążenie, zasady, uprawnienia użytkownika niebędącego administratorem itp ... Programista może użyć tego do aplikacji w trybie testów jednostkowych, ponieważ niektórzy programiści mają paskudny zwyczaj wykonywania wszystkich testów jednostkowych z uprawnieniami administratora.


źródło
9
Świetny pomysł ... ale większość firm nie da ci nawet jednej „dobrej” maszyny, pozwalającej na dwie.
Matthew Whited
1
Możesz wykonać drugą maszynę na maszynie wirtualnej z kompilacją „standardową”. Jest to szczególnie przydatne, jeśli sieć deweloperska jest wydzielona do własnej domeny. Oddzielna produkcyjna maszyna wirtualna w domenie głównej daje programistom dostęp do zasobów sieciowych.
ConcernedOfTunbridgeWells
5

Jeśli odwrócisz pytanie, myślę, że odpowiedź będzie łatwiejsza; czy powinniśmy usunąć uprawnienia administratora od programistów? Jaki jest zysk?

Ale tak naprawdę myślę, że odpowiedź zależy od twojego kontekstu, twojego środowiska. Mały startup będzie miał inną odpowiedź dla agencji rządowej z certyfikatem ISO.

Ed Guiness
źródło
5

Tak, ale muszą zdawać sobie sprawę z ograniczeń, jakie napotkają ich użytkownicy, uruchamiając oprogramowanie w bardziej ograniczonym środowisku. Programiści powinni mieć łatwy dostęp do „typowych” środowisk z ograniczonymi zasobami i uprawnieniami. W przeszłości wdrażałem wdrażanie kompilacji do jednego z tych „typowych” systemów (często maszyny wirtualnej na mojej stacji roboczej) jako część procesu kompilacji, dzięki czemu zawsze mogłem szybko zorientować się, jak oprogramowanie działa na końcu. maszyna użytkownika.

Programiści mają również obowiązek znać sztywne i szybkie zasady pisania oprogramowania dla użytkowników niebędących administratorami. Powinni dokładnie wiedzieć, do których zasobów systemowych mają zawsze dostęp (lub których nie wolno im). Powinni znać interfejsy API używane do pozyskiwania tych zasobów.

„To działa na moim komputerze” nigdy nie jest wymówką!

John Cromartie
źródło
5

Jako administrator systemów jestem dla programistów posiadających uprawnienia lokalnego administratora na swoich stacjach roboczych. Jeśli to możliwe, nie jest złym pomysłem robienie większości rzeczy za pomocą standardowego konta użytkownika, a następnie używanie innego konta administratora do wprowadzania zmian, instalowania aplikacji itp. Często możesz wykonać sudo lub runas, aby osiągnąć to, co chcesz, nawet bez logowania na zewnątrz. Warto również przypomnieć nam, przez jakie zagrożenia będą musieli przejść użytkownicy końcowi, przechodząc do produkcji.

Na marginesie, wskazane jest również posiadanie [czystego] systemu lub maszyn wirtualnych, aby można było poprawnie przetestować rzeczy i nie wchodzić w scenariusz „wygląda / działa dobrze w moim systemie” ze względu na modyfikacje systemu.

atom255
źródło
3

Brak użytkownika zaawansowanego

Po pierwsze, Power User jest w zasadzie administratorem - więc „ ograniczenie ” użytkownika do Power User nie zapewnia żadnego wzrostu bezpieczeństwa systemu - równie dobrze możesz być administratorem.

Zaloguj się interaktywnie jako zwykły użytkownik

Po drugie, oczywiście programista potrzebuje dostępu administracyjnego do swojego komputera deweloperskiego (i serwerów, drugich skrzynek i tak dalej), ale oczywiście nikt nie powinien interaktywnie logować się jako administrator podczas normalnego programowania lub testowania. Użyj zwykłego konta użytkownika do tego i większości aplikacji.

Naprawdę nie chcesz, aby [włóż przeglądarkę, wtyczkę, komunikator, klienta poczty e-mail i tak dalej] jako administrator.

Zwykle nie logujesz się do swojego Linuksa jako root, nawet jeśli prawdopodobnie masz uprawnienia roota, gdy go potrzebujesz.

Użyj osobnego osobistego konta administratora

Zapewnij deweloperowi oddzielne osobiste konto administratora na jego / jej komputerze (najlepiej konto domeny), które jest również prawidłowym administratorem na innych serwerach deweloperskich / testowych i skrzynkach, do których osoba potrzebuje dostępu administracyjnego.

Użyj opcji „uruchom jako” oraz w systemie Vista + UAC, aby monitować lub zażądać monitu i wprowadzić poświadczenia administracyjne dla zadań i procesów tylko wtedy, gdy są potrzebne. PKI z kartami inteligentnymi lub podobnymi kartami może znacznie zmniejszyć obciążenie związane z częstym wprowadzaniem poświadczeń.

Wszyscy są szczęśliwi (lub?;)

Następnie dostęp do audytu. W ten sposób istnieje możliwość śledzenia i łatwy sposób sprawdzenia, kto korzysta z sesji usług terminalowych na określonym serwerze deweloperskim / testowym, do którego masz teraz dostęp ...

To prawda, na pewno istnieją prace programistyczne, które nigdy nie będą wymagały uprawnień lokalnego administratora - jak większość tworzenia stron internetowych, w których wdrażanie jest testowane na oddzielnym serwerze lub maszynie wirtualnej i gdzie cassini lub cokolwiek jest używane do lokalnego debugowania, działa tak samo dobrze jak zwykły użytkownik.

Oskar Duveborn
źródło
2
Mówisz: nie pozwalaj im logować się jako administrator, ale daj im klucze na wypadek, gdyby musieli zrobić coś, co tego wymaga. Czytałem te same bzdury na stronie MS dotyczące UAC i pokazuje to całkowity brak prawdziwego rozważenia na temat stu rzeczy, które programista robi w ciągu dnia.
NotMe
2
Zastosowano UAC, aby normalnym ludziom nie strzelali sobie w stopę. Jeśli programista to zrobi, wstyd mu. Jeśli ciągle to robi, musi znaleźć inną linię pracy.
NotMe
Jeśli dasz im klucze, faktycznie „pozwalasz” im logować się jako administratorzy. Po prostu robienie tego w codziennych zadaniach nigdy nie jest dobrym pomysłem. Dlaczego ludzie nadal uważają to za normalne lub konieczne tylko dlatego, że są maniakami, programistami lub administratorami, jest poza mną.
Oskar Duveborn
Jeśli kiedykolwiek widziałeś, co robi współczesny administrator systemów w ciągu dnia, zdasz sobie sprawę, że potrzeba dostępu administracyjnego i wprowadzania alternatywnych danych uwierzytelniających jest znacznie wyższa niż kiedykolwiek zobaczy jakikolwiek hardkorowy koder na poziomie systemu. Nadal nie logują się jako administratorzy do codziennych zadań i radzą sobie dobrze.
Oskar Duveborn
Zwykle nie logujesz się jako root do systemu uniksowego, nawet gdy nim administrujesz, więc dlaczego miałbyś to robić w systemie Windows, nawet jeśli jesteś programistą? To nie ma sensu. Uruchamianie wszystkich losowych aplikacji, takich jak Skype lub inne aplikacje z wysokimi uprawnieniami systemowymi, jest co najmniej ignorantem - podwyższasz poziom tylko tych aplikacji, które tego potrzebują.
Oskar Duveborn
3

Pracuję głównie w świecie * nix, a standardowy model jest przeznaczony dla programistów do pracy na zwykłym, nieuprzywilejowanym koncie użytkownika z możliwością (przez sudolub su) eskalacji uprawnień administratora w razie potrzeby.

Nie jestem pewien, jaki byłby równoważny układ systemu Windows, ale z mojego doświadczenia wynika, że ​​jest to idealna konfiguracja:

  • Z jednej strony posiadanie uprawnień administratora dostępnych na żądanie daje deweloperowi pełną kontrolę nad jego stacją roboczą, gdy jest to potrzebne.

  • Z drugiej strony, oprogramowanie Windows ma długą, długą historię zakładania, że ​​wszyscy użytkownicy mają prawa administratora, do tego stopnia, że ​​wiele programów nie będzie działać dla użytkownika innego niż administrator. Wiele problemów związanych z bezpieczeństwem systemu Windows wynika bezpośrednio z tego domniemanego wymogu, że aby móc niezawodnie korzystać z komputera, wszyscy użytkownicy muszą być administratorami. To musi się zmienić, a najskuteczniejszym sposobem zapewnienia, że ​​oprogramowanie będzie działać dla użytkowników niebędących administratorami, jest uruchamianie go przez programistów samodzielnie jako użytkownicy niebędący administratorami.

Dave Sherohman
źródło
Myślę, że nie spotkałem aplikacji biznesowej, która nie może działać jako zwykły użytkownik przez ostatnie 5–10 lat. Kiedyś byłem BOFH i wszyscy użytkownicy w tym miejscu byli zmuszeni uruchamiać wszystko jak zwykli użytkownicy od ~ 2001 roku - nie delegowano żadnych uprawnień administratora i działało to dobrze i udaremniło wiele złośliwego oprogramowania w tamtym czasie. Istnieją również automatyczne podkładki, które są stosowane w nowszych wersjach systemu Windows, jeśli taka starsza aplikacja jest uruchomiona (oszukiwanie jej w piaskownicy), a podczas mojej codziennej pracy programistycznej jest to właściwie tylko Visual Studio, które zawsze jest podnoszone, gdy muszę dołączyć do innych procesów w celu debugowania.
Oskar Duveborn
3

[przepraszam, angielski nie jest moim językiem ojczystym, robię co w mojej mocy :)] Cóż,

Osobiste doświadczenie (jestem programistą C ++ / SQL):

W poprzedniej pracy byłem administratorem mojego komputera z systemem Windows. Posiadałem również prawa dbo (nie dba) do baz danych, w tym baz danych środowiska produkcyjnego. W ciągu 2 i pół roku, kiedy 8 osób miało te szalenie wysokie prawa ... nigdy nie mieliśmy żadnych problemów. Właściwie rozwiązaliśmy wiele problemów, aktualizując ręcznie bazę danych. Moglibyśmy zrobić wiele rzeczy naprawdę szybko dla poprawek i deweloperów.

Teraz zmieniłem pracę. Udało mi się (bardzo płakać) zostać administratorem mojego komputera z systemem Windows. Ale serwer deweloperski jest serwerem red hat, z którym łączymy się za pomocą ssh. Próba zainstalowania Qt była torturą, limitami kwot, limitami miejsca, prawami wykonywania i zapisu. W końcu poddaliśmy się i poprosiliśmy administratora, aby zrobił to za nas. 2 tygodnie później nadal nic nie jest zainstalowane. Jestem naprawdę szybki w czytaniu gazet i wciskaniu alt + tab.

Poprosiłem o uprawnienia administratora, ponieważ tylko deweloper mojego oprogramowania korzysta z tej maszyny.

-> Odpowiedź: „Jeśli istnieją procesy, nie możesz robić tego, co chcesz. Po uruchomieniu musi działać poprawnie”.

-> Próbuję wyjaśnić kierownikowi nietechnicznemu: „Nie będę mieć żadnych praw administratora w środowiskach produkcyjnych lub UAT. Ale moja maszyna deweloperska jest inna. Gdybym miał budować krzesła zamiast oprogramowania, czy powiedziałbyś mi, że mogę Nie umieszczać narzędzi, które chcę w moim warsztacie, ponieważ mój warsztat musi wyglądać jak miejsce, w którym będzie używane krzesło? Daję plik wykonywalny do uat. Biblioteki i narzędzia, których użyłem do ich zbudowania, są niewidoczne dla użytkownika końcowego lub dla koleś instalujący pakiet. "

Nadal czekam dzisiaj. Znalazłem rozwiązanie, otwórz środowisko deweloperskie, idź do swojego ulubionego sędziego online, rzuć sobie wyzwanie. kiedy ktoś spojrzy na twój ekran, zobaczy, jak programujesz. ;)


źródło
2

Możesz odpowiedzieć na to na dwa sposoby. Tak i nie, albo to zależy. - Czy mogę być bardziej niejasny ...

Zależy to od tego, czy jest to wymagane od nich do wykonywania swojej pracy. Jeśli tak, udziel im uprawnień administracyjnych nad ich komputerem. Jeśli nie, to nie rób tego. Nie każde tworzenie oprogramowania wymaga od inżyniera posiadania uprawnień administratora.

Tak i nie zależy od twojego poglądu. Niektórzy inżynierowie traktują swój komputer jako domenę i są to zasady obowiązujące w ich domenie. Inni nie chcą odpowiedzialności.

Pracowałem w jednej firmie, w której nie miałem uprawnień administratora i zawsze, gdy potrzebowałem zrobić coś, co wymagało uprawnień administratora, musiałem dzwonić do pomocy technicznej i przyznawali mi tymczasowe uprawnienia administratora do czasu ponownego uruchomienia. Czasami było to uciążliwe, ale tak było, więc żyłem z tym. Pracowałem również w miejscach, w których mam pełne uprawnienia administratora do mojego komputera. To było świetne, z wyjątkiem czasu, gdy zainstalowałem oprogramowanie, które połączyło system operacyjny i musiałem zabrać komputer do stanowiska pomocy i poprosić o ponowne wyświetlenie dysku twardego ....

Osobiście uważam, że inżynier powinien mieć uprawnienia administratora do swojego komputera, ale ze zrozumieniem, że jeśli coś schrzanią, można ponownie załadować nowy obraz bazowy i stracą wszystko, co zostało zrobione od pierwotnej linii bazowej. Nie uważam jednak, że każdy w firmie powinien mieć uprawnienia administratora do swojego komputera. Księgowi, asystenci administracyjni i inne działy tak naprawdę nie potrzebują takich praw, więc nie należy ich przyznawać.

znak
źródło
Byłem kiedyś wykonawcą firmy, w której, aby uzyskać uprawnienia administratora, musiałem podpisać oświadczenie, że personel IT poświęci nie więcej niż dziesięć lub piętnaście minut na naprawę mojego komputera, a następnie całkowicie wyczyści i ponownie -wizerunek. Wydawało mi się to sprawiedliwe.
David Thornley,
Zgoda. Z dużą mocą przychodzi duża odpowiedzialność.
CraigTP
2

ht tp: //msdn.microsoft.com/en-us/library/aa302367.aspx

Z mojego doświadczenia wynika, że ​​kompromis między nami (programistami) a nimi (bezpieczeństwo) jest zawsze potrzebny. Przyznaję (choć nienawidzę), powyższy artykuł Microsoftu ma swoje zalety. Ponieważ jestem programistą od lat, doświadczyłem bólu, w którym musiałem po prostu zainstalować inny debugger, żeby się zirytować, nie mogę. Zmusiło mnie to do kreatywnego myślenia o wykonywaniu mojej pracy. Po latach walki z naszym zespołem ds. Bezpieczeństwa (i kilku dyskusjach) rozumiem, że ich praca polega na zabezpieczaniu wszystkich obszarów, w tym mojego komputera. Pokazali mi ujawniane codziennie luki, nawet w najprostszej aplikacji Quicktime. Za każdym razem, gdy chcę zainstalować szybkie narzędzie lub dostosować lokalne usługi IIS, widzę ich frustrację, co może spowodować poważny problem z bezpieczeństwem. Nie rozumiałem tego do końca, dopóki nie zobaczyłem, że inny programista został w puszce. Próbował debugować i skończył wyłączyć Symantec tylko po to, aby dostać (a następnie PODAĆ) wirusa setkom ludzi. To był bałagan. Rozmawiając z jednym z „secheadów” (ochroniarzy) o tym, co się stało, widziałem, że chciał po prostu powiedzieć, „tak ci powiedział…”.

Dowiedziałem się, że nasi secheads (a przynajmniej ja) chcą po prostu chronić naszą firmę. Dobrą wiadomością jest to, że znaleźliśmy kompromis i mogę wykonać swoją pracę, a secheads są fajni z naszą bezpieczną siecią!

Kredo


źródło
1

Tak, jeśli chcesz, aby pentesterzy lub niektórzy wykwalifikowani złośliwi użytkownicy znaleźli przyczółek do włamania do Twojej domeny.

tj. przejmij konto niskiego poziomu> Znajdź, gdzie admin -> Mimikatz -> Podnieś uprawnienia -> Administrator domeny.

Więc nie, zwykli użytkownicy nie powinni być administratorami.

Microsoft powiedział również, że UAC nie jest granicą bezpieczeństwa, więc nie używaj go jako takiego. Dostępne są różne obejścia UAC w świecie rzeczywistym.

Jeśli potrzebują administratora jako części swojej roli zawodowej, przydziel oddzielne konta administratora lokalnego domeny używane tylko do instalowania oprogramowania (z uprawnieniami administratora tylko na ich własnym komputerze), nigdy do ogólnego użytku lub dostępu do Internetu. Powinno to mieć bardziej rygorystyczną politykę dotyczącą haseł (np. Minimalna długość 15 znaków). W tym celu należy użyć funkcji Runas.

Każde środowisko, w którym zwykłe konta użytkowników to admin, jest receptą na katastrofę bezpieczeństwa.

SilverlightFox
źródło
0

Wow, to pytanie z pewnością otworzy się na kilka interesujących odpowiedzi. W odpowiedzi cytuję często używane - „To zależy” :)

W małych firmach może to być po prostu kwestia pragmatyzmu. Deweloperzy są również prawdopodobnie najbardziej zaawansowani technicznie, więc administrowanie własnymi maszynami ma sens.

Osobiście jestem fanem „konta administratora”, z którego można korzystać w razie potrzeby - np. „Uruchom jako…” (zauważyłem, że to podejście było w zasadzie bardzo podobne do późniejszego UAC).

Jeśli tworzysz oprogramowanie dla komputerów stacjonarnych, to nie jest złym pomysłem, aby deweloperzy pracowali w ramach ograniczeń, których doświadczą ich użytkownicy końcowi - tj. Ograniczone lub ograniczone prawa. Jeśli tworzysz oprogramowanie na ograniczonych prawach, istnieje duża szansa, że ​​napotkasz te same problemy, z którymi spotkaliby się Twoi docelowi użytkownicy, mając ten sam zestaw uprawnień.

Powiedziawszy to, jeśli masz dobre laboratorium testowe i / lub przyzwoity zespół QA, może to być kwestia dyskusyjna - zwłaszcza jeśli masz przyzwoitą praktykę ALM.

I wreszcie - rozwijam się bez UAC, głównie dlatego, że ufam sobie i swoim umiejętnościom. W środowisku zespołowym poddałbym to pod głosowanie. W większych organizacjach możesz nie mieć tej swobody. Administratorzy przedsiębiorstwa często mają ostatnie słowo :)

RobS
źródło
0

W mojej firmie programiści, inżynierowie i mój szef (właściciel firmy) mają uprawnienia lokalnego administratora. Mój szef ma również uprawnienia administratora sieci, na wypadek gdyby uderzył mnie ten krnąbrny autobus (lub zrezygnowałem). Wszyscy inni zostają zablokowani.

Jako sysadmin, ta konfiguracja sprawiała mi od czasu do czasu trochę smutku, zwłaszcza gdy instalowane jest niezatwierdzone oprogramowanie. Jednak wywodząc się z doświadczenia programistycznego, rozumiem potrzebę, aby zaawansowani użytkownicy mieli większą kontrolę nad swoim środowiskiem i jako taki jestem gotów znosić sporadyczne dziwactwa lub problemy, które mogą się pojawić. Robię rutynowe kopie zapasowe ich stacji roboczych - na wszelki wypadek.

Nawiasem mówiąc, miałem więcej problemów z szefem majstrującym przy różnych rzeczach niż z kimkolwiek innym. Coś jak stare pytanie: „Gdzie siedzi słoń? Gdzie chce!” Ale w małej firmie, w której jest zasadniczo administratorem „zapasowym”, nie ma wielkiego wyboru.

Mikrofon
źródło
-1

To zależy od umiejętności programisty i tego, czy jest konsultantem, czy nie.

Myślę, że to rozsądne, że doświadczony i godny zaufania programista ma prawo robić, co chce ze swoim komputerem, o ile nie szkodzi to jego / jego produktywności.

Manrico Corazzi
źródło
6
Dlaczego miałbyś wiązać ręce konsultantowi, a nie zwykłemu pracownikowi? Czy nie oboje wykonują tę samą pracę? Czy oczekujesz mniej od konsultanta, mimo że prawdopodobnie płacisz za niego więcej? To brzmi naprawdę głupio. Co więcej, jeśli programista nie może utrzymać własnej maszyny w ruchu, potrzebuje nowej pracy
NotMe
-1

Nikt w systemie Windows XP nie powinien używać konta administratora do codziennego użytku, aw systemie Vista, jeśli musisz być administratorem, przynajmniej mieć włączoną kontrolę konta użytkownika. Zwłaszcza programiści stron internetowych i inni programiści przeglądający Internet za pomocą przeglądarki Internet Explorer.

Możesz poprosić programistów o używanie ich zwykłego konta użytkownika, ale dać im drugie konto, które jest administratorem na ich komputerze, aby mogli z niego korzystać w razie potrzeby (Uruchom jako). Wiem, że mówili o tworzeniu stron internetowych, ale w przypadku programowania w systemie Windows oprogramowanie powinno być testowane przy użyciu zwykłego konta użytkownika, a nie administratora.

Bratch
źródło