現在のユーザーの自宅にサブディレクトリを作成するためにusername変数とuser_home変数を使用し、新しいサブディレクトリの所有権を現在のユーザーに変更するには、次のコマンドで具体的にどのような変更が必要ですか?
現在、GitHub ubuntu-lastestランナーで使用されているコマンドは脆弱です。次のコマンドはユーザーの明示的な名前を使用するためです。
mkdir /home/runner/mysubdirectory/
sudo chown -R runner:runner /home/runner/mysubdirectory/
/home/runner
OPは、変数宣言を現在のユーザーのホームページに置き換える方法と、それをrunner:runner
現在のユーザー名の変数表現に置き換える方法を尋ねました。
ベストアンサー1
次のことができます。
username=runner
sudo -Hu "$username" sh -c 'mkdir ~/mysubdirectory'
これはmkdir
ターゲットユーザー(およびそのユーザーのデフォルトのgid)としてシェルで実行されます。ここではそのユーザー$HOME
のホームディレクトリに設定されているため、そのユーザーに展開されます-H
。~
または、getent
次を呼び出してユーザー情報を取得できます。
IFS=: read -r name x uid gid gecos home shell < <(
getent -- passwd "$username") &&
sudo install -o "$uid" -g "$gid" -d "$home/mysubdirectory"