Score:0

ฉันจะจัดเก็บตัวแปรสภาพแวดล้อมเฉพาะสำหรับยูทิลิตี้หรือสคริปต์ที่ทำงานในฐานะรูทได้ที่ไหน

ธง in

ฉันได้ลองใช้ gnome-keyring ในเซิร์ฟเวอร์ที่ไม่มีส่วนหัวแล้ว แต่มีข้อผิดพลาด ฉันจึงกลับไปใช้ตัวแปรสภาพแวดล้อม https://unix.stackexchange.com/questions/690295/error-secret-tool-cannot-create-an-item-in-a-locked-collection

ฉันลองใช้ .env และ .profile แต่ Bash ไม่ได้เรียกอันหลัง แต่ใช้ .bash_profile การตั้งค่าตัวแปร PATH ใน /etc/environment กับ .profile

ฉันไม่แน่ใจว่าจะใช้ได้กับสคริปต์หรือยูทิลิตีเมื่อฉันไม่ได้เข้าสู่ระบบเพื่อรัน แม้ว่ามันจะรันด้วยรูท privs ก็ตาม ตัวอย่างเช่น สคริปต์ cron.daily ที่ส่งอีเมลรายงาน ฉันต้องการส่ง $EMAIL และส่งผ่านตัวแปรยูทิลิตี้อื่นๆ เช่น apticron เพื่อความปลอดภัยและง่ายต่อการเปลี่ยนแปลง

คำตอบนี้แนะนำให้ใช้ env var ชี้ไปที่ไฟล์ปรับแต่ง ซึ่งฉันคิดว่าฉันสามารถตั้งค่ากลุ่มความเป็นเจ้าของและอนุญาตได้ แต่มีวิธีธรรมดากว่านี้ไหม? https://stackoverflow.com/a/26030125/4240654

แก้ไข: ฉันเพิ่งทดสอบสคริปต์หลังจากตั้งค่า vars เป็น .bashrc และดูเหมือนว่าจะใช้งานได้ ยังคงทดสอบยูทิลิตี้เช่น Apticron ... ซึ่งปรากฎว่าไม่ยอมรับตัวแปรเช่น EMAIL=$EMAIL ใน /etc/apticron/apticron.conf อาจเป็นเพราะไม่ได้ทำงานใน root ENV ตกลงจริง ๆ แล้วทั้งคู่ใช้งานได้ทันทีหลังจากแสดงความคิดเห็น EMAIL = "ราก" ใน /usr/lib/apticron/apticron.conf (ซึ่งไม่จำเป็นต้องเกิดขึ้นกับการใช้อีเมลข้อความธรรมดา ดังนั้นจึงไม่สอดคล้องกัน และสำหรับ Apticron เท่านั้น) การใช้ไฟล์และ EMAIL=$(แมว .env) ยังไม่ทำงานกับ Apticron


การแก้ปัญหาที่เป็นไปได้:

  • ใช้ไฟล์ GPG:
  • โดยใช้ ผ่าน: https://www.passwordstore.org/
  • ใช้บริการลับแบบชำระเงิน (ต้องการหลีกเลี่ยง)

สองรายการแรกจำเป็นต้องเปิดไฟล์หรือร้านค้า และเปิดทิ้งไว้บนเซิร์ฟเวอร์ VM ซึ่งจะเหมือนกับการใช้ไฟล์ที่จำกัดการเข้าถึง เช่น .env

.bashrc นั้นอนุญาต 644 โดยค่าเริ่มต้นดังนั้นผู้ใช้รายอื่นจึงอ่านได้แม้ว่า /root dir จะเป็น 700 ดังนั้นจึงไม่สามารถข้ามผ่านได้ ที่สำคัญกว่านั้น env vars แม้ตั้งค่าโดยรูทก็สามารถเข้าถึงได้โดยผู้ใช้ทุกคน .. อาจเป็นเพราะกระบวนการลูกทั้งหมดสืบทอด parent env vars Postfix เก็บรหัสผ่านไว้ในไฟล์แยกต่างหากโดยมี 600 perms ที่เป็นของ root จากนั้นแฮชเพื่อใช้ในหน่วยความจำ

tripleee avatar
nz flag
ยังไม่ชัดเจนว่าคุณต้องการทำอะไรให้สำเร็จ `/etc/environment` จะเหมาะสมสำหรับการตั้งค่าตัวแปรทั้งระบบ ในขณะที่ไฟล์เริ่มต้นส่วนตัวของ `root' จะเหมาะสำหรับการตั้งค่าบางอย่างสำหรับบัญชี `root` โดยเฉพาะ `.profile` จะถูกอ่านโดย Bash เช่นกัน _unless_ คุณมี `.bash_profile` (ซึ่งตามอัตภาพก็ควรอ่าน `.profile` ด้วยเช่นกัน แต่นั่นเป็นความรับผิดชอบของคุณ)
alchemy avatar
in flag
@tripleee.. .profile env var ของฉันไม่ทำงาน และฉันไม่มี .bash_profile... ฉันพยายามให้ var สามารถอ่านได้โดยรูทรันสคริปต์หรือยูทิลิตี ดังนั้น /etc/anything ที่ฉันคิดว่าหมดฉันกำลังดูไฟล์ .myenv แบบกำหนดเองที่ถูกล็อคไว้ ฉันคิดว่า .bash_profile env vars จะถูกเปิดเผยต่อกระบวนการใด ๆ ที่ทำงานในฐานะรูท (ถ้าเป็นเช่นนั้นอีกครั้ง ก็เป็นการต่อสู้ที่แพ้อยู่ดี) ฉันแค่ดูว่ามีอะไรอีกบ้างที่เข้าถึง env vars ของ root หวังว่าจะอธิบายความสับสนของคำถามของฉัน
tripleee avatar
nz flag
`.bash_profile` ทำงานโดยอินสแตนซ์ _interactive_ หรือ _login_ ของเชลล์ _Bash_ สคริปต์ที่คุณเรียกใช้จาก `cron` หรือเป็นบริการระบบไม่ใช่เชลล์แบบโต้ตอบหรือล็อกอิน หรือบ่อยครั้งแม้แต่สคริปต์ Bash เลย
Score:0
ธง jp

นี่คือสิ่งที่คุณควรทำ:

  1. เปิดเทอร์มินัลของคุณ

  2. ดำเนินการ sudo -s หรือ สุ

  3. ดำเนินการ ซีดี ~/

  4. ดำเนินการ นาโน .bashrc

  5. จากนั้นเพิ่มตัวแปรของคุณที่นั่น ตัวอย่างเช่น:

welcome_message="ยินดีต้อนรับ!";
เสียงสะท้อน $welcome_message;
  1. ปิดและเปิดเครื่องใหม่
alchemy avatar
in flag
ขอบคุณ Nac.. ฉันรู้ว่าฉันใส่มันใน .bash_profile หรือ .bashrc ได้ แต่ฉันหวังว่าจะมีที่ที่ปลอดภัยกว่านี้ที่จะใส่ไว้
NacreousDawn596 avatar
jp flag
คุณหมายถึงอะไรโดย "สถานที่ปลอดภัย"?
alchemy avatar
in flag
เช่น เข้ารหัสในพวงกุญแจ หรืออย่างน้อยก็ให้พ้นจากสายตาของแอพที่เข้าถึง env vars อ่านลิงค์ที่สามสำหรับข้อมูลเพิ่มเติม
Score:0
ธง in

ฉันคิดว่าวิธีที่ดีที่สุดคือใช้ไฟล์ที่มีการอนุญาตที่เข้มงวดซึ่งรูทเป็นเจ้าของ ฉันสร้างไดเร็กทอรีชื่อ .env ซึ่งเคยเป็นไฟล์สำหรับตั้งค่า env vars ดังนั้นฉันจึงมีไฟล์ ~/.env/EMAIL ที่ฉันสามารถโทรด้วย $(แมว ~/.env/EMAIL) ในสคริปต์และทำงานร่วมกับ Apticron มันมีค่าเดียวในนั้น: [email protected]

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

หรือตั้งค่า 600 สำหรับไฟล์ใหม่ทั้งหมดใน .env/ use: 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

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา