Не удается перечислить содержимое каталога с 0755 и принадлежит текущему пользователю

К какой папке .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).

2
23.08.2018, 12:46
2 ответа

Все внутри

/sys/bus/usb/devices/

Содержит программную ссылку. Разрешение программной ссылки по умолчанию всегда равно 777.

Но настоящий файл находится внутри

/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/

— настоящий файл. Сначала вам нужно изменить разрешение на 777 в реальном местоположении, чтобы пользователь u0 _a88 мог открывать каталог/файлы.

-1
27.01.2020, 22:17

Насколько я понял, это, скорее всего, связано с 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 было бы неплохо.)

2
27.01.2020, 22:17

Теги

Похожие вопросы