我们可以通过当前进程的uid测试一个目录是否可写:
if [ -w $directory ] ; then echo 'Eureka!' ; fi
但有谁能建议一种方法来测试某个目录是否可被其他UID写入?
我的情况是我正在管理一个MySQL服务器实例,我想暂时更改慢查询日志文件的位置。我可以通过执行 MySQL 命令 SET GLOBAL slow_query_log_file='$new_log_filename'
以及禁用和启用查询日志记录使 mysqld
开始使用该文件来完成此操作。
但我希望我的脚本检查 mysqld
进程的 UID 是否具有创建新日志文件的权限。因此,我想做类似于以下伪代码的事情:
$ if [ -w-as-mysql-uid `basename $new_log_filename` ] ; then echo 'Eureka!' ; fi
当然,这只是一个虚构的测试前提。
澄清:我希望找到一种不依赖su
的解决方案,因为我不能假定我的脚本用户具有su权限。