$ ls -l
total 10
drwxrwx--x 22 www-data www-data 79 Mar 1 17:53 v1
drwxrwx--x 22 www-data www-data 79 Mar 1 17:53 v2
lrwxrwxrwx 1 root root 1 Mar 1 17:59 symlink -> v2
我参加
/home/user/symlink
,如果我竞选pwd -L
,我会得到/home/user/symlink
如果我跑
sudo pwd -L
,我会得到/home/user/v2
/home/user/symlink
当我使用 sudo 运行时如何还能得到结果?我有一个脚本,可以在 v1 中将 cron 条目添加到我的其他脚本中
并且需要 sudo 添加一些 cron 条目
cron 条目不能指向 v1 或 v2,因为当 v3 出现时,它们将会中断
更新:我之前的问题有一个拼写错误,现在已经修复。
请注意,当您使用时,
sudo pwd -L
您将获得独立的可执行文件,/usr/bin/pwd
而当您pwd -L
在交互式 shell 中输入时,您几乎肯定会获得内置的 shellpwd
。然而,它们基本上做同样的事情:逐字打印环境变量的值
PWD
(即不解析符号链接)。因此,这里真正发生的是
sudo
配置为重置环境 - 其中包括取消设置值PWD
:如果您确实需要这样做,您可以保留以下 PWD 变量的值
sudo
:如果您需要在没有用户交互的情况下执行此操作,您可以考虑按如下方式覆盖命令
env_keep
的默认值:pwd
创建一个覆盖文件,例如
添加以下内容
保存并退出
例如参见
/etc/sudoers
--env_keep
仅为一个命令指定?