$(logname)의 요점은 무엇입니까?

$(logname)의 요점은 무엇입니까?
sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & sudo chmod 440 /etc/sudoers.d/$(logname)

위의 코드 줄을 사용하여 현재 사용자가 원격으로 연결된 호스트에서 비밀번호 없이 sudo를 실행할 수 있도록 했습니다.

하지만 정확히 무엇입니까 $(logname)?

로컬 컴퓨터에서는 echo $(logname)아무것도 반환되지 않으므로 echo $LOGNAME환경 변수가 아니지만 원격 컴퓨터에서는 값이 다른 것을 본 적이 없습니다.

또한, 다른 유사한 $(foo)변수(또는 해당 이름)가 있습니까?

답변1

로그 이름(1)현재 사용자의 로그인 이름을 반환하는 명령입니다.
$( ... )구문은 다음과 같습니다명령 대체이것은 "여기서 명령의 출력을 바꾸십시오"라고 말합니다.

따라서 사용자가 foo다음을 실행하는 경우:

sudo sh -c 'echo "foo ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/foo' & sudo chmod 440 /etc/sudoers.d/foo

관련 정보