ディレクトリが現在のプロセスのuidによって書き込み可能かどうかをテストできます。
if [ -w $directory ] ; then echo 'Eureka!' ; fi
しかし、ディレクトリが他のuidによって書き込み可能かどうかをテストする方法を誰かが提案できますか?
私のシナリオは、MySQL Serverインスタンスを管理していて、slow-queryログファイルの場所を一時的に変更したいというものです。これを行うには、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特権を持っているとは想定できないため、 依存しないソリューションが必要です。