$(logname) 的意义是什么?

par*_*oid 5 environment-variables

sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & sudo chmod 440 /etc/sudoers.d/$(logname)
Run Code Online (Sandbox Code Playgroud)

我使用上面的 one-liner 允许当前用户在远程连接的主机上执行 sudo 无需密码。

但究竟是$(logname)什么?

在本地机器上,echo $(logname)什么都不返回,而echo $LOGNAME会,所以它不是环境变量,尽管我从未见过远程机器上的值有任何不同。

另外,是否还有其他类似的$(foo)变量(或它们的名称)?

jes*_*e_b 10

logname(1)是一个命令,它将返回当前用户的登录名。
$( ... )命令替换的语法,即“在此处替换命令的输出”

因此,如果您的用户是foo您正在执行:

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