共享 Cygwin 安装

共享 Cygwin 安装

我正在尝试以自动化方式在多台 Windows Server 2003 机器上设置 OpenSSH。我的目标是能够使用安装在网络驱动器上的单个版本的 Cygwin 来完成此操作,而不是在每台机器上手动安装它。

我可以正常安装 cygwin,但是当我尝试运行 ssh-host-config 时开始遇到问题。

$ ssh-host-config
bash: /usr/bin/ssh-host-config: Permission denied 

好吧,没什么大不了的。我把 /usr/bin 中的所有内容都 chmod 555。

$ ssh-host-config
/usr/share/csih/cygwin-service-installation-helper.sh: line 689: /usr/bin/awk: cannot execute binary file

这是我被困住的地方。正在运行

petters@BTSOTTSTBAL507 /usr/bin
$ awk
bash: /usr/bin/awk: cannot execute binary file

以下是 awk 的内容:

!<symlink>gawk.exe

值得注意的是,我可以正常运行 gawk.exe,并尝试使用 CYGWIN=winsymlinks 环境变量集安装 Cygwin。

我还注意到了以下情况 -

petters@BTSOTTSTBAL507 /usr/bin
$ ls -l
total 366592    
-rwxr-xr-x 1 ???????? ????????   54798 Feb  4 19:02 [.exe
-rwxr-xr-x 1 ???????? ????????   23566 May 18  2010 addftinfo.exe
-rwxr-xr-x 1 ???????? ????????  165806 May 18  2010 afmtodit
-rwxr-xr-x 1 ???????? ????????    1786 May 17  2010 apropos
-rwxr-xr-x 1 ???????? ????????   47118 Feb  4 19:01 arch.exe
-rwxr-xr-x 1 ???????? ????????    8206 Apr 29 00:43 ascii.exe

换句话说,所有权数据被搞乱了。

我的印象是 cygwin 1.7.x 是可移植的,但可能不是?任何帮助都值得感激!

答案1

您面临 2 个问题。

首先是 Cygwin 的权限和所有权的 posix-y 视图与 Windows 之间的区别。您需要阅读在 Cygwin 中使用 Windows 安全性????????显示 是因为这些文件的所有者是本地计算机上未定义的用户。如果您在域中,您可能可以运行mkpasswdmkgroup并使用输出来创建适当的/etc/passwd/etc/groups。但是,它们将仅包含创建它们的主机的特定于计算机的帐户。

这恰好引出了第二个问题:

Cygwin 将其大部分配置设置保存在 或 下/etc。因此,/etc跨多台主机共享非常困难。同样,大多数 Cygwin 进程将假设/tmp并且/var也是特定于机器的。

可能c:\cygwin\etc通过在每台机器上创建本地目录(例如: 、c:\cygwin\tmp和)来实现这一点。c:\cygwin\var您需要用预期的文件和目录填充 etc 和 var。然后您需要创建一个 /etc/fstab,将所有这些文件和目录整合到一个完整的文件系统中。您需要阅读映射路径名了解更多信息。

还要记住,只要您的网络驱动器不可用,任何正在运行的 Cygwin 进程都可能会挂起、崩溃或出现异常行为。

相关内容