Làm cách nào để thiết lập PATH cho tất cả người dùng trong Debian?


25

Tôi có một máy chủ Debian Lenny và tôi muốn www-datangười dùng có /usr/local/zend/bintrong PATH của nó, để nó có thể thực thi một tập lệnh trong cron như www-data.

Làm cách nào để thêm /usr/local/zend/binPATH vào, để www-datacó thể thực thi các tệp trong /usr/local/zend/bin?

Câu trả lời:


40

Nơi đầu tiên đặt PATH là /etc/login.defs. Có một thiết lập cho root và một thiết lập cho những người khác.

Một nơi khác mà bạn có thể xác định các biến môi trường là /etc/environment. Các cài đặt này sẽ áp dụng cho tất cả mọi người (bạn không thể viết mã shell tùy ý ở đó).

Một nơi thứ ba nơi bạn có thể xác định các biến môi trường là /etc/profile. Ở đó bạn có thể viết mã shell tùy ý. Nếu bạn muốn có một cài đặt dành riêng cho người dùng, có tệp tương ứng cho mỗi người dùng ~www-data/.profile. Nhưng điều này sẽ chỉ áp dụng cho đăng nhập tương tác giao diện điều khiển; đặc biệt nó sẽ không áp dụng cho các công việc định kỳ trừ khi chúng có nguồn rõ ràng /etc/profile.

Nếu bạn chỉ cần PATHcài đặt đó trong crontab của người dùng, bạn có thể viết nó ở đầu crontab. Lưu ý rằng bạn cần danh sách đầy đủ ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), bạn không thể sử dụng thay thế biến ( PATH=$PATH:/usr/local/zend/binsẽ không hoạt động ở đó).


---- làm thế nào để bạn tải lại ví dụ /etc/login.defs?
MrCalvin

@MrCalvin Bằng cách đăng nhập.
Gilles 'SO- ngừng trở nên xấu xa'

1
Có bất kỳ lý do /etc/login.defssẽ được bỏ qua? Tôi đã cập nhật ENV_PATHvà đang lặp lại $ PATH khi .bashrc được tải. Ở đâu đó ở giữa, nó sẽ bị thay đổi hoặc không được cập nhật vì nó hiển thị giá trị cũ. Tôi đã khởi động lại máy tính - vì vậy không phải vậy.
Annan

@Annan Cơ hội là nó đang được thay đổi ở đâu đó. Xin lưu ý rằng câu trả lời của tôi đã được viết vào năm 2010, trước khi systemd; nếu hệ thống của bạn sử dụng systemd, nó có thể có cách riêng để xác định PATHthêm hoặc thay thế các cách khác.
Gilles 'SO- ngừng trở nên xấu xa'

8

Để đặt đường dẫn cho tất cả người dùng ngoại trừ root, chỉnh sửa /etc/profilehoặc /etc/enviroment. Đối với root hoặc một người dùng cá nhân , tương ứng chỉnh sửa .bashrchoặc .bash_profiletrong thư mục nhà của họ. Thêm PATH=$PATH:/new/location/.


1

Để chỉ cần đặt var cho tất cả người dùng trong khi không gây gánh nặng cho bạn profile, bạn có thể thêm tập lệnh nhỏ của riêng mình vào /etc/profile.dthư mục như thế:

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

Sau đó đăng nhập lại.


1

nano / etc / hồ sơ

Thêm những dòng này vào cuối tập tin:

xuất JAVA_HOME = / opt / jdk-12.0.1

xuất MAVEN_HOME = / opt / apache-maven-3.6.1

xuất M2_HOME = / opt / apache-maven-3.6.1

xuất M2 = / opt / apache-maven-3.6.1 / bin

xuất PATH = $ JAVA_HOME / bin: $ M2: $ PATH

Lưu các tập tin. Khởi động lại hoặc sử dụng lệnh dưới đây:

nguồn / etc / hồ sơ

Kiểm tra cài đặt của bạn:

tiếng vang $ JAVA_HOME

chuyển đổi javac

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.