Windows 7 在严格的IT政策下安装cygwin的最佳策略?
我的组织有一个有效的组策略,只允许可执行程序驻留在Program Files(或Program Files X86)目录下。显然,普通用户无法写入这些目录。我有访问本地管理员权限,所以如果我想,我可以在那里安装东西。但是当然,把整个cygwin树放在那里是没有意义的,因为用户需要能够写到/home、/tmp等等。我想我可能可以用链接做些什么,也许可以安装到c:\cygwin,然后只移动程序文件下的/bin目录,并创建一个指向它的硬链接Windows 7 在严格的IT政策下安装cygwin的最佳策略?,windows-7,cygwin,group-policy,Windows 7,Cygwin,Group Policy,我的组织有一个有效的组策略,只允许可执行程序驻留在Program Files(或Program Files X86)目录下。显然,普通用户无法写入这些目录。我有访问本地管理员权限,所以如果我想,我可以在那里安装东西。但是当然,把整个cygwin树放在那里是没有意义的,因为用户需要能够写到/home、/tmp等等。我想我可能可以用链接做些什么,也许可以安装到c:\cygwin,然后只移动程序文件下的/bin目录,并创建一个指向它的硬链接 有没有人遇到过类似的情况并提出了一个优雅的解决方案?这是Wi
有没有人遇到过类似的情况并提出了一个优雅的解决方案?这是Win 7 Enterprise 在Cygwin 1.7.34之前,解决这些问题需要相当多的跳圈,但现在很容易:
/etc/passwd
和/etc/group
移开,然后升级到当前版本/etc/nsswitch.conf
。⁴ 添加一行如下所示:
db_home: /%H
桌面
和下载
作为子文件夹,这与OSX和许多桌面Linux的工作方式相匹配
有些人可能不希望将这两个目录视为等效目录。您可以选择任何您喜欢的路径方案。例如,您可以将其更改为/cygdrive/c/Users/%U/cygwin
,将cygwin主文件夹放入Windows配置文件目录的cygwin
子目录中
Cygwin的这一新功能非常强大和实用。例如,如果愿意,可以通过AD更改Cygwin用户主目录。有关详细信息,请参阅该文档
您可能还想重新排列Cygwin路径方案的一些其他元素。您可以通过编辑文件来执行此操作。您可能希望将/tmp
、/usr/tmp
和/var/tmp
移动到非管理员用户可以写入的目录,原因之一是:
c:/tmp /tmp ntfs auto 0 0
c:/tmp /usr/tmp ntfs auto 0 0
c:/tmp /var/tmp ntfs auto 0 0
这将允许您以管理员身份安装(并在以后更新)Cygwin,同时仍允许非特权用户运行Cygwin。这使得Cygwin的行为更像Linux或Unix。由于Cygwin包存储库中的大多数软件都来自这个世界,因此您可以指望它在这样的方案下正常运行
脚注:
C:\ProgramFiles\Cygwin
C:\Users\jeremy\Cygwin
D:\cygwin
vi
,Cygwin包存储库中还有许多其他文本编辑器
如果您喜欢vi
,我建议安装完整版本的Vim,然后将别名vi=Vim
添加到~/.bashrc
中
您还可以使用本机Windows GUI文本编辑器。Cygwin的/etc/nsswitch.conf
解析器似乎可以处理DOS行的结尾%HOMEDRIVE%
和%HOMEPATH%
环境变量构建此路径,然后将其转换为POSIX格式类似的问题和答案也在讨论中。我不确定这是不是最好的,但安瑟的得分是6分。@HarryJohnston:你这到底是什么意思?您希望用户空间
cygwin1.dll
提供真正的安全性还是什么?Cygwin只能使用它在平台上找到的机制。例如,Cygwin文件可以通过NTFS ACL进行保护,操作系统内核将实施这些保护。事实上,很快就发现了这一点:“从1.5.13版开始,Cygwin开发人员不知道Cygwin dll中有任何功能允许用户获得特权或访问他们在Windows下无权访问的对象。”所以问题不再存在。@HarryJohnston:Cygwin 1.5.13是。不管怎样,我认为Cygwin纯粹是一个用户空间,你不能指望它强制执行,比如。共享内存位于Cygwin进程的所有内存空间中,因此Cygwin DLL不会设置任何障碍,使动态链接到它的进程无法绕过。@Warrenyong:这很合理,不是吗?在Windows中,同一进程的不同部分之间从来没有任何安全性,而且UNIX也是如此。我说的是属于不同用户的进程之间的安全性。但这一切都没有意义,因为事实证明我的信息已经完全过时了。