Я хочу написать скрипт на PHP, который выполняет команду монтирования самбы временно
sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,uid=testuser,gid=testgroup
Как вы знаете, он будет запрашивать пароль WINDOWS не Linux.
Но я хочу запустить сценарий без вывода сообщений, используя shell_exec()
,
Как я могу передать пароль автоматически без запроса?
Вы можете добавить пользователя, пароль и домен в вашу команду монтирования. Например, просто указав usernam и пароль, команда yor будет выглядеть так:
sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,password=TestUserPassword,uid=testuser,gid=testgroup
Лучшим / более безопасным вариантом является использование файла учетных данных, но вы теряете возможность передавать имя пользователя пароля из php в команду mount. В любом случае, вот пример файла учетных данных:
1 Создайте файл учетных данных:
sudo vim /etc/php.cred
2 При необходимости добавьте имя пользователя, пароль и домен. Убедитесь, что они находятся на своей линии, и между каждой из сторон знака равенства не должно быть пробелов:
username=TestUserWindow
password=TestUserPassword
domain=TestDomain
3 Ссылка на вновь созданный файл учетных данных в вашей команде монтирования:
sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o credentials=/etc/php.cred,uid=testuser,gid=testgroup
Рекомендации:
крепление страница руководства cifs
Есть также много других ответов на этот вопрос. Я бы порекомендовал спроситьпример монтирования cifs с использованием файла учетных данных» или же «пример монтирования cifs имя пользователя парольMsgstr «По сути, отбросьте часть» php «вашего вопроса, когда вы выполняете команду оболочки, а не в php.
Других решений пока нет …