Как определить, можете ли вы писать в каталог с SFTP из-за вашей группы? - PullRequest
0 голосов
/ 04 марта 2019

Цитирование Как определить, можете ли вы писать в файл с SFTP из-за вашей группы? ,

Вы можете сделать mode & 00002, чтобы проверить, является ли [каталог]доступен для общественности, и вы можете получить список каталогов и посмотреть, совпадает ли владелец . с пользователем, с которым вы вошли (хотя stat обычно не возвращает longname для серверов SFTPv3, чточто вам нужно, чтобы получить имя пользователя от этого), но как насчет групповых разрешений?

В ответе на этот пост было предложено, чтобы лучший способ проверить возможность записи файла с SFTP былна самом деле открыть этот файл для записи.например.что-то аналогичное fopen('filename.ext', 'w');.

Мой вопрос: каков наилучший способ определения возможности записи в каталог с SFTP?Вы не можете открыть каталог для записи, как вы можете файл.Мое лучшее предположение: просто попытаться загрузить временный файл в рассматриваемом каталоге?

Как, может быть, использовать SSH_FXF_CREAT и SSH_FXF_EXCL?Хотя возможность того, что файл уже существует, усложняет ситуацию.Я предполагаю, что список каталогов мог быть получен, и тогда можно было бы попытаться загрузить имя файла, который не существует , но тот факт, что для этого потребуются разрешения на чтение, не выдерживающие его, также не будет работать, есликаталог был очень большой.

Есть идеи?

1 Ответ

0 голосов
/ 14 марта 2019

Как насчет сценария входа, который будет делать touch в этом каталоге с этим пользователем?

Если будет использоваться sshd, вы можете использовать pam_script (модуль pam auth для выполнения скрипта) просто для того, чтобы просто сделать touch testing_file_creation в вашем каталоге.Вам необходимо добавить в вашу конфигурацию pam sshd.

Если каталог не будет доступен для записи, вы получите сообщение при входе в систему touch: testing_file_creation: Permission denied.Конечно, вы могли бы сделать с этим более причудливые вещи, но это было бы очень просто.

...