UNIX - mount: root เท่านั้นที่ทำได้


15

ฉันต้องอนุญาตให้ผู้ใช้ที่ไม่ใช่รูททำการเมาน / เลิกเมานท์อุปกรณ์ ฉันเป็น noob ทั้งหมดเมื่อพูดถึงยูนิกซ์ดังนั้นโปรดทำให้ฉันเป็นใบ้

ฉันดูทั่วทั้ง interwebz เพื่อค้นหาคำตอบและดูเหมือนว่าทุกคนกำลังให้คำตอบเดียวกันซึ่งก็คือการปรับเปลี่ยน/etc/fstabเพื่อรวมอุปกรณ์นั้นด้วยuserตัวเลือก (หรือusersลองทั้งสองอย่าง) mount: only root can do thatผมว่าและก็ยังกล่าวว่า

นี่คือเนื้อหาของ fstab ของฉัน:

# / etc / fstab: ข้อมูลระบบไฟล์สแตติก
#
# ใช้ 'vol_id --uuid' เพื่อพิมพ์ตัวระบุที่เป็นสากลสำหรับ
อุปกรณ์ #; สิ่งนี้อาจใช้กับ UUID = เป็นวิธีที่แข็งแกร่งกว่าในการตั้งชื่ออุปกรณ์
# ที่ทำงานแม้ว่าจะมีการเพิ่มและลบดิสก์ ดู fstab (5)
#
#                
proc / proc ค่าเริ่มต้นของ proc 0 0
# / was on / dev / mapper / minicc-root ระหว่างการติดตั้ง
UUID = 1a69f02a-a049-4411-8c57-ff4ebd8bb933 / ext3 relatime ข้อผิดพลาด = remount-ro 0 1
# / boot เปิดใช้งาน / dev / sda5 ระหว่างการติดตั้ง
UUID = 038498fe-1267-44c4-8788-e1354d71faf5 / boot ext2 relatime 0 2
# swap อยู่ใน / dev / mapper / minicc-swap_1 ระหว่างการติดตั้ง
UUID = 0bb583aa-84a8-43ef-98c4-c6cb25d20715 ไม่มีการแลกเปลี่ยน sw 0 0
/ dev / scd0 / media / cdrom0 udf, ผู้ใช้ iso9660, noauto, exec, utf8 0 0
/ dev / scd0 / สื่อ / floppy0 auto rw, ผู้ใช้, noauto, exec, utf8 0 0
/ dev / sdb1 / mnt / sdcard auto auto, ผู้ใช้, rw, exec 0 0

/dev/sdb1ฉันไดรฟ์หัวแม่มือแสดงพาร์ทิชันขึ้นเป็น ฉันค่อนข้างมั่นใจว่าฉันfstabตั้งค่าตกลงแล้ว แต่ทุกคนในโพสต์อื่น ๆ ดูเหมือนจะล้มเหลวที่จะพูดถึงว่าพวกเขาเรียกmountคำสั่งจริงอย่างไรเมื่อรายการนี้อยู่ในไฟล์ fstab ฉันคิดว่านี่เป็นปัญหาของฉัน คำสั่งที่ฉันใช้เพื่อต่อเชื่อมไดร์ฟคือ:

$ mount /dev/sdb1 /mnt/sdcard

/bin/mountเป็นเจ้าของโดย root และอยู่ในกลุ่ม root และมีสิทธิ์ 4755
/bin/umountเป็นเจ้าของโดย root และอยู่ในกลุ่ม root และมีสิทธิ์ 4755
/mnt/sdcardเป็นของฉันและอยู่ในกลุ่มของฉันและมีสิทธิ์ 0755

คำสั่ง mount ของฉันทำงานได้ดีถ้าฉันใช้sudoแต่ฉันต้องสามารถทำได้โดยไม่ต้องsudo(ต้องสามารถใช้สคริปต์ PHP ได้โดยใช้shell_exec) ข้อเสนอแนะใด ๆ


1
โปรดอย่าใช้นิพจน์เช่น "teh interwebz" นั่นเป็นสิ่งที่ทำให้เสียสมาธิ
Georg Schölly

9
ฉันค่อนข้างจะเห็น "teh interwebz" ฉีดด้วยอารมณ์ขันและบุคลิกภาพมากกว่าเห็นคนใช้ "u", "ur", "any1" และชอบความขี้เกียจและความเขลา ประเด็นของฉันคือมีความแตกต่างและชัดเจนตามบริบท
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

คำตอบ:


17

เมื่อติดตั้งไดรฟ์ในฐานะผู้ใช้ปกติคุณจะต้องระบุชื่อจุดเมานต์เท่านั้นเช่น:

mount /mnt/sdcard

/etc/fstabไฟล์ให้อุปกรณ์ที่จะนำมาใช้


2
หรือคุณสามารถติดตั้งอุปกรณ์และfstabจะจัดหาจุดเชื่อมต่อ
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

AHA! ฉันคิดว่ามันเป็นสิ่งผิดปกติกับไวยากรณ์คำสั่งของฉัน ดีใจที่มันเป็นอะไรที่เรียบง่าย ขอบคุณ !!! การให้รางวัลคำตอบสำหรับโพสต์นี้เนื่องจากเป็นคำตอบที่ตรงที่สุดและเป็นคำอธิบายสำหรับปัญหาของฉันแม้ว่าคำตอบของเดนนิสจะแนะนำสิ่งนี้และจะแก้ปัญหาด้วยเช่นกัน
Travesty3

7

ลองเปลี่ยนความเป็นเจ้าของของ/dev/sdb1เป็นรูท:

chown root:root /dev/sdb1

และfstabสายของคุณไป

/dev/sdb1   /mnt/sdcard auto    rw,user,noauto,exec,utf8   0   0

และทำmountเช่นนี้ของคุณ:

mount /dev/sdb1

ขอบคุณสำหรับคำตอบ! โซลูชันของคุณจะแก้ไขปัญหาด้วยเช่นกันและหวังว่าผู้อื่นที่อ่านโพสต์นี้จะได้รับการช่วยเหลือจากคำแนะนำอื่น ๆ ของคุณเช่นกัน ขอบคุณอีกครั้ง!
Travesty3

-1

ฉันคิดว่าตัวเลือกอัตโนมัติไม่เป็นระเบียบ แทนที่ด้วย noauto


โปรดทราบว่า "อัตโนมัติ" ใน "อัตโนมัติผู้ใช้ rw, exec" ไม่ใช่ "อัตโนมัติ" แบบสแตนด์อโลน "อัตโนมัติ" แบบสแตนด์อโลนสำหรับตรวจหาระบบไฟล์ที่จะใช้และควรจะใช้ได้
ต้มตุ๋น quixote

ไม่ปัญหาเดียวกัน เปลี่ยนเป็นพูด / dev / sdb1 / mnt / sdcard auto noauto, ผู้ใช้, rw, exec 0 0 ไม่แน่ใจว่าจำเป็นหรือไม่ แต่เนื่องจากนี่เป็นเซิร์ฟเวอร์ dev และฉันทำได้ฉันจึงรีสตาร์ทคอมพิวเตอร์หลังจากแก้ไข ไฟล์ fstab ไม่มีประโยชน์ ขอบคุณสำหรับข้อเสนอแนะยังคงมา!
Travesty3
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.