อ่าน / เขียนไปยังพอร์ตอนุกรมที่ไม่มีรูท?


31

ฉันกำลังเขียนแอปพลิเคชันเพื่ออ่าน / เขียนไปยัง / จากพอร์ตอนุกรมใน Fedora14 และมันใช้งานได้ดีเมื่อฉันเรียกใช้ในฐานะรูท แต่เมื่อฉันเรียกใช้ในฐานะผู้ใช้ทั่วไปฉันไม่สามารถรับสิทธิ์ที่จำเป็นในการเข้าถึงอุปกรณ์ (/ dev / ttySx) นั่นเป็นเรื่องเส็งเคร็งเพราะตอนนี้ฉันไม่สามารถดีบักสิ่งที่แช่งด้วย Eclipse ได้

ฉันลองใช้ Eclipse ด้วย sudo แต่มันขัดกับพื้นที่ทำงานของฉันและฉันไม่สามารถแม้แต่เปิดโครงการ ดังนั้นฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะลดข้อกำหนดการเข้าถึงเพื่อเขียนลงใน / dev / ttySx เพื่อให้ผู้ใช้ทั่วไปสามารถเข้าถึงได้ เป็นไปได้ไหม

คำตอบ:


46

สิทธิในการเข้าถึงพอร์ตอนุกรมนั้นพิจารณาจากการอนุญาตของไฟล์อุปกรณ์ (เช่น/dev/ttyS0) ดังนั้นสิ่งที่คุณต้องทำก็คือจัดการอุปกรณ์ที่คุณเป็นเจ้าของหรือ (ดีกว่า) ทำให้ตัวเองอยู่ในกลุ่มที่เป็นเจ้าของอุปกรณ์หรือ (ถ้า Fedora สนับสนุนอุปกรณ์ซึ่งฉันคิดว่ามันทำ) จัดการอุปกรณ์ให้ เป็นของผู้ใช้ที่เข้าสู่ระบบในคอนโซล

ตัวอย่างเช่นในระบบของฉัน (ไม่ใช่ Fedora) /dev/ttyS0เป็นเจ้าของโดยผู้ใช้rootและกลุ่มdialoutดังนั้นเพื่อให้สามารถเข้าถึงอุปกรณ์อนุกรมฉันจะเพิ่มตัวเองในdialoutกลุ่ม:

usermod -a -G dialout MY_USER_NAME

1
ฉันจะยอมรับสิ่งนี้เพราะมันทำให้ฉันอยู่บนเส้นทางที่ถูกต้อง สำหรับ Fedora คำสั่ง usermod จะถูกใช้หลังจากสร้างผู้ใช้แล้ว กลุ่มที่มีปัญหายังเป็นตัวเลือกสำหรับฉันด้วย: sudo usermod -a -G dialout <ชื่อผู้ใช้> ไชโย
iegod

5
โปรดทราบว่าคุณอาจต้องออกจากระบบและเข้าสู่ระบบเพื่อให้ปรากฏในกลุ่มใหม่
Jan Špaček

1
ตามความต้องการที่เป็นที่นิยม: sudo usermod -a -G dialout $USER:-)
Ciro Santilli 新疆改造中心法轮功六四事件

0

การกระจายจำนวนมากใช้การเป็นสมาชิกกลุ่มเพื่อเปิดใช้งานการเข้าถึงพอร์ตอนุกรม แต่ฉันไม่ทราบรายละเอียดของ Fedora เลย


0

ฉันคิดว่าคุณสามารถเพิ่มตัวเองในไฟล์ sudoers ซึ่งจะช่วยให้คุณระบุชุดของคำสั่งเป็นนามแฝงคำสั่งที่คุณจะสามารถดำเนินการได้โดยไม่ต้องใช้รหัสผ่าน คุณสามารถค้นหากวดวิชาที่ยอดเยี่ยมเกี่ยวกับ sudoers ไฟล์ในเอกสารอูบุนตู

จากนั้นคุณสามารถรัน eclipse ได้ตามปกติและสามารถรันคำสั่งเฉพาะเหล่านั้นได้โดยไม่ต้องมีการอนุญาตรูท


-2

ฉันมีปัญหานี้ยังกลับในวันที่นอกเหนือจากการเพิ่มผู้ใช้ไปยังdialoutกลุ่มที่คุณต้องยังให้สิทธิ์สำหรับผู้ใช้ที่เข้าถึง / dev เพียงแค่su -> ป้อนรหัสผ่านรูท -> chmod -R 777 / dev -R หมายถึงโหมดเรียกซ้ำทุกอย่างภายในโฟลเดอร์นั้นจะได้รับอนุญาตแบบเดียวกัน

ปัญหาคือสิ่งนี้คุณต้องทำเช่นนั้นทุกครั้งที่คุณรีบูทคอมพิวเตอร์หรือต่ออุปกรณ์ของคุณเข้าไปใหม่ !!!


3
chmod -R 777 /devเป็นความคิดที่เลวมาก
RalfFriedl

Yaah เห็นด้วยถ้ามีข้อเสนอแนะอื่น ๆ สำหรับเรื่องนี้จะดี
Tunu Yolim Ngajilo

ฉันสงสัยว่าคุณต้องการออกจากระบบและกลับมาใหม่อีกครั้งในความคิดเห็นของคำตอบที่ยอมรับหรือไม่ ซึ่งบ่อยครั้งที่คนเดินทางขึ้น
sourcejedi

การให้สิทธิ์การเข้าถึงแก่ผู้ใช้ทุกคนฟรีสำหรับทุกสิ่งภายใน / dev / ไม่ปลอดภัยอย่างยิ่งที่จะทำ โปรดอย่าทำเช่นนี้
unfa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.