1

Я новичок в Cygwin, SSH, и возиться с правами доступа к файлам и возникли проблемы. На компьютере WORKER1 я пытаюсь подключиться по ssh к компьютеру WORKER2, а затем оттуда запустить файл .sh на WORKER1. Из того, что я могу сказать из вывода ниже, ls -l показывает, что должно быть разрешение на все (я знаю, что это плохие разрешения, но я сходил с ума, пытаясь понять, почему я получаю эту ошибку разрешения),

root@Worker1 ~
$ ssh WORKER2
Last login: Tue Jan 31 10:51:54 2012 from worker1

root@Worker2 ~
$ cd //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI

root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ sh Dos_Commands.WORKER2.1.sh
sh: Dos_Commands.WORKER2.1.sh: Permission denied

root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ ls -l
total 28
-rwxrwxrwx+ 1 Administrators None   2 Jan 31 11:01 Dos_Commands.WORKER1.0
-rwxrwxrwx+ 1 Administrators None 127 Jan 31 11:01 Dos_Commands.WORKER2.1
-rwxrwxrwx+ 1 Administrators None 250 Jan 31 11:01 Dos_Commands.bat
-rwxrwxrwx+ 1 Administrators None 636 Jan 31 11:01 MPI_COMM_WORLD.mat
-rwxrwxrwx+ 1 Administrators None  97 Jan 31 11:01 MatMPIdefs1.m
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p0_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p1_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None   0 Jan 31 11:01 p0_p1_t10000_lock.mat

На обоих компьютерах установлена 64-битная Windows 7, и на каждом из них установлена последняя версия Cygwin и OpenSSH. Sshd, работающий на WORKER2, также от Cygwin. При установке sshd единственный способ, которым я смог заставить его работать должным образом, - это ответить «нет» на разделение привилегий и «да» на установку как службу при запуске ssh-host-config. Я использую открытый ключ аутентификации RSA. Я попытался подключить //WORKER1 /Users /Public /pMatlab / как сетевой диск и получить к нему доступ таким образом, но это тоже не помогло. Есть идеи, что может пойти не так? Спасибо!

РЕДАКТИРОВАТЬ: я забыл упомянуть, что мои настройки общего доступа к сети в Windows настроены на все, что я вижу. Кроме того, моя Общая папка и папки внутри нее, кажется, настроены только для чтения (в контекстном меню -> Свойства), но файлы в ней - нет. Попытка изменить это в меню «Свойства» ничего не дает - когда я отключаю только чтение, он снова включается, когда я снова открываю меню «Свойства». Я попытался изменить это, запустив attrib -r C:\Users\Public в cmd.exe, но это тоже ничего не дало.

Наконец, я не получаю сообщение об ошибке разрешения при локальном запуске файла .sh, когда я пытаюсь получить к нему доступ из графического интерфейса Windows на компьютере WORKER2, или когда я ssh из WORKER2 сам по себе, а затем пытаюсь получить к нему доступ. Ошибка разрешения появляется только когда я ssh из WORKER1 в WORKER2, а затем пытаюсь получить доступ к файлу на WORKER1 оттуда.

Окончательное редактирование: проблема решена. Оказалось, что папка была зашифрована! Понятия не имею почему. Вот почему он вышел из архива по какой-то причине.

1 ответ1

5

Добро пожаловать в удивительный новый мир Unix 1989 года!

Эти замечательные люди из TRUSIX только в этом году определили расширение команды ls чтобы визуально указать, когда информация о разрешениях rwxrwxrwx самом деле не вся история. Это расширение является символом + после флагов разрешений. Как видите, ваш вывод ls содержит + символы повсюду. Это означает, что у ваших файлов есть эти новомодные дискреционные списки контроля доступа, которыми так увлечены люди из TRUSIX. Таким образом, ваш доступ к файлам не обязательно тот, который вы можете определить только из девяти флагов разрешений.

Чтобы компенсировать эти ограничения инструментов Unix старого стиля перед лицом ACL нового стиля, специалисты TRUSIX также придумали пару новых команд, getacl и setacl . Первый используется для просмотра этих ACL. Я слышу ропот, что люди могут предпочесть getfacl и setfacl качестве имен. И ходят слухи, что Microsoft и IBM OS/2 версии 3, которые находятся на чертежной доске, могут в конечном итоге получить команды с именами cacls и xcacls для просмотра списков ACL, которые будут даже лучше, чем getfacl в их операционной системе "Новая технология", потому что они не будут представлять их через 3-битную линзу Unix, а будут drctpoxfew какие они есть на самом деле во всех своих стандартных и специфических правах, как в учетной записи, так и в имени машины.

Эта идея должна завоевать популярность, как лесной пожар, в мире Unix, частью которого наверняка станет каждый в 1990-х годах. Весьма вероятно, что через 20 лет девять битов разрешений покажутся устаревшими и устаревшими, списки ACL станут нормой, и даже те дураки, которые все еще смотрят на девять флагов разрешений, будут знать о них. ☺

дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .