У меня есть служба веб-сервера Apache, работающая на компьютере A.
Он обслуживает некоторые файлы с машины B, имея
Псевдоним / foo \ machineB \ someshare
MachineB \ someshare доступен для чтения «всем». Apache работает как LocalService.
Когда я загружаю машину, она не может обслуживать файлы из / foo, но если я захожу на машину и просто касаюсь \ machineB \ someshare, похоже, что доступ предоставлен, и он правильно обслуживает файлы из / foo.
Как мне это автоматизировать, чтобы мне не нужно было входить в систему и касаться общей сетевой папки?
Если я правильно помню, начиная с Windows Vista, группа безопасности «Все» не включает «анонимные» логины. При доступе к удаленному общему ресурсу с помощью службы, работающей как "LocalService", он обращается с помощью пользователя NULL или анонимного пользователя, поэтому он не сможет получить доступ к удаленному общему ресурсу.
В соответствии с рекомендациями SpacemanSpiff измените apache для запуска от имени пользователя домена или попробуйте использовать «NetworkService» вместо «LocalService».
одна возможность - заставить веб-сервер смонтировать удаленный общий ресурс через cifs в fstab? Вам нужно будет предоставить учетные данные, но я считаю, что они могут быть гостевыми. В качестве альтернативы сценарий запуска, который подключает и отключает, может иметь тот же эффект.
Попробуйте запустить Apache как учетную запись службы пользователя домена с необходимыми привилегиями, конечно, и посмотрите, к чему это приведет.