Bash / proc / sys / net / ipv4 / ip_forward: ปฏิเสธการอนุญาต


11

ฉันพยายามวิ่ง

echo 1 > /proc/sys/net/ipv4/ip_forward

มันบอกว่า Access ถูกปฏิเสธจากการทุบตีแล้วฉันก็:

sudo chmod 1+x /proc/sys/net/ipv4/ip_forward

และตอนนี้ก็แจ้งว่าไม่อนุญาตให้ใช้งาน

ฉันจะเข้าถึงได้อย่างไร


4
ลองนี้:echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Doug Smythies

คุณช่วยอธิบายว่า tee ทำอะไรได้บ้าง
Kevin Hernandez

3
ปัญหาsudo echo 1 > /proc/sys/net/ipv4/ip_forwardคือการเปลี่ยนเส้นทางของเอาต์พุตไม่เป็นเช่นsudoนั้นจึงไม่ทำงาน จากหน้า man: tee - read from standard input and write to standard output and filesและถ้าทำตามที่sudoมีสิทธิ์เพียงพอที่จะเขียนไปยังไฟล์
Doug Smythies

คำตอบ:


15

บิตการอนุญาตสำหรับไฟล์/proc/sys/net/ipv4/ip_forwardคือ:

-rw-r--r-- 

กับการเป็นowner:grouproot:root

ดังนั้นrootสามารถเขียนลงไฟล์ได้เท่านั้น

เมื่อคุณทำ:

echo 1 > /proc/sys/net/ipv4/ip_forward

ในฐานะผู้ใช้ทั่วไปคุณจะไม่สามารถเขียนไฟล์ได้เนื่องจากได้รับอนุญาตไม่เพียงพอ

คุณทำได้:

  • ใช้sudoและbash:

    sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
  • การใช้tee:

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

โปรดทราบว่าคุณควรใช้/etc/sysctl.confสำหรับการดำเนินการอย่างต่อเนื่องใน/proc/sysไดเรกทอรีย่อย

สรุปเพื่อเปิดใช้งานการส่งต่อ IP คุณสามารถใส่สิ่งต่อไปนี้ใน/etc/sysctl.conf:

net.ipv4.ip_forward = 1

จากนั้นเรียกใช้:

sudo sysctl -p

เพื่อให้มีผลทันที

สิ่งนี้มีผลเช่นเดียวกับการแก้ไขไฟล์/proc/sys/net/ipv4/ip_forward โดยตรงและไม่ต้องพูดถึงไกลสะอาดและแน่นอนถาวร


ทำเสียงสะท้อน 1 | sudo tee / proc / sys / net / ipv4 / ip_forward ทำงานให้ฉันคุณช่วยอธิบายทีออฟได้ไหม
Kevin Hernandez

1
@ChrisEthanFox teeมีคำสั่งให้ส่งสิ่งที่ได้รับไปยังทั้งในเอาต์พุตมาตรฐานและไปยังไฟล์ ตรวจสอบman tee
heemayl

ฉันเข้าสู่ระบบในฐานะ root แต่ยังไม่สามารถใช้คำสั่ง rm ( rm /proc/sys/net/ipv4/icmp_echo_ignore_all) เพื่อลบไฟล์ดังกล่าว! ฉันตรวจสอบบิตที่ไม่เปลี่ยนรูปและไม่ได้ตั้งค่าไว้ในไฟล์นั้น ... ฉันได้รับข้อผิดพลาดเดียวกัน "rm: ไม่สามารถลบ '/ proc / sys / net / ipv4 / icmp_echo_ignore_all': การอนุญาตถูกปฏิเสธ" แต่อย่างน่าอัศจรรย์ฉันสามารถแก้ไขไฟล์ตามที่คุณอธิบายได้! ฉันไม่สามารถตระหนักถึงปัญหาที่เกิดขึ้นกับrm!
Mojtaba Rezaeian

@MojtabaRezaeian เป็นเคอร์เนลที่ป้องกันการลบออก /procเช่นprocfsอาศัยอยู่ในหน่วยความจำและถูกเปิดเผยโดยเคอร์เนล ดังนั้นคุณจะได้รับมุมมองของเคอร์เนลและสิ่งที่เคอร์เนลอนุญาตให้คุณทำกับไฟล์บน FS เช่นนั้นได้เต็มที่เกินเคอร์เนล
heemayl

@ heemayl ดังนั้นฉันจะลบไฟล์นั้นได้อย่างไรเพราะการสร้างไฟล์นั้นเป็นตัวเลือกในการปิดใช้งานการร้องขอ ping icmp ไปยังเซิร์ฟเวอร์ของฉันอย่างถาวร แต่หลังจากที่สร้างไฟล์นั้นตอนนี้ฉันเปลี่ยนใจแล้ว แต่ไม่มีทางที่จะลบตัวเลือกนั้นออก เมื่อมันไม่สามารถเปลี่ยนแปลงได้!) คุณมีความคิดว่าจะทำอย่างไร? หรืออาจจะต้องเปิดคำถามอื่น?
Mojtaba Rezaeian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.