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)
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |