Điểm:0

Tôi có thể lưu trữ biến môi trường ở đâu chỉ dành cho các tiện ích hoặc tập lệnh chạy với quyền root?

lá cờ in

Tôi đã thử sử dụng khóa gnome trong máy chủ không đầu, nhưng gặp lỗi, vì vậy tôi quay lại các biến môi trường. https://unix.stackexchange.com/questions/690295/error-secret-tool-cannot-create-an-item-in-a-locked-collection

Tôi đã thử sử dụng .env và .profile, nhưng cái sau không được gọi bởi Bash, nhưng .bash_profile được sử dụng. Đặt biến PATH trong/etc/môi trường so với .profile

Tôi không chắc điều đó sẽ hoạt động đối với các tập lệnh hoặc tiện ích khi tôi không đăng nhập để chạy chúng, mặc dù chúng chạy với quyền riêng tư gốc. Ví dụ: tập lệnh cron.daily gửi báo cáo qua email. Tôi muốn chuyển nó $EMAIL và cũng chuyển biến đó cho các tiện ích khác như apticron, để bảo mật và dễ thay đổi.

Câu trả lời này gợi ý sử dụng một var env trỏ đến tệp cấu hình mà tôi cho rằng tôi có thể đặt nhóm sở hữu và perms thành. Nhưng có một phương pháp thông thường hơn? https://stackoverflow.com/a/26030125/4240654

CHỈNH SỬA: Tôi vừa kiểm tra các tập lệnh sau khi đặt vars trong .bashrc và chúng có vẻ hoạt động. Vẫn đang thử nghiệm các tiện ích như Apticron... hóa ra nó không chấp nhận một biến như EMAIL=$EMAIL trong /etc/apticron/apticron.conf, có thể do nó không chạy trong ENV gốc. Được rồi, thực sự cả hai đều hoạt động sau khi nhận xét EMAIL="gốc" trong /usr/lib/apticron/apticron.conf (điều này không cần xảy ra khi sử dụng email văn bản thuần túy, vì vậy điều đó không nhất quán và chỉ dành cho Apticron). Sử dụng một tập tin và EMAIL=$(mèo .env) vẫn không hoạt động với Apticron.


Phương pháp khả thi:

Hai trong số những yêu cầu đầu tiên yêu cầu mở tệp hoặc cửa hàng và để mở trên máy chủ VM, điều này giống như sử dụng tệp truy cập hạn chế như .env.

.bashrc là perm 644 theo mặc định, vì vậy bất kỳ người dùng nào khác đều có thể đọc được, mặc dù thư mục /root là 700 nên không thể duyệt được? Quan trọng hơn, tất cả người dùng đều có thể truy cập các lọ env thậm chí chỉ được đặt bằng root.. có thể là do tất cả các tiến trình con kế thừa các lọ env gốc. Postfix lưu trữ mật khẩu của nó trong một tệp riêng biệt với 600 quyền do root sở hữu, sau đó băm mật khẩu đó để sử dụng trong bộ nhớ.

tripleee avatar
lá cờ nz
Nó không thực sự rõ ràng những gì bạn muốn đạt được. `/etc/environment` sẽ phù hợp để thiết lập một biến trên toàn hệ thống, vì vậy các tệp khởi động riêng của `root` sẽ phù hợp để thiết lập một cái gì đó cụ thể cho tài khoản `root`. `.profile` cũng sẽ được đọc bởi Bash, _trừ khi_ bạn có `.bash_profile` (theo quy ước, cái này sau đó cũng nên đọc `.profile`, nhưng đó là trách nhiệm của bạn).
alchemy avatar
lá cờ in
@tripleee.. .profile env var của tôi không hoạt động và tôi không có .bash_profile... Tôi đang cố gắng chỉ để var có thể đọc được bằng một tập lệnh hoặc tiện ích chạy gốc, vì vậy /etc/anything tôi nghĩ đã hết.Tôi đang xem xét tệp .myenv tùy chỉnh bị khóa. Tôi nghĩ rằng .bash_profile env vars sẽ được tiếp xúc với bất kỳ quá trình nào đang chạy với quyền root? (sau đó một lần nữa nếu đúng như vậy, dù sao thì đó cũng là một trận thua). Tôi chỉ đang xem xét những gì khác có quyền truy cập vào các lọ env của root. Hy vọng rằng làm rõ câu hỏi lộn xộn của tôi.
tripleee avatar
lá cờ nz
`.bash_profile` được điều hành bởi các phiên bản _interactive_ hoặc _login_ của trình bao _Bash_. Các tập lệnh bạn chạy từ `cron` hoặc dưới dạng dịch vụ hệ thống không phải là trình bao tương tác cũng như đăng nhập, thậm chí thường không phải là tập lệnh Bash.
Điểm:0
lá cờ in

Tôi nghĩ tốt nhất là sử dụng tệp có quyền nghiêm ngặt do root sở hữu. Tôi đã tạo một thư mục có tên .env, thư mục này từng là một tệp để cài đặt các vars env. Vì vậy, tôi có một tập tin ~/.env/EMAIL mà tôi có thể gọi với $(mèo ~/.env/EMAIL) trong các kịch bản và làm việc với Apticron. Nó chỉ có một giá trị trong đó: [email protected].

mkdir ~/.env && echo '[email protected]' >> ~/.env/EMAIL && chmod 600 ~/.env/EMAIL

Hoặc để đặt 600 cho tất cả các tệp mới trong .env/, hãy sử dụng: mkdir ~/.env && sed -i 's/defaults\t/defaults,acl\t/' /etc/fstab && mount -o,remount / && setfacl -dm u::rw,g::x,o: :x .env && chmod -x .env && echo '[email protected]' >> ~/.env/EMAIL

Điểm:0
lá cờ jp

Đây là những gì bạn nên làm:

  1. mở thiết bị đầu cuối của bạn

  2. hành hình sudo -s hoặc su

  3. hành hình cd ~/

  4. hành hình nano .bashrc

  5. sau đó thêm các biến của bạn vào đó, ví dụ:

welcome_message="CHÀO MỪNG BẠN!";
tiếng vang $welcome_message;
  1. đóng và mở lại thiết bị đầu cuối
alchemy avatar
lá cờ in
Cảm ơn Nac.. Tôi biết tôi có thể đặt chúng vào .bash_profile hoặc .bashrc, nhưng tôi đã hy vọng có một nơi an toàn hơn để đặt chúng.
NacreousDawn596 avatar
lá cờ jp
bạn có ý nghĩa gì bởi "nơi an toàn"?
alchemy avatar
lá cờ in
như được mã hóa trong một khóa hoặc ít nhất là tránh xa sự chú ý của các ứng dụng có quyền truy cập vào các env vars. đọc liên kết thứ ba để biết thêm thông tin.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.