在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 ...