Tôi đang gặp phải lỗi sau khi cố gắng cho phép một số biến môi trường chuyển qua môi trường mới khi chạy sudo
:
sudo: sorry, you are not allowed to preserve the environment
Một số thông tin có thể hữu ích để gỡ lỗi:
[deploy@worker1 ~]$ sudo -l
Matching Defaults entries for deploy on this host:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, env_keep+="GIT_WORK_TREE GIT_DIR", !requiretty
User deploy may run the following commands on this host:
(ALL) NOPASSWD: /usr/bin/git, (ALL) /etc/init.d/httpd*, (ALL) /sbin/service, (ALL) /usr/bin/make, (ALL) /bin/echo
Ví dụ chạy của tôi:
[deploy@worker1 ~]$ export GIT_DIR="/home/ashinn/testing"
[deploy@worker1 ~]$ sudo -E sh -c 'echo "$GIT_DIR"'
sudo: sorry, you are not allowed to preserve the environment
Tập tin sudoers.d của tôi cho cấu hình cụ thể này:
Defaults:deploy env_keep += "GIT_WORK_TREE GIT_DIR", !requiretty
deploy ALL=(ALL) NOPASSWD: /usr/bin/git, /etc/init.d/httpd*, /sbin/service, /usr/bin/make, /bin/echo
Tôi cũng đã thử thêm !env_reset
vào Mặc định và nó vẫn không thành công với cùng một lỗi. Tôi cảm thấy mình có thể đang thiếu thứ gì đó rõ ràng và cần một đôi mắt thứ hai. Tôi đang thiếu gì ở đây?
sudo
(option(s))
echo $GIT_DIR
sudo
$GIT_DIR
sudo
sudo printenv GIT_DIR
sudo env | grep GIT_DIR
sudo sh -c 'echo "$GIT_DIR"'