Score:0

ตัวแปรสภาพแวดล้อมที่ไม่ใช่รูทสามารถแก้ไขได้หรือไม่

ธง pk

ผู้ที่ไม่ใช่รูท (ไม่มีสิทธิ์ sudo) สามารถเรียกใช้คำสั่งต่อไปนี้:

ส่งออก PATH=/tml:$PATH

ถ้าเป็นเช่นนั้นมันทำงานอย่างไร?

ฉันคิด ตัวแปรสภาพแวดล้อม เป็นแบบอ่านอย่างเดียวสำหรับผู้ใช้ที่ไม่ใช่รูท ในขณะที่ ตัวแปรเชลล์ สามารถปรับเปลี่ยนได้อย่างอิสระ

muru avatar
us flag
"ฉันคิดว่าตัวแปรสภาพแวดล้อมเป็นแบบอ่านอย่างเดียว" ทำไมคุณถึงคิดอย่างนั้น
Trigosin Darom avatar
pk flag
@muru สำหรับผู้ใช้ที่ไม่ใช่รูท
muru avatar
us flag
คำถามยังคงอยู่ คุณอ่านหรือเห็นอะไรที่ทำให้คิดอย่างนั้น?
Trigosin Darom avatar
pk flag
ตามความเข้าใจของฉัน ตัวแปรสภาพแวดล้อม (ไม่เหมือนกับตัวแปรเชลล์) เป็นแบบโกลบอล ซึ่งหมายความว่าใช้กับทุกกระบวนการ สิ่งนี้อันตรายมากหากผู้ใช้สามารถแก้ไขค่าที่นั่นได้
muru avatar
us flag
ทุกกระบวนการมี *สำเนา* ของตัวแปรสภาพแวดล้อมที่สืบทอดมาจากพาเรนต์ และสามารถแก้ไขชุดของตัวแปรสภาพแวดล้อมของตนเอง รวมถึงชุดของตัวแปรสภาพแวดล้อมที่ส่งผ่านไปยังกระบวนการลูกเมื่อสร้าง
Trigosin Darom avatar
pk flag
เหตุผลที่ฉันถามก็เพราะฉันพยายามแก้ไขความท้าทาย ctf ซึ่งมีผู้ใช้ที่อ่อนแอที่มีสิทธิ์ sudo ให้เรียกใช้ "date --date 'เมื่อวาน'" ในฐานะรูท วิธีแก้ไขคือสร้างไฟล์เรียกทำงานชื่อ 'date' และเปลี่ยนตัวแปร PATH env เพื่อให้ไปถึงไฟล์เรียกทำงาน 'date' ที่แก้ไขแล้ว ฉันยังไม่แน่ใจว่ามันทำงานอย่างไรเพราะตัวแปร PATH ของ root ไม่ควรได้รับผลกระทบ
muru avatar
us flag
ที่ยังไม่ควรจะทำงานตามที่ระบุไว้ สำหรับ sudo หากได้รับอนุญาตสำหรับคำสั่งเฉพาะ จะต้องระบุพาธแบบเต็มไปยังคำสั่งนั้น หากใช้งานได้สำหรับคุณ การกำหนดค่า sudo เป็นสิ่งที่ไม่ปลอดภัยมาก
Score:1
ธง jp

ผลลัพธ์ของคำสั่งต่อไปนี้ควรทำให้คุณมั่นใจได้ว่าคุณสามารถแก้ไขตัวแปรสภาพแวดล้อมของคุณได้

$ grep เส้นทาง ~/.profile 
# ตั้งค่า PATH เพื่อให้มีถังขยะส่วนตัวของผู้ใช้หากมีอยู่
    เส้นทาง=~/bin:"${เส้นทาง}"
PATH="$PATH:/usr/games"

$ ls -l ~/.profile
-rw-r--r-- 1 sudodus sudodus 632 10 ธ.ค. 2010 /home/sudodus/.profile

กล่าวอีกนัยหนึ่ง คุณไม่เพียงแต่แก้ไขตัวแปรเหล่านี้ได้ชั่วคราวเท่านั้น แต่ยังทำให้ตัวแปรยังคงอยู่ได้ด้วยการแก้ไขไฟล์คอนฟิกูเรชันของคุณ ~/.profile. คุณในฐานะผู้ใช้ทั่วไปสามารถทำได้


บรรทัดคำสั่งต่อไปนี้แสดงไฟล์ระบบ ซึ่ง PATH ถูกตั้งค่าหรือแก้ไข

sudo grep -r 'PATH=' /etc/*

คุณอาจต้องการรับรายละเอียดเพิ่มเติม ดูตัวอย่างตามลิงค์ต่อไปนี้

Unix & Linux: มุมมองที่สมบูรณ์ของตำแหน่งที่ตัวแปร PATH ถูกตั้งค่าเป็น bash - โดยเฉพาะคำตอบของ Gilles

Trigosin Darom avatar
pk flag
ผู้ใช้ทุกคนสามารถเปลี่ยนตัวแปรสภาพแวดล้อม GLOBALY ได้หรือไม่ แล้วมันจะใช้กับรูทด้วยได้ไหมครับ ดูเหมือนว่าฉันขาดอะไรไป
sudodus avatar
jp flag
คุณสามารถเปลี่ยนตัวแปรสภาพแวดล้อม ***ของคุณ*** ได้ แต่ไม่ใช่สำหรับผู้ใช้รายอื่น เว้นแต่คุณจะได้รับอนุญาตจากผู้ใช้ขั้นสูง (สามารถใช้ `sudo`)

โพสต์คำตอบ

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