2012-03-05 71 views
35

我不能在Windows 8上的cygwin chmod組權限,以便我不能使用ssh密鑰連接到服務器。
Bash提示警告:「'/home/KeepZero/.ssh/id_rsa'的權限0660太開放。 需要您的私鑰文件不能被其他人訪問。」爲什麼不能在Windows 8 CP上使用cygwin chmod?

[email protected] ~ 
$ ls 
test 

[email protected] ~ 
$ ls -l 
total 0 
-rwxrwx--- 1 KeepZero KeepZero 0 Mar 4 15:07 test 

[email protected] ~ 
$ chmod 700 test 

[email protected] ~ 
$ ls -l test 
-rwxrwx--- 1 KeepZero KeepZero 0 Mar 4 15:07 test 

[email protected] ~ 
$ chmod 777 test 

[email protected] ~ 
$ ls -l test 
-rwxrwxrwx 1 KeepZero KeepZero 0 Mar 4 15:07 test 
+0

適合我。你在那裏使用什麼樣的文件系統? – ak2 2012-03-05 06:07:41

+0

啊,我忽略了它在Windows 8上,所以忘記我的評論。最好把這個報告給Cygwin郵件列表我想。 – ak2 2012-03-05 19:47:50

回答

69

做一個ls -al,你會看到你的文件不屬於任何組(無)。 只要對你​​的文件做一個chgrp Users *,你又好了。

+0

謝謝,它爲我修好了! – 2012-07-20 04:06:47

+0

這也給我修好了!非常感謝! – 2012-10-29 18:30:19

+2

是的,記得做'chmod 600 '之後 – 2013-11-01 15:28:41

48

上述解決方案可行,但它不能解決根本原因,並且問題會隨任何用戶創建的文件重新發生,您要在其中更改權限。要永久解決該問題:

  1. 在/ etc /組(或您的語言環境的等效組名)查找組ID「用戶」組。
    在我的安裝中,這是545,YMMV cat /etc/group|egrep '^Users:'會給你正確的線。該行上的第三個字段是組ID。 (cat /etc/group|egrep '^Users:'|cut -f3 -d':'只是獲得ID)。

  2. 編輯你的/ etc/passwd文件。找到您的用戶的記錄。第四個字段是用戶的「主要組」。它被錯誤地設置爲不存在的組。將該號碼更改爲您在上面第1步中找到的號碼。保存etc密碼文件。

  3. 關閉任何打開的cygwin窗口/終端,然後打開一個新的。創建一個新文件。它應該有一組「用戶」,您應該可以根據需要更改權限。

+5

你先生,應得一枚獎章。還有更多upvotes。你的這個答案現在已經爲我省了好幾次了,我已經把它作爲參考書簽了,因爲我相信我將來也需要遵循這些步驟。 – 2013-05-31 05:50:14

+3

這個答案應該被接受,因爲它解決了最初的問題,並不是一點點修復。請注意,組的名稱取決於用戶機器的lang。就我而言,這是「Utilisateurs」(用法語)。 – orion78fr 2014-01-22 21:53:14

+2

$ cat/etc/group | egrep'^ Usuarios:'| cut -f3 -d':'供西班牙用戶使用。 – JorgeGT 2014-04-25 23:17:35

1

此問題的一個可能的原因是,你已拷貝的實際PC你的.ssh文件夾..創建自己的文件夾,然後你得到正確的用戶組。不要複製文件夾..分配給不匹配的用戶組。

0

我在Windows Server 2012 R2上遇到了同樣的問題。嘗試更改所有者或組,甚至文件的權限後,它仍顯示原始值並忽略了我的設置。 閱讀https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-files

文件權限

在NTFS後,如果noacl掛載掛載 點未指定選項,Cygwin的設置文件權限的POSIX系統。

我想通了,在noacl選項是爲mountpoins設置:

$ mount 
C:/cygwin/bin on /usr/bin type ntfs (binary,noacl) 
C:/cygwin/lib on /usr/lib type ntfs (binary,noacl) 
C:/cygwin on/type ntfs (binary,noacl) 
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,noacl,auto) 

所以我刪除從/ etc/fstab中的掛載點noacl選項,並關閉了所有的cygwin窗口。重新打開控制檯後,使用chown,chgrp和chmod的權限設置按預期工作。

相關問題