คำถามติดแท็ก environment-variables

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

8
SSH - ตั้งค่า env vairables โดยทุกการเชื่อมต่อ - godaddy แชร์โฮสต์
ปัญหาของฉันคือฉันต้องตั้งค่าตัวแปร env (เช่น GIT_EXEC_PATH) บนเซิร์ฟเวอร์ ฉันต้องการตัวแปรนั้นทุกการเชื่อมต่อ (ดังนั้นโดยการทุบตีและโดยคำสั่งระยะไกลอย่างใดอย่างหนึ่ง) ฉันจัดการเพื่อตั้งค่าตัวแปรเหล่านั้นด้วยการทุบตีด้วย. bash_profile แต่ฉันมีปัญหากับคำสั่งระยะไกล ฉันพบว่าเป็นไปได้ที่จะเขียนคำสั่งใน ~ / .ssh / authorized_keys ก่อนหน้าคีย์ rsa จริง แต่ฉันไม่ต้องการเขียนที่นั่นเสมอฉันต้องการวิธีแก้ปัญหาอย่างถาวร ... ฉันพบว่า ~ / .ssh ไฟล์ / rc ถูกเรียกใช้งานโดยการเข้าสู่ระบบ ssh ทุกครั้งดังนั้นฉันจึงใส่การประกาศตัวแปร env ไว้ที่นั่น แต่มันไม่ทำงาน ตัวแปรถูกตั้งค่าในไฟล์ rc แต่หลังจากนั้นตัวแปรจะหายไป : S บางทีไฟล์ rc ทำงานใน subshell: S มีวิธีใดที่จะกำหนดตัวแปรเหล่านั้นใน bash และในคำสั่งระยะไกลโดยไม่ต้องทำรหัสซ้ำ? แก้ไข: ฉันแก้ไขคำถามเพราะเซิร์ฟเวอร์เป็นโฮสต์ที่ใช้ร่วมกัน godaddy …

2
จะตั้งค่า $ LD_LIBRARY_PATH ใน Ubuntu ได้อย่างไร
ฉันต้องทำสิ่งนี้: บน linux เราต้องหา dynamic library บางตัวที่ไม่ได้อยู่ในตำแหน่งมาตรฐาน เราต้องตั้งค่า $ LD_LIBRARY_PATH เป็น / path / เป็น / sdk / lib ฉันจะทำสิ่งนั้นใน Ubuntu 10.10 ได้อย่างไร

7
วิธีการเปลี่ยนค่าเริ่มต้น / tmp เป็น / home / user / tmp
มีตัวแปรสภาพแวดล้อมในการตั้งค่าไดเรกทอรีชั่วคราวบนระบบที่ใช้เดเบียนหรือไม่ ฉันมีแอปเพล็ต java ที่ใช้ตัวแปรสภาพแวดล้อมนั้นและมันเริ่มสับสนเมื่อเรียกแอปเพล็ตเดียวกันสองอินสแตนซ์

2
ทำไม“ AcceptEnv *” จึงไม่ปลอดภัย?
ใน/etc/ssh/sshd_configมีตัวเลือกที่เรียกว่าAcceptEnvที่ช่วยให้ลูกค้า ssh ส่งตัวแปรสภาพแวดล้อม ฉันต้องสามารถส่งตัวแปรสภาพแวดล้อมจำนวนมากได้ การเปลี่ยนแปลงเหล่านี้ในทุกการเชื่อมต่อจากไคลเอนต์ดังนั้นการวางไว้ในสคริปต์การเข้าสู่ระบบบนเซิร์ฟเวอร์จะยากขึ้น ฉันอ่านแล้ว"AcceptEnv *"มันไม่ปลอดภัย ฉันต้องการที่จะเข้าใจว่าทำไมก่อนที่จะพยายามรับรายการตัวแปรสภาพแวดล้อมทั้งหมดที่พยายามตั้งค่าไว้ที่นั่น เหตุใดจึงถือว่าไม่ปลอดภัย ฉันขอตัวอย่างได้ไหม

1
ความเสี่ยงด้านความปลอดภัยของ PermitUserEnvironment ใน ssh
ฉันได้อ่านบทความเล็กน้อยเกี่ยวกับการใช้งานPermitUserEnvironmentและไฟล์~/.ssh/environmentเพื่อส่งตัวแปร env ไปยัง ssh shell เอกสารอย่างเป็นทางการของsshdและแหล่งข้อมูลอื่น ๆ ที่เกี่ยวข้องกับความเสี่ยงด้านความปลอดภัยในการทำเช่นนี้ การเปิดใช้งานการประมวลผลสภาพแวดล้อมอาจทำให้ผู้ใช้สามารถข้ามข้อ จำกัด การเข้าถึงในการกำหนดค่าบางอย่างโดยใช้กลไกเช่น LD_PRELOAD ปัญหาความปลอดภัยของการเปิดใช้งานมีแนวโน้มที่PermitUserEnvironmentอะไร ฉันต้องการจัดเก็บรายละเอียดการเชื่อมต่อฐานข้อมูลในตัวแปรสภาพแวดล้อมเหล่านี้แนะนำให้เลือกหรือไม่

4
ตัวแปรสภาพแวดล้อมใน PATH ไม่ได้รับการขยายสำหรับพรอมต์คำสั่งที่ไม่ใช่ของผู้ดูแลระบบหรือไม่
ฉันมี Windows 7 %PATH%เครื่องซึ่งเมื่อพร้อมรับคำสั่งจะดำเนินการโดยผู้ใช้ปกติล้มเหลวที่จะขยายตัวแปรสภาพแวดล้อมใน หากพรอมต์คำสั่งถูกเรียกใช้ในฐานะผู้ดูแลระบบแทน (คลิกขวาเรียกใช้ในฐานะผู้ดูแลระบบ ) จากนั้น%PATH%จะขยายอย่างเหมาะสม โดยเฉพาะ%PATH%สำหรับการcmd.exeทำงานในฐานะผู้ใช้ (แสดงผ่านset path) มีดังนี้: Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\ ... ในขณะที่%PATH%สำหรับcmd.exeการทำงานในฐานะผู้ดูแลจะเป็นดังนี้: Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\ ฉันพยายามเข้าสู่ระบบในฐานะผู้ใช้ใหม่เพื่อสร้างโปรไฟล์ใหม่และปัญหายังคงอยู่ในโปรไฟล์นั้นเช่นกัน HKEY_CURRENT_USER\Environment\PATHไม่มีอยู่และHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Pathตรงกับพา ธ ทั้งระบบที่กำหนดในคุณสมบัติคอมพิวเตอร์ -> ตัวแปรสภาพแวดล้อม ใครบ้างมีความคิดเกี่ยวกับสิ่งนี้อาจเป็นหรือที่ฉันสามารถดู?

2
ตรวจสอบ Apache แบบไดนามิกกับ LDAP โดยยึดตามคำขอสตริงหรือไม่
เป็นไปได้หรือไม่ที่จะใช้ส่วนของ URI คำขอเป็นอินพุตในRequire ldap-groupคำสั่งของ mod_authnz_ldap ฉันพยายามที่จะตรวจสอบการเข้าถึงพวงของไดเรกทอรีโครงการที่แตกต่างกันแบบไดนามิกทั้งหมดภายใต้http://testserver.com/projects/เช่นว่าการเข้าถึงผู้ใช้จะได้รับการตรวจสอบการเป็นสมาชิกใน/projects/abc cn=abc,ou=groups,dc=testโดยหลักการแล้วฉันต้องการทำสิ่งนี้โดยไม่ต้องสร้างคำสั่งตำแหน่งที่ตั้งแยกต่างหากสำหรับแต่ละโครงการเนื่องจากอาจมีหลายร้อยรายการ ฉันได้มากับสิ่งนี้ซึ่งแสดงให้เห็นถึงแนวคิดทั่วไป แต่ไม่ได้ผล (project_name ไม่ได้เรียกคืนเนื้อหาตัวแปรจริง): <Location /projects> SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1 AuthType Basic AuthBasicProvider ldap AuthName "Restricted Resource - SVN (LDAP)" AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid" AuthLDAPGroupAttributeIsDN off AuthLDAPGroupAttribute memberUid Require ldap-group cn=%{project_name},ou=groups,dc=test </Location> ช่วยด้วย?

2
เป็นวิธีที่ดีที่สุดในการตั้งค่าตัวแปรสภาพแวดล้อมใน. bashrc คืออะไร?
เมื่อตั้งค่าตัวแปร.bashrcฉันควรใช้สิ่งนี้หรือไม่? export VAR=value หรือนี่จะเพียงพอหรือไม่ VAR=value ความแตกต่างคืออะไร (ถ้ามี)

3
ฉันจะตั้งค่าสภาพแวดล้อม PATH ทั่วโลกในไฟล์แบตช์ได้อย่างไร
นโยบายกลุ่มในสภาพแวดล้อมของเราเขียนทับตัวแปร PATH ทุกครั้งที่ฉันเข้าสู่ระบบและเมื่อฉันเรียกใช้คอมพิวเตอร์ที่ไม่ได้มาตรฐานจะทำให้เกิดความผิดพลาดอย่างสมบูรณ์ (C: \ Windows เทียบกับ C: \ WINNT ไดเรกทอรีที่ขาดหายไป ฯลฯ ) ขณะนี้ฉันเปลี่ยนมันด้วยตนเองทุกครั้งที่ฉันเข้าสู่ระบบ แต่นั่นเริ่มที่จะน่าเบื่อ ถ้าฉันใช้คำสั่ง SET เพื่อเปลี่ยนตัวแปร PATH ในแบตช์ไฟล์จะมีขอบเขตในตัวเครื่องเท่านั้นดังนั้นการเปลี่ยนแปลงจะใช้กับคำสั่งในไฟล์แบตช์เท่านั้น set PATH=C:\WINNT;C:\WINNT\System32 set PATH ไฟล์ชุดนี้จะส่งออกเส้นทางใหม่ แต่ถ้าฉันทำงานset PATHในบรรทัดคำสั่งหลังจากนั้นมันจะยังคงเป็นเส้นทางเดิม ฉันจะตั้งค่าสภาพแวดล้อม PATH ทั่วโลกในไฟล์แบตช์ได้อย่างไร หรือมีเทคนิคอื่นที่ฉันสามารถใช้ได้?

2
start-stop-daemon สามารถใช้ตัวแปรสภาวะแวดล้อมได้หรือไม่?
ฉันต้อง daemonize แอพ Windows ที่ทำงานใน Wine และสร้าง pid /var/runค่ะ เนื่องจากต้องใช้เซสชัน X11 จึงต้องตรวจสอบให้แน่ใจว่าตัวแปร $ DISPLAY ได้รับการตั้งค่าในสภาพแวดล้อมของผู้ใช้ที่กำลังทำงานอยู่ สมมติว่าฉันมีเซสชั่น X11 ทำงานอยู่โดยมีจอแสดงผลที่กำหนดนี่คือสิ่งที่บรรทัด start-stop-daemon ดูเหมือนใน/etc/init.dสคริปต์ของฉัน: start-stop-daemon --start --pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 --exec /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe น่าเสียดายที่ start-stop-daemon เวอร์ชันของฉันใน Ubuntu 8.04 ไม่มี-eตัวเลือกในการตั้งค่าตัวแปรสภาพแวดล้อม ฉันรวบรวมว่าคุณสามารถตั้งค่า $ DISPLAY ก่อนคำสั่งดังนี้: VAR1="Value" start-stop-daemon ... แต่มันไม่ทำงาน เนื่องจากฉันใช้-c {user}ตัวเลือกในการเรียกใช้ในฐานะผู้ใช้เฉพาะฉันเดาว่ามีสวิตช์ของสภาพแวดล้อมและ …

4
ตัวแปรสภาวะแวดล้อมใน / etc / environment พร้อมเครื่องหมาย pound (hash) ในค่า
ใน Ubuntu 12.04 ฉันมีตัวแปรสภาพแวดล้อมที่กำหนดไว้/etc/environmentดังนี้: FOO="value_before#value_after" เมื่อฉันเข้าสู่เซิร์ฟเวอร์เพื่อตรวจสอบค่าฉันจะได้รับสิ่งนี้: $ env | grep FOO FOO=value_before ฉันคาดเดาว่ามัน#เป็นการแสดงความคิดเห็นและลอกออกอย่างไรก็ตามงานนี้: $ . /etc/environment $ export FOO $ env | grep FOO FOO=value_before#value_after ฉันพยายามหลบหนี#แบบนี้: FOO="value_before\#value_after" แต่มันใช้งานไม่ได้ แต่ฉันเพิ่งได้รับสิ่งนี้: FOO=value_before\ ความคิดเห็นใด ๆ เกี่ยวกับวิธีทำให้แฮชได้รับการปฏิบัติเหมือนเป็นส่วนหนึ่งของมูลค่า ความช่วยเหลือใด ๆ จะดีมาก ค่าที่ฉันได้ลองใน/etc/environmentไฟล์: FOO='value_before#value_after' FOO="value_before#value_after" FOO='"value_before#value_after"' FOO="value_before\#value_after" FOO='value_before\#value_after' และชุดค่าผสมต่าง ๆ ข้างต้น สิ่งเหล่านี้จำนวนมากจะทำงานเมื่อคุณเพิ่งตั้งค่าเหล่านั้นในเปลือก แต่ดูเหมือนว่าพวกเขาจะไม่ทำงานใน/etc/environmentไฟล์

4
Apache 2: SetEnvIf“ ช่วง IP”
ในการกำหนดค่า Apache ของฉันฉันต้องการตั้งค่าตัวแปรสภาพแวดล้อมถ้าฉันเห็นว่าผู้เข้าชมมาจากช่วง IP ที่เฉพาะเจาะจง ขณะนี้ฉันทำเช่นนี้: SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip สิ่งที่ฉันต้องการคือสิ่งนี้: SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip ... เพราะฉันคิดว่าการแปลงที่อยู่ IP เป็นสตริงจากนั้นทำนิพจน์ทั่วไปคือการสิ้นเปลืองทรัพยากรทั้งหมด ฉันสามารถทำ Deny From 194.8.74.0/23 ... แต่จากนั้นฉันไม่ได้รับตัวแปรที่ฉันสามารถตรวจสอบได้ในหน้าข้อผิดพลาด 403 ของฉัน - เพื่อค้นหาสาเหตุที่การเข้าถึงถูกปฏิเสธ ข้อเสนอแนะใด ๆ ที่ฉันอาจพลาด มี Apache2 MOD ที่สามารถตั้งค่าตัวแปรสภาพแวดล้อมตาม "ช่วงที่อยู่ IP" หรือไม่?

1
คุณจะตั้งค่า ENV เฉพาะเซิร์ฟเวอร์ใน Nginx ได้อย่างไร
ฉันกำลังเริ่มโครงการที่ใช้ตัวแปรสภาพแวดล้อมเพื่อตั้งค่าการเชื่อมต่อฐานข้อมูลและอีกสองอย่าง (พวกเขาไม่ต้องการใช้ไฟล์การกำหนดค่าเนื่องจากคนไม่สนใจและเขียนทับพวกเขา) อย่างไรก็ตามผมกำลังใช้ Nginx และในขณะที่จะสนับสนุน env - มันดูเหมือนจะไม่สนับสนุนมันได้ดีพอ คุณไม่สามารถตั้งค่า env บนพื้นฐานบล็อกต่อเซิร์ฟเวอร์ กล่าวอีกนัยหนึ่งสิ่งนี้จะไม่ทำงาน: server { listen 80; server_name domain; env FOO = "bar"; } คุณต้องทำสิ่งนี้: env FOO = "bar"; http { server { listen 80; server_name domain; } } ซึ่งหมายความว่าฉันไม่สามารถมีค่าเฉพาะ vhost ดังนั้นฉันต้องสร้างการกำหนดค่า vhost ทั้งหมดสำหรับแต่ละไซต์และเปิดใช้งานเฉพาะสิ่งที่ฉันต้องการในขณะนั้นเพื่อให้การตั้งค่าถูกต้อง มีวิธีใดบ้างในการแก้ไขปัญหานี้?

3
ตัวแปรสภาพแวดล้อม PYTHONPATH …ฉันจะสร้างทุกไดเรกทอรีย่อยได้อย่างไร
ฉันกำลังทำสิ่งนี้อยู่: PYTHONPATH=/home/$USER:/home/$USER/respository:/home/$USER/repository/python-stuff ฉันจะทำให้ PYTHONPATH สามารถรวมทุกสิ่งในไดเรกทอรีย่อยได้อย่างไร PYTHONPATH = /home/$USER/....and-all-subdirectories
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.