共享 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 是可移植的,但也許不是?任何幫助表示讚賞!
您面臨2個問題。
首先是 Cygwin 的 posix-y 權限和所有權視圖與 Windows 之間的區別。您需要閱讀在 Cygwin 中使用 Windows 安全性。顯示
????????
是因為文件歸本地電腦上未定義的使用者所有。如果您在域中,您可能可以執行mkpasswd
andmkgroup
並使用輸出來創建適當的/etc/passwd
and/etc/groups
。但是,它們將僅包括創建它們的主機的特定於電腦的帳戶。這很好地解決了第二個問題:
Cygwin 將其大部分配置設置保存在
/etc
. 所以跨多個主機共享/etc
是非常困難的。同樣,大多數 Cygwin 程序將假定/tmp
並且/var
也是特定於機器的。您可以通過在每台機器上創建本地目錄來實現此功能,例如:
c:\cygwin\etc
、c:\cygwin\tmp
和c:\cygwin\var
. 您將需要使用預期的文件和目錄填充 etc 和 var。然後您需要創建一個 /etc/fstab 將所有這些組合到一個完整的文件系統中。您需要閱讀映射路徑名稱以了解更多資訊。還要記住,只要您的網路驅動器不可用,任何正在執行的 Cygwin 程序都可能掛起、崩潰或行為異常。