我们可以通过当前进程的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 特权。