我们在我工作的大学电台安装数字媒体系统。 我们试图让程序员(阅读; DJ,而不是编码员)访问音乐,而不允许他们复制到他们的闪存驱动器或通过互联网传输。
我们在Windows系统上运行(用于客户机的Windows XP,以及用于介质服务器的Windows Server 2008)。 我的想法是这样的。
这似乎是一个完美的解决scheme,但有一个问题。 如果播放应用程序或机器崩溃,程序员是唯一能够在合理的时间内重新运行的人(我们是一个15千瓦的调频广播电台,所以停机时间是一个大问题)。 因此,我的困境…
我如何让程序员以不知道密码的用户的身份启动我们的回放应用程序?
sudo.bat
@echo off runas /user:Administrator /savecred %1
令人惊讶的是,即使在重新启动或电源故障后,也不会再要求密码
…而不允许他们将其任何内容复制到他们的闪存驱动器或通过互联网传输
在这些机器上禁用USB闪存驱动器,Internet访问等。
我可以想办法解决这个问题。 首先(也是更困难的)是编写一个启动Traktor的小窗口服务。 因此,ProgramUser可以向服务请求一个新的Traktor实例,并且该服务正在作为MediaUser运行,所以Traktor作为MediaUser启动。
另一种可能性,更简单的方法是设置启动快捷方式,在每次login时启动Traktor – Windows快捷方式允许您在快捷方式属性中设置相应用户的凭据。 如果电脑崩溃,程序员只需要login,他们有一个新的Traktor作为MediaUser运行!
希望这些解决scheme之一将为您工作!
您可以制作一个启动MediaUser进程的程序。 这可以这样做,它将作为ProgramUser运行。
MediaUser的密码/证书需要编译到程序中,以便知道密码,但最终用户永远不需要知道这一点。 他们只是有一个button或程序,说“重新启动Tracktor”,它可以做所有的工作。
这是一个C#的例子。 唯一的变化就是硬编码的凭据,所以DJ不会看到他们。
看看Steel RunAs。 我已经在我的SysAdmin职业生涯中使用了几个脚本,没有其他替代scheme是合理的。 这绝对是方便的。 它生成一个可执行文件,在其中encryption存储的凭证。 连锁
理想的情况是你可以修改Traktor作为一个服务运行,并有一个单独的GUI。 这为您提供了最好的安全选项 – Traktor然后将以具有正确凭据的用户身份运行,而且没有人需要知道它们是什么,或者需要input密码才能重新启动它。 事实上,如果它在服务pipe理单元中崩溃,你可以重新启动它自己。
你的GUI驱动Traktor然后被写为用户自己运行的应用程序,它将消息发送到Traktor服务(通过TCP / IP,RPC,共享内存或任何其他forms的IPC),以使其执行用户需要。 如果您使用跨networking协议(例如TCP / IP)使GUI工作,则用户可以login到其工作站,并且可以在更可靠的服务器上运行拖拉机服务,可能会将其locking以防止“意外”重新启动。 如果你是好的,你可以编写一个web应用程序来驱动拖拉机(也就是说,web服务器将消息发送到服务),你的用户可以从家里运行站!
拖拉机服务将在服务器上启动,无需login。