ข้อผิดพลาด SElinux: ValueError: พอร์ต tcp / 5000 กำหนดไว้แล้ว


13

ฉันพยายามเพิ่มข้อยกเว้นใน SELinux สำหรับ apache บนพอร์ต 5000 ดังนั้นฉันจึงใช้คำสั่ง:

 # semanage port -a -t http_port_t -p tcp 5000

แต่กลับข้อผิดพลาด

ValueError: Port tcp/5000 already defined

ฉันพยายามตรวจสอบว่าเป็นเช่นนั้นด้วยคำสั่ง:

semanage port -l |grep 5000

ซึ่งให้ผลลัพธ์

http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

อย่างที่คุณเห็น 5,000 ไม่อยู่ในรายการ

มีอะไรที่ชัดเจนว่าฉันหายไปหรือไม่ ขอบคุณล่วงหน้าสำหรับความพยายามของคุณ

ดังนั้นฉันจึงพบว่าบริการอื่นมีสถานะที่กำหนดไว้สำหรับพอร์ต TCP 5000

แต่ด้วยการแทนที่-aตัวเลือกด้วย-mสำหรับการแก้ไขเพิ่มพอร์ต tcp 5000 เป็นhttp_port_t

คำตอบ:


28

ดังนั้นฉันจึงพบว่าบริการอื่นมีสถานะที่กำหนดไว้สำหรับพอร์ต TCP 5000

แต่ด้วยการแทนที่-aตัวเลือกด้วย-mสำหรับการแก้ไขเพิ่มtcp port 5000ไปhttp_port_t

ดังนั้นคำสั่งที่ใช้งานได้คือ:

# semanage port -m -t http_port_t -p tcp 5000

10

ในระบบที่ผมต้องมือ (C6, C7 และ F24), พอร์ต TCP 5000 มีบริบท SELinux commplex_port_tของ นี่จะเป็นสาเหตุเมื่อคุณพยายามเพิ่มคุณจะได้รับข้อความแสดงข้อผิดพลาด

/usr/sbin/semanage: Port tcp/5000 already defined

หากต้องการเปลี่ยนบริบทของ tcp port 5000 จากcommplex_port_tเป็นhttp_port_tคุณจะต้องใช้ -m | - แก้ไขสวิตช์

-m, --modify     Modify a OBJECT record NAME

ดังนั้น

semanage port -m -t http_port_t -p tcp 5000

ควรทำสิ่งที่คุณต้องการ

semanage port -l | grep 5000
http_port_t                tcp      5000, 80, 81, 443, 488, 8008, 8009, 8443, 9000

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