Cập nhật:
Việc đặt các biến môi trường toàn cầu vẫn nên được thực hiện /etc/environment
, nhưng như bạn đã chỉ ra, việc sử dụng sudo -s
có tác dụng của các biến này là "biến mất".
Lý do cho điều đó là sudo
chính sách đặt lại Môi trường và thiết lập đường dẫn an toàn . Nó được bật theo mặc định:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Do đó, bất cứ điều gì được đặt trong /etc/environment
đường dẫn đều bị ghi đè sudo
.
Trang hướng dẫn cho sudoers
các tiểu bang:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. Any variables in the caller's environment
that match the env_keep and env_check lists are then
added. The default contents of the env_keep and
env_check lists are displayed when sudo is run by root
with the -V option. If the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
Như một giải pháp thay thế, bạn có thể sử dụng sudo su
nó sẽ cung cấp một trình bao với các đặc quyền gốc nhưng chứa đúng PATH.
Câu trả lời gốc
Bạn nên đặt nó trong /etc/environment
.
Hãy thử sudo YOUR_TEXT_EDITOR /etc/environment
(đảm bảo tạo bản sao lưu trước).
Để biết thêm thông tin: Biến môi trường
Biến môi trường toàn hệ thống
Không nên đặt các cài đặt biến môi trường ảnh hưởng đến toàn bộ hệ thống (chứ không phải chỉ là một người dùng cụ thể) trong bất kỳ tập lệnh cấp hệ thống nào được thực thi khi hệ thống hoặc phiên máy tính để bàn được tải, nhưng vào
/etc/environment
- Tập tin này đặc biệt dành cho các cài đặt biến môi trường toàn hệ thống. Nó không phải là một tập lệnh, mà là bao gồm các biểu thức gán, mỗi biểu thức. Cụ thể, tệp này lưu trữ cài đặt đường dẫn và miền địa phương trên toàn hệ thống.
Không được khuyến khích:
/etc/profile
- Tệp này được thực thi bất cứ khi nào một vỏ đăng nhập bash được nhập (ví dụ: khi đăng nhập từ bàn điều khiển hoặc qua ssh), cũng như bởi Trình quản lý hiển thị khi tải phiên máy tính để bàn. Đây có lẽ là tệp bạn sẽ được nhắc đến khi hỏi các quản trị viên hệ thống UNIX kỳ cựu về các biến môi trường. Tuy nhiên, trong Ubuntu, tệp này thực hiện ít hơn sau đó gọi tệp /etc/bash.bashrc.
/etc/bash.bashrc
- Đây là phiên bản toàn hệ thống của tệp ~ / .bashrc. Ubuntu được cấu hình theo mặc định để thực thi tệp này bất cứ khi nào người dùng xâm nhập vào hệ vỏ hoặc môi trường máy tính để bàn.