현재 사용자의 집에 하위 디렉터리를 생성하기 위해 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"