Мы можем проверить, доступен ли для записи каталог по uid текущего процесса:
if [ -w $directory ] ; then echo 'Eureka!' ; fi
Но может ли кто-нибудь предложить способ проверить, доступен ли для записи каталог другим UID?
Мой сценарий заключается в том, что я администрирую экземпляр MySQL Server и хочу временно изменить местоположение файла журнала медленных запросов. Я могу сделать это, выполнив команду MySQL SET GLOBAL slow_query_log_file='$new_log_filename'
а затем отключить и включить ведение журнала запросов, чтобы mysqld
начал использовать этот файл.
Но я бы хотел, чтобы мой сценарий проверял, что uid процесса mysqld
имеет разрешения на создание этого нового файла журнала. Поэтому я хотел бы сделать что-то вроде (псевдокод):
$ if [ -w-as-mysql-uid 'basename $new_log_filename' ] ; then echo 'Eureka!' ; fi
Но конечно это мнимый тестовый предикат.
Пояснение: я хотел бы получить решение, которое не зависит от su
потому что я не могу предположить, что пользователь моего сценария имеет привилегию su.