Sự khác biệt giữa / etc / môi trường và / etc / profile là gì?


25

Tôi hiểu rằng cái trước được tải trước cái sau, nhưng sự khác biệt về khái niệm là gì? Có bất kỳ lý do chính đáng nào tôi nên đặt một số biến trong một và không phải trong các biến khác không? Ngoại trừ thực tế /etc/environmentdường như tồn tại để thiết lập môi trường cho tất cả các quy trình được chạy bởi hệ thống, trong khi đó /etc/profilelà để thiết lập môi trường được sử dụng và truyền bá từ vỏ đăng nhập, đúng không?

Ngoài ra, trên một ghi chú bên, chương trình truyền thống đọc /etc/environment? Có liên quan đến POSIX, hay chỉ là một quy ước?

Câu trả lời:


11

Trích xuất từ trợ giúp Ubuntu

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

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

Tôi nghĩ tất cả điều này chỉ là một quy ước nhưng không quá xa so với một tiêu chuẩn (tôi không biết về RedHat như các hệ thống).


Nó hoạt động trên RedHat (kể từ 7.6). '/ Etc / môi trường' trống là máy chủ của tôi và cài đặt VAR=valuecó hiệu lực trong một vỏ (sau khi đăng nhập lại).
DKroot

39

/etc/environmentkhông phải là một phần của POSIX, nó thuộc PAM (Mô-đun xác thực có thể cắm) và chỉ các chương trình được biên dịch với hỗ trợ PAM mới có thể sử dụng nó (chủ yếu là các hệ thống đăng nhập, sau đó khởi động hệ vỏ hoặc môi trường người dùng). Điều này có nghĩa là nó thậm chí không được đọc bởi vỏ của bạn.

Bạn có thể xem các chương trình sử dụng /etc/environmentvới grep -l pam_env /etc/pam.d/*.

Vì vậy, /etc/environmentđược sử dụng để thiết lập các biến cho các chương trình thường không được bắt đầu từ trình bao.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.