Czy lokalne prawa „użytkownika” są wystarczające, czy też programiści potrzebują lokalnego administratora lub zaawansowanego użytkownika podczas kodowania?


17

Mamy przybrzeżną ekipę programistyczną, która ma zły nawyk instalowania bezsensownego oprogramowania na komputerach stacjonarnych (co nie ma nic wspólnego z ich funkcją) i dlatego rozważa usunięcie uprawnień lokalnego administratora.

Czy lokalny administrator, czy lokalny użytkownik zaawansowany jest wymagany w VS2010? Jak biegniesz bez podwyższonych uprawnień? Jakie problemy napotkasz?


1
Znaleziono bardzo podobny wątek na SO stackoverflow.com/questions/701214/…
goodguys_activate

1
Kolejny podobny (dzisiaj) wątek na serverfault serverfault.com/questions/232416/…
goodguys_activate

Odpowiedzi:


19

Programista powinien pracować jako użytkownik z ograniczonym dostępem z dostępem administratora. Oznacza to, że programista powinien być administratorem maszyny, ale podczas pracy powinien zawsze używać konta z ograniczonym dostępem.

Jeśli potrzebujesz podwyższonych praw do pracy, do niczego poza instalowaniem oprogramowania, robisz coś bardzo złego. Co gorsza, jeśli pracujesz jako użytkownik zaawansowany lub wyłączasz podpowiedzi UAC itp., Ignorujesz problemy, które wpłyną na użytkowników końcowych twojego oprogramowania, zmuszając ich do korzystania z tych samych uprawnień, które zrobiłeś. To jest źle.

To prawda, niezależnie od systemu operacyjnego, na którym pracujesz. Chociaż Windows wydaje się być jedynym, w którym pojawia się.

W celu wyjaśnienia:

Kiedy mówię, że programista powinien być ograniczonym użytkownikiem, mam na myśli, że powinni oni mieć pełne prawa administratora do komputera, ale kiedy testują swój kod, powinno się to odbywać w środowisku ograniczonego użytkownika. Na przykład programista może obsługiwać maszynę jako użytkownik z uprawnieniami administratora, ale uruchamia wszystkie testy na maszynie wirtualnej lub na koncie użytkownika z ograniczeniami. W Linuksie oznacza to po prostu, że programista ma sudodostęp; w systemie Windows może to oznaczać konto na poziomie administratora z pełną kontrolą UAC i innymi funkcjami bezpieczeństwa.


5
W niektórych przypadkach wymagane jest uruchomienie jako administrator (na przykład w celu debugowania problemu, który pojawia się podczas uruchamiania w IIS, ale nie na przykład w deweloperskim serwerze WWW), ale masz rację, że w codziennym rozwoju jesteś nie muszę (i nie powinien) działać jako administrator.
Dean Harding,

2
Kolejny wyjątek dotyczący tego, że „zawsze używaj ograniczonego działania użytkownika”: musisz (ponownie) uruchomić / zatrzymać usługę
Victor Hurdugaci,

3
@Victor Hurdugaci: Dlatego mówię, że dostęp administratora powinien być dostępny. Kiedy mówię, że programista powinien działać jako ograniczony użytkownik, nie mam na myśli, że nie powinni oni być administratorem własnego komputera.
greyfade

9

Jest to kwestia polityczna lub dotycząca zarządzania, a nie kwestia techniczna.

Zastanów się nad stworzeniem i zakomunikowaniem zasady „nie chcemy, abyś instalował oprogramowanie, które nie ma związku z funkcją stanowiska”, aby szef mógł odpowiednio postępować.

W tym celu administrator systemu może poprosić każde urządzenie o listę zainstalowanych programów. Jeśli robisz to regularnie, możesz napisać mały program, który pokaże, co zostało zainstalowane, dzięki czemu uzyskasz szybki przegląd.

To powiedziawszy, jeśli wspomniane programy są nielegalne lub moralnie niedopuszczalne, to dlaczego jest to przede wszystkim problem?


13
+1: Jeśli nie możesz ufać programistom, że działają z lokalnymi uprawnieniami administratora, nie możesz ufać programistom, kropka.
Kramii

@Kramii - Dodaję do tego kolejny okres .
Anto

6

To zależy od tego, czego oczekujesz, że będą się rozwijać niezależnie.

Zdecydowanie wpłynęłoby to na niektóre rzeczy, takie jak konfiguracja IIS, zdalne debugowanie, modyfikowanie dostępu do GAC, możliwość uruchomienia własnego MSI. Jeśli są to rzeczy, które oczekujesz, że outsourcing będzie robił niezależnie, nie spróbowałbym tego bez wielu testów.

Jeśli Twoi pracownicy korzystający z outsourcingu pracują nad aplikacją komputerową, mogą debugować lokalnie, prawdopodobnie nie będziesz miał problemów.

Zakładając, że używają kontroli źródła, zawsze możesz zaplanować okresowe ponowne obrazowanie maszyn.

Większość miejsc, w których pracowałem, zajmuje się całą pierwszą sprawą i oczekuję dużej niezależności, więc wszyscy deweloperzy są lokalnymi administratorami, a polityka korporacyjna dopuszcza zastosowanie środków dyscyplinarnych, jeśli zainstalujesz niezatwierdzone oprogramowanie na dowolnej maszynie i spowoduje problemy.


6

Potrzebuję uprawnień administratora, aby uruchomić Apache na porcie 80 na moim MacBooku. Poza tym nie ma powodu, dla którego nie mogłem być na zablokowanym komputerze bez uprawnień administratora. I mógłbym użyć niestandardowego portu, gdybym naprawdę tego potrzebował. Z punktu widzenia zasobów przedsiębiorstwa sensowne jest, aby programiści nie byli uprzywilejowanymi użytkownikami swoich komputerów.

Jednak zablokowanie programisty na jego komputerze musi być realizowane wraz z elastycznym i chętnym zespołem administracyjnym. Jeśli nie mogę sam zainstalować rzeczy, potrzebuję kogoś, kto może to dla mnie zrobić, posiekać i nie poddawać mi trzech rund zatwierdzenia. Jeśli przedsiębiorstwo nie chce się do tego zobowiązać, powinno dać programistom pełną kontrolę nad swoim pakietem.

Oczywiście wolę to drugie, ale widzę mądrość tego pierwszego.


4

Przez większość czasu prowadzę VS 2010 nie jako administrator. Ale jeśli chcesz dodać lub usunąć usługę, skonfigurować IIS lub majstrować w rejestrze, będziesz potrzebować uprawnień administratora. Również niektóre narzędzia do profilowania zachęcają do ponownego uruchomienia VS jako admin. Więc myślę, że udostępnienie kont osób offshore, które nie mają uprawnień administratora, powstrzyma ich przed wykonywaniem niektórych (być może małych) części ich zadań.

Co więcej, wraz ze wzrostem UAC, coraz więcej aplikacji można teraz instalować bez uprawnień administratora. Nie umieszczają rzeczy w HKLM, nie dotykają niczego w System32, umieszczają exe gdzieś pod folderem users \ whoever, co znacznie ułatwia ich usunięcie, ale może nie odnosić się do pierwotnego punktu, w którym instalują „ oprogramowanie nonsensowne ”, przez które zakładam, że masz na myśli gry, odtwarzacze muzyczne itp.

Jeśli naprawdę chcesz zapobiec lokalnym instalacjom, być może najlepszym rozwiązaniem jest stara wizja „sieć to komputer” z wczesnych dni Java. Wszyscy pracują w systemie kontroli wersji i muszą się zameldować lub odłożyć na półkę każdej nocy przed powrotem do domu. E-mail mieszka w chmurze, a nie na maszynie deweloperskiej. Itd. Wówczas, kiedy chcesz, możesz ponownie zobrazować swoje maszyny deweloperskie (nawet łatwiej, jeśli są one wirtualne), a ci, którzy nie zainstalowali nic więcej, nawet tego nie zauważą. Coś jak sprzątanie lodówki biurowej w weekend.

Ale ostrzegam - nie pracowałbym w tym środowisku. Instaluję programy narzędziowe i pomocnicze, od czasu do czasu gram w gry i nie spodobałoby się to komuś, kto próbował temu zapobiec. Jestem produktywny jak diabli. Jeśli niektórzy twoi deweloperzy nie są produktywni, zabranie ich lokalnych instalacji nie zwiększy ich produktywności ani poświęcenia. Rozwiąż ten problem w katalogu głównym, a nie będziesz mieć nic przeciwko, że są administratorami.


3

Przypuszczam, że usunięcie praw administratora od programistów powinno iść w parze z przypisaniem jednego z administratorów systemu do zainstalowania oprogramowania dla zespołu. Jeśli oboje nie masz uprawnień administratora i nie możesz poprosić administratora o zainstalowanie rzeczy dla ciebie, jesteś po prostu bezradny wobec wyzwań, przed którymi stoisz. To tak, jakbyś zamknął swój więzienny zespół.


1

To zależy do czego piszesz oprogramowanie.

Jeśli twoje oprogramowanie nie musi ingerować w twój system, nie potrzebujesz uprawnień administratora.


Lepsze rozwiązanie: do celów instalacji / testowania można użyć maszyn wirtualnych lub komputerów w laboratorium testowym.


0

Widziałem dwa podejścia do tego. Jednym z nich było zmuszenie wszystkich do pracy od laptopów, które musieli oddać administratorom, gdy wrócili do domu. Gdy administrator to zrobi, włożyliby płytę CD, która ponownie zobrazowała maszynę. Po ponownym sfotografowaniu poszedł na półkę, gdzie byłby dostępny dla następnej osoby, która go potrzebowała. Upewnij się tylko, że wszystkie maszyny są identyczne, abyś nie skończył z ludźmi przeszukującymi je wszystkie, szukającymi „dobrego”.

Inną rzeczą, którą widziałem, jest to, że wszyscy uruchamiają się z serwera Citrix. Maszyny w ogóle nie mają lokalnej pamięci masowej, po prostu ładują standardowy obraz z sieci i uruchamiają z niego. Działa to lepiej, jeśli masz różne „typy” użytkowników, którzy wymagają różnych konfiguracji (np. Programiści interfejsu użytkownika mają obraz z Silverlight, programiści WCF mają IIS i SQL Server itp.)

ALE, po tym wszystkim, co powiedziałem, myślę, że Thorbjorn [sic] trafił w sedno: jest to problem zarządzania i prawdopodobnie nie zostanie odpowiednio rozwiązany za pomocą rozwiązania technicznego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.