Windows Редакция: Windows Сервер 2016 Standard
XAMPP Версия 7.4.1
PHP Версия 7.4.1
Использование LDAP / TLS для входа в систему пользователя
Цель: Я строю локальный int anet, чтобы позволить сотрудникам компании получать доступ к общим файлам через веб-портал intr anet. У меня уже есть системные ссылки, чтобы пользователь мог открыть эти общие файлы. Теперь я пытаюсь убедиться, что обычные пользователи не могут получить доступ к файлам, которые должны быть зарезервированы для выставления счетов, работы с персоналом и т. Д. c.
Проблема: я не могу напрямую сравнить группу безопасности пользователя (из LDAP) в PHP Ответ разрешения (от fileperms($path)
), чтобы увидеть, совпадают ли они, перед открытием папки.
Через LDAP я могу получить список групп безопасности пользователя, когда они регистрируются вход, который выглядит следующим образом:
Безопасность пользователя:
- Группа A (обычный доступ)
- Группа B (биллинговый доступ)
- Группа C (доступ к бухгалтерии)
- Et c.
Однако, когда я пытаюсь получить доступ к указанным c разрешениям папки, я могу получить только разрешения для папки согласно к уровню доступа PHP, а не пользователю.
Например: fileperms ($ path) =
- Владелец: rwx
- Группа: rwx
- World: rwx
Я мог бы также извлечь это в восьмеричной форме (например, "0777", et c), но я бы все еще есть та же проблема. Они не «совпадают».
Теперь компания этого клиента довольно маленькая, поэтому я мог бы просто go и кодировать профиль доступа для каждого пользователя, к которому относится intr anet, когда они пытаются для доступа к общим дискам, но следующая компания намного больше, поэтому я ищу способ автоматизировать этот процесс проверки привилегий.
Я подумал об использовании расширения PHP POSIX для улучшения взаимодействия с файлами, но, насколько я понимаю, он не будет работать в системе Windows.
Я рассмотрел возможность запуска "запустить как" из командной строки (через PHP shell_ex ($ path) с именем пользователя и паролем пользователя, но я не хочу запускать каждый файл в папке, просто чтобы посмотреть, есть ли у пользователя доступ!
Есть ли строка cmd, эквивалентная PHP 'is_writable () ", но с учетом учетных данных пользователя?
Что-то вроде:" is_writable newFolder' username '' password '"
Что даст логический ответ" true "если доступно и" false "если нет?