Linux(Mint / Ubuntu)では、ユーザーごとに個別にcronjobを作成できます。 cronjobを実行しているユーザーの名前を見つける方法はありますか? cron'dを実行するシェルスクリプトからcronjob所有者のユーザー名を取得したいと思います。
ベストアンサー1
スクリプト所有者のインポート
stat
最新のGNU互換システムでは、stat
スクリプト所有者のユーザーIDは次のとおりです。
stat -c %u "$0"
スクリプト所有者のユーザー名は次のとおりです。
stat -c %U "$0"
通常、Linuxでは。stat -c %U file
を返しますfile
。$0
これは通常、現在のスクリプトファイルの名前が含まれているためです。
スクリプトを実行しているユーザーの有効なユーザーIDを取得します。
スクリプトを実行しているユーザーの有効なユーザーID番号を取得するには、次のようにしますid -u
。
$ id -u
1001
変数に保存
$ uid=$(id -u)
$ echo "$uid"
1001
スクリプトが次の環境で実行されると、bash
有効なユーザーIDはシェル変数に保存されますEUID
。
$ echo $EUID
1001
多くのシステムでは、cronjobはデフォルトではdash
サポートされていませんEUID
。したがって、id -u
上記のように使用する方が安全で安定しています。
-n
-u
ユーザー名を取得するには、このオプションを使用することに加えて、次のオプションを使用します。
$ id -un
john1024