如何執行sudo命令時保留當前使用者env變數

2021-08-15 05:54:03 字數 1078 閱讀 6325

在linux環境中我們經常使用sudo命令執行root許可權,但預設情況下sudo執行時,會預設重置環境變數為安全的環境變數,也即,但前設定的變數都會失效。可以通過如下設定來取消這種設定:

1、編輯sudoers檔案

vim /etc/sudoers

注釋掉:

#defaults       env_reset

#defaults mail_badpass

#defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

新增

defaults

!env_reset

新增普通使用者分配許可權

2、新增特殊變數

從 1.6.9 版開始,在 sudo 執行給定的指令碼或命令之前,會縮減一些系統環境變數(比如 libpath)【其實就是一些包含path關鍵字的變數為了安全被縮減了】的設定。這會給在 sudo 下執行的現有命令造成問題。但是,在大多數情況下有辦法解決。方法有很多,下面提供一種方法:

在普通使用者的.profile或.bashrc中新增如下**,下面新增pythonpath和ld_library_path為例:

export ld_library_path=/usr/local

/cuda-8.0/lib64/

export pythonpath=/export/songhongwei

/code/py-faster-rcnn/caffe-fast-rcnn/python

alias sudo='sudo env pythonpath=$pythonpath ld_library_path=$ld_library_path'

如何執行sudo命令時保留當前使用者env變數

在linux環境中我們經常使用sudo命令執行root許可權,但預設情況下sudo執行時,會預設重置環境變數為安全的環境變數,也即,但前設定的變數都會失效。可以通過如下設定來取消這種設定 1 編輯sudoers檔案 vim etc sudoers 注釋掉 defaults env reset def...

PHP 執行命令時sudo許可權的配置

1 先寫乙個php檔案 system whoami 先看自己的apache2的使用者是誰,下面是筆者的截圖,筆者使用apche2的使用者是www data 2 配置超級使用者 sudo visudo自己網路上搜尋大部分答案,只有上半句,無下半句,切記要加上去,參考 讓php以root許可權執行exe...

實現sudo 命令免密碼執行

近期在進行乙個自動化指令碼時,由於需要在非root 使用者下執行,即 sudo a command sh 此時在正常情況下當指令碼執行到sudo時需要手動向控制台輸入密碼,這裡利用環境變數sudo askpass來實現免密碼執行 1 建立乙個密碼檔案,如 pwd temp vim pwd temp ...