Почему я не могу запустить chmod в Cygwin на Windows 8 CP? - PullRequest
36 голосов
/ 05 марта 2012

Я не могу разрешить группу chmod в Cygwin в Windows 8, чтобы я не мог подключиться через ssh к серверу с помощью клавиши ssh.

Предупреждение приглашения Bash: «Разрешения 0660 для» / home / KeepZero/.ssh/id_rsa 'слишком открыты. Требуется, чтобы ваши файлы закрытых ключей НЕ были доступны другим. "

KeepZero@t400win8 ~
$ ls
test

KeepZero@t400win8 ~
$ ls -l
total 0
-rwxrwx--- 1 KeepZero KeepZero 0 Mar  4 15:07 test

KeepZero@t400win8 ~
$ chmod 700 test

KeepZero@t400win8 ~
$ ls -l test
-rwxrwx--- 1 KeepZero KeepZero 0 Mar  4 15:07 test

KeepZero@t400win8 ~
$ chmod 777 test

KeepZero@t400win8 ~
$ ls -l test
-rwxrwxrwx 1 KeepZero KeepZero 0 Mar  4 15:07 test

Ответы [ 4 ]

69 голосов
/ 17 апреля 2012

Сделайте ls -al, и вы увидите, что ваши файлы не принадлежат ни к какой группе (нет).

Просто сделайте chgrp Users * для ваших файлов, и вы снова в порядке.

48 голосов
/ 07 декабря 2012

Решение Рой Дантон работает, однако оно не решает основную причину, и проблема будет повторяться с любым созданным пользователем файлом, для которого вы хотите изменить разрешения.

КомуУстраните проблему навсегда:

  1. Найдите идентификатор группы «Пользователи» в /etc/group (или эквивалентное имя группы для вашей локали).

    Inмоя установка это была 545 (ваш пробег может отличаться).cat /etc/group|egrep '^Users:' даст вам правильную строку.Третье поле в строке - это идентификатор группы.(cat /etc/group|egrep '^Users:'|cut -f3 -d':', чтобы просто получить идентификатор).

  2. Отредактируйте файл /etc/passwd.Найдите запись для вашего пользователя.Четвертое поле - «основная группа» для пользователя.Это неправильно установлено для несуществующей группы.Измените это число на число, которое вы нашли в шаге 1 выше.Сохраните файл пароля etc.

  3. Закройте все открытые окна / терминалы Cygwin, а затем откройте новый.Создать новый файл.У него должна быть группа «Пользователи», и вы сможете изменять его разрешения по своему усмотрению.

1 голос
/ 24 января 2018

У меня была такая же проблема на Windows Server 2012 R2. После попытки изменить владельца или группу или даже права доступа к файлу он по-прежнему отображал исходные значения и игнорировал мои настройки.

После прочтения Права доступа к файлу ,

Права доступа к файлу

В NTFS и если для монтирования не указана опция монтирования noacl К тому же, Cygwin устанавливает права доступа к файлам, как в системах POSIX.

Я понял, что для точек монтирования была установлена ​​опция noacl :

$ 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)

Поэтому я удалил параметр noacl из точек монтирования в /etc/fstab и закрыл все окна Cygwin. После повторного открытия консоли настройка разрешений с помощью chown, chgrp и chmod работала как положено.

1 голос
/ 07 марта 2014

Возможная причина этой проблемы в том, что вы скопировали папку .ssh на настоящий компьютер ...

Создайте свою собственную папку, и тогда вы получите правильную группу пользователей. Не копируйте папки ... они назначаются группам пользователей, которые не совпадают.

...