Instalujemy system multimediów cyfrowych w studenckiej stacji radiowej, w której pracuję. Staramy się zapewnić programistom (czytać; DJ-owi, a nie programistom) dostęp do muzyki, nie pozwalając im kopiować żadnego z nich na dyski flash ani przenosić ich przez Internet.
Pracujemy w systemach Windows (Windows XP dla komputerów klienckich i Windows Server 2008 dla serwera multimediów). Mój pomysł jest taki.
- Utwórz użytkownika (ProgramUser), który w ogóle nie ma dostępu do multimediów cyfrowych.
- Utwórz użytkownika (MediaUser), który ma dostęp tylko do odczytu do multimediów cyfrowych, o których programiści nic nie wiedzą i nie znają hasła.
- Poproś użytkowników, aby zalogowali się do systemu Windows jako ProgramUser, nie dając im wcale dostępu do multimediów.
- Uruchom naszą aplikację do odtwarzania ( Traktor ) jako MediaUser, pozwalając programiście odtwarzać multimedia, ale nie kopiować ani nie modyfikować.
To wydaje się być idealnym rozwiązaniem, ale jest jedna gotcha. Jeśli aplikacja do odtwarzania lub maszyna ulegnie awarii, programista jest jedyną osobą, która będzie mogła uruchomić ją ponownie w rozsądnym czasie (jesteśmy stacją radiową FM o mocy 15 kW, więc przestoje to poważna sprawa). Stąd mój dylemat ...
Jak mogę dać programiście możliwość uruchomienia naszej aplikacji do odtwarzania jako użytkownik, dla którego nie zna hasła?
źródło
Wyłącz dyski flash USB, dostęp do Internetu itp. Na tych komputerach.
źródło
Jest kilka sposobów, które mogę wymyślić z ręki, aby obejść ten problem. Pierwszym (i trudniejszym) byłoby napisanie małej usługi Windows, która uruchamia Traktor. W związku z tym ProgramUser może poprosić usługę o nową instancję Traktor, a usługa działa jako MediaUser, więc Traktor jest uruchamiany jako MediaUser.
Inną możliwością, o wiele łatwiejszą, jest skonfigurowanie skrótu uruchamiania, który uruchamia Traktor przy każdym logowaniu - skróty Windows pozwalają ustawić poświadczenia odpowiedniego użytkownika we właściwościach skrótu. Jeśli komputer kiedykolwiek się zawiesi, programiści muszą się tylko zalogować, a nowy Traktor działa jako MediaUser!
Mam nadzieję, że jedno z tych rozwiązań będzie dla Ciebie działać!
źródło
Możesz stworzyć program, który uruchamia proces MediaUser dla DJ-a. Można to zrobić, aby działał jako ProgramUser.
Hasło / dane uwierzytelniające dla MediaUser musiałyby zostać wkompilowane w program, aby znało hasło, ale użytkownik końcowy nigdy nie musiałby być tego świadomy. Po prostu mieliby przycisk lub program z napisem „Zrestartuj Tracktor” i może wykonać całą pracę.
Oto przykład tego procesu w języku C #. Jedyną zmianą byłoby zakodowanie na sztywno poświadczeń, aby DJ ich nie widział.
źródło
Spójrz na Steel RunAs. Używałem go w kilku skryptach w mojej karierze SysAdmin, gdy żadna inna alternatywa nie była możliwa. To zdecydowanie przydatne. Generuje plik wykonywalny, w którym szyfruje przechowywane poświadczenia. Połączenie
źródło
Idealną sytuacją byłoby zmodyfikowanie Traktora jako usługi z osobnym GUI. Daje to najlepsze opcje bezpieczeństwa - Traktor działałby wtedy jako użytkownik z prawidłowymi poświadczeniami i nikt nie musi wiedzieć, co to jest, ani nie musi wpisywać hasła, aby je ponownie uruchomić. W rzeczywistości można go uruchomić ponownie, jeśli ulegnie awarii w przystawce usług.
Twój GUI do kierowania Traktorem jest następnie zapisywany jako własna aplikacja, którą użytkownik uruchamia jako ona sama, wysyła wiadomości do usługi Traktor (przez TCP / IP, RPC, pamięć współdzieloną lub dowolną inną formę IPC), aby zrobić to, co robi użytkownik chce. Jeśli GUI działa z wykorzystaniem protokołu międzysieciowego (na przykład TCP / IP), użytkownik może zalogować się do swojej stacji roboczej, a usługa traktor może działać na bardziej niezawodnym serwerze, prawdopodobnie zablokowanym, aby zapobiec „przypadkowemu” ponownemu uruchomieniu. Jeśli jesteś dobry, możesz zamiast tego napisać aplikację internetową do kierowania Traktorem (to znaczy, że serwer WWW wyśle wiadomości do serwisu), a użytkownik może uruchomić stację z domu!
Usługa traktor zostałaby uruchomiona na serwerze bez konieczności logowania.
źródło