К какой папке .ssh вы не можете получить доступ? (Из Cygwin вы не сможете увидеть ее на Ubuntu, однако вы должны быть в состоянии увидеть ее на Ubuntu, из Ubuntu, если она находится именно там). Если вы сгенерировали RSA-ключ с помощью puttygen, он не будет работать с ssh.exe от Cygwin, потому что они используют разные форматы для файла ключа (putty использует файл с расширением .ppk, который имеет другой формат).
Вы можете загрузить этот ppk файл в puttygen, а затем использовать Преобразования -> Экспорт ключа OpenSSH
, чтобы сохранить его в правильном формате, который может использовать ssh.exe. Если вы хотите загрузить этот файл ключа в Cygwin с диска Windows, вы можете использовать каталог /cygdrive, чтобы получить доступ к диску C: (или другому диску), на котором находится ключ. Затем вы можете использовать команду -i, чтобы указать ssh на него. Другая альтернатива - использовать ssh-keygen для генерации нового ключа для Cygwin и добавить его в папку authorized_keys Ubuntu.
Также Cygwin ssh по умолчанию использует имя пользователя, с которым вы вошли в windows, в качестве имени пользователя удаленного хоста, если вы не укажете его в аргументах команды ssh.
Если это все еще не работает, я бы проверил, что делает ssh, добавив -vvv к аргументам команды.
ssh -vvvv -i /cygdrive/c/path/to/my/id_dsa -l username host.address.here
(очевидно, заменив правильные аргументы для -i -l и host.address.here
).
Все внутри
/sys/bus/usb/devices/
Содержит программную ссылку. Разрешение программной ссылки по умолчанию всегда равно 777.
Но настоящий файл находится внутри
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/
— настоящий файл. Сначала вам нужно изменить разрешение на 777 в реальном местоположении, чтобы пользователь u0 _a88 мог открывать каталог/файлы.
Насколько я понял, это, скорее всего, связано с SELinux:
$ su
# getenforce
Enforcing
Обычным файлам может быть предоставлен доступ для обычного пользователя, как в следующем примере:
$ su
# echo foo >bar
# exit
$ cat foo
cat: bar: Permission denied
$ su
# ls -Z bar
u:object_r:app_data_file:s0 bar
# restorecon bar
SELinux: Loaded file_contexts
# ls -Z bar
u:object_r:app_data_file:s0:c512,c768 bar
# chown u0_a88.u0_a88 bar
# exit
$ cat bar
foo
Однако простого использования restorecon
и chmod
недостаточно, чтобы дать мне доступ к/sys/bus/usb/devices
:
# restorecon /sys/bus/usb/devices
# chown u0_a88.u0_a88 /sys/bus/usb/devices
# ls -Zd /sys/bus/usb/devices
u:object_r:sysfs:s0
# exit
$ ls -ld /sys/bus/usb/devices
drwxr-xr-x 2 u0_a88 u0_a88 0 Aug 23 11:49 /sys/bus/usb/devices
$ ls -l /sys/bus/usb/devices
ls: cannot open directory '/sys/bus/usb/devices': Permission denied
Я не пытался изменить разрешения выше по пути, так как беспокоюсь о ломая систему.
(Я предполагаю, что мое объяснение верно. Еще ответ знающего человека о SELinux было бы неплохо.)