Подтвердить что ты не робот

Почему я не могу запустить chmod в Cygwin на Windows 8 CP?

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

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

[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
4b9b3361

Ответ 1

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

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

Ответ 2

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

Чтобы навсегда решить проблему:

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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

File permissions

В 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 работала как положено.

Ответ 5

Я столкнулся с той же проблемой в Windows 10 в командной строке Cygwin.

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

Следующая команда решает проблему,

 chmod 700 <id-file>