เมาท์พาร์ติชัน NTFS เมื่อเริ่มต้นด้วยผู้ใช้ที่ไม่ใช่รูทในฐานะเจ้าของ


28

ฉันกำลังติดตั้งพาร์ติชัน NTFS เมื่อเริ่มต้นโดยใช้บรรทัดต่อไปนี้ใน / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

สำหรับการติดตั้ง Ubuntu 11.10 ของฉันดูเหมือนว่าไฟล์และโฟลเดอร์ทั้งหมดเป็นของroot- และเนื่องจาก NTFS ไม่สนับสนุนระบบการจัดการสิทธิ์แบบเดียวกันอยู่แล้วไม่มีทางที่ฉันจะสามารถเปลี่ยนได้หลังจากการเมาต์เสร็จสมบูรณ์ ไม่ว่าสิ่งที่ผมทำls -lที่ใดก็ได้บนพาร์ติชัน NTFS root:rootจะแสดงรายการทุกไฟล์และโฟลเดอร์เป็นเจ้าของโดย

อย่างไรก็ตามนี่ทำให้เกิดปัญหาบางอย่างสำหรับฉัน โดยเฉพาะอย่างยิ่งแอปพลิเคชันบางตัวที่ทำงานภายใต้บัญชีของฉัน (เรียกว่าtomas) บ่นเกี่ยวกับสิทธิ์การเข้าถึง นอกจากนี้เมื่อใดก็ตามที่ฉันพยายามคัดลอก ( cp) หรือย้ายmvไฟล์( ) จากพาร์ติชัน ext3 ของฉันไปยังพาร์ติชัน NTFS ฉันได้รับข้อความแสดงข้อผิดพลาดว่า

mv: preserving times for `[path to new file]`: Operation not permitted

หรือในทำนองเดียวกัน

mv: preserving permissions for ...

จะติดตั้งพาร์ติชันในชื่อของฉันแทนที่จะช่วยรูทหรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำเช่นนั้นใน fstab ได้อย่างไร


ปรับปรุง:

ตอนนี้ฉันได้เปลี่ยนตัวเลือกตามคำแนะนำและมาถึงสิ่งนี้:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lตอนนี้แสดงไฟล์ทั้งหมดที่ฉันเป็นเจ้าของแทนที่จะเป็นรูทและดูเหมือนว่าปัญหาบางอย่างที่ฉันเคยมีมาจะแก้ไข อย่างไรก็ตามไม่ใช่ทั้งหมด

เมื่อฉันเริ่มต้น Eclipse ฉันได้รับข้อผิดพลาดว่าไฟล์ที่เกี่ยวข้องกับ android-sdk ไม่สามารถรันได้: การอนุญาตถูกปฏิเสธ ls -lบอกฉันเกี่ยวกับไฟล์ต่อไปนี้:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

นี่เป็นลักษณะที่ฉันต้องการ แต่ถ้าฉันพยายามที่จะเรียกใช้ ( ./adbใน terminal) ฉันยังได้รับอนุญาตปฏิเสธข้อผิดพลาด แต่ถ้าฉันใช้มันใช้sudoงานได้ (ฉันเชื่อ - อย่างน้อยมันก็ไม่ได้ให้ข้อความแสดงข้อผิดพลาด แต่ก็ไม่ได้ให้ผลลัพธ์ใด ๆ กับฉันเลยซึ่งฉันคิดว่ามันไม่ควร ... )

ทำไมไฟล์ดังกล่าวข้างต้นโดยมีผู้สิทธิ์สำหรับทุกคนที่ยังไม่ได้ปฏิบัติการโดยคนอื่นมากกว่าroot? ฉันจะเปลี่ยนวิธีการเมานต์ระบบไฟล์ได้อย่างไร?


อัปเดต 2:

ตกลงตอนนี้ฉันมาอีกหน่อย โดยติดตั้งด้วยตัวเลือกเหล่านี้

nls=iso8859-1,permissions,users,auto

ฉันได้รับอนุญาตทั้งหมดกำหนดวิธีที่ฉันคาดหวังให้พวกเขาและchownและchmodเปลี่ยนการตั้งค่าในไฟล์ (อย่างน้อยตามls -l) = D

แต่ระบบของฉันยังคงทำงานในลักษณะแปลก ๆ สิทธิ์สำหรับadbไฟล์สคริปต์ดังกล่าวข้างต้น แต่ทั้งฉันและ Eclipse ไม่สามารถรันได้โดยไม่มีข้อผิดพลาด "สิทธิ์การปฏิเสธ" แต่เท่าที่ฉันเห็นไฟล์นั้นมีการตั้งค่าสถานะที่จำเป็นทั้งหมด ( o=rwxควรจะเพียงพอใช่ไหม?) ทำไมมันไม่ทำงาน


อัปเดต 3

ตกลงฉันได้ทุกอย่างทำงานด้าน Ubuntu ด้วยตัวเลือกต่อไปนี้

nls=iso8859-1,permissions,users,auto,exec

อย่างไรก็ตามเมื่อฉันพยายามเข้าถึงไฟล์บนพาร์ติชันจาก Windows การตั้งค่าความปลอดภัยทั้งหมดก็เกิดความสับสน ในไฟล์ทั้งหมด (ไม่กี่ที่ฉันได้ตรวจสอบ) มีการเพิ่มบัญชีใหม่ที่เรียกว่าAccount Unknown(long GUID)ลงในรายการผู้ใช้และมีสิทธิ์อย่างเต็มที่ ความเข้มงวดของผู้ใช้รายอื่นลดลงดังนั้นฉันไม่มีสิทธิ์ทำสิ่งที่ฉันคาดหวัง ดูเหมือนว่าทุกคนจะไม่มีสิทธิ์ที่จะ "Traverse folder / execute" อีกต่อไป

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


2
จากภูเขา (8)users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid) : ดังนั้นเพิ่มexecตัวเลือกของคุณและฉันเชื่อว่าปัญหาการปฏิเสธสิทธิ์ในการดำเนินการควรได้รับการแก้ไข
benwh

คุณเคยแก้ไขปัญหานี้หลังจากอัปเดต 3 หรือไม่ ... ฉันพยายามถึงจุดหนึ่งที่จะทำการสำรองข้อมูล rsync ของระบบลินุกซ์ของฉันไปยังไดรฟ์ ntfs พิเศษที่ฉันมี แต่หลังจากการค้นหาจำนวนมากมาถึงบทสรุปว่าฉันไม่สามารถใส่ข้อมูลทั้งหมดของระบบไฟล์ลินุกซ์ได้ สู่ ntfs fs (บางทีฉันอาจเข้ามาใกล้เคียงกับที่คุณได้ทำไปแล้ว แต่ในที่สุดลินุกซ์ไม่ได้ทำแผนที่ได้ดีบน ntfs)
มุมมองรูปไข่

@Elipticalview: นี่นานมาแล้วและฉันไม่มีคอมพิวเตอร์เครื่องเดียวกันอีกต่อไป คุณลองคำตอบที่ยอมรับหรือไม่?
Tomas Aschan

คำตอบ:


25

ในคอลัมน์ตัวเลือกเพิ่มpermissionsและauto(และอาจuserหรือusers)

nls=iso8859-1,permissions,users,auto
  • permissions: (ตัวเลือก NTFS-3G) ตั้งค่าการอนุญาตมาตรฐานสำหรับไฟล์ที่สร้างและใช้การควบคุมการเข้าถึงมาตรฐาน
  • auto: จะถูกเมานต์ตอนบู๊ตและจาก mount -a
  • user: อนุญาตให้ผู้ใช้ทั่วไปทำการเมาท์ระบบไฟล์
  • users: อนุญาตให้ผู้ใช้ทุกคนเชื่อมต่อและยกเลิกการต่อเชื่อมระบบไฟล์

จากนั้นเปลี่ยนความเป็นเจ้าของระบบไฟล์:

sudo chown -R thomas:thomas /media/data 

สายของฉันมา /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

เมานต์และรายการสิทธิ์

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

เปลี่ยนความเป็นเจ้าของและรายการสิทธิ์ใหม่

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

โดยค่าเริ่มต้น ntfs-3g จะเมาท์ noexec, nosuid และ nodev ของพาร์ติชัน

  • noexec: ไม่อนุญาตให้เรียกใช้งานไบนารีโดยตรงบนระบบไฟล์ที่เมาท์
  • nosuid: ไม่อนุญาตให้บิต set-user-identifier หรือ set-group-identifier มีผล
  • nodev: อย่าตีความตัวละครหรือบล็อกอุปกรณ์พิเศษในระบบไฟล์

ในการแทนที่สิ่งนี้และอนุญาตให้เรียกใช้ไฟล์ให้ใช้ exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

ตอนนี้เราได้รับแล้ว

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works

อืม ... หลังจากเพิ่มไปที่ fstab (ทำคอลัมน์ตัวเลือก hte ต่อไปนี้nls=iso8859-1,permissions,users,umask=000:) และการรีบูตตอนนี้ฉันสามารถย้ายและคัดลอกไฟล์โดยไม่มีข้อความผิดพลาด ไฟล์ทั้งหมดที่ยังคงแสดงเป็นเจ้าของโดยแม้ว่าแม้หลังจากที่root:root sudo chown -R tomas:tomas /media/dataดูเหมือนจะไม่เป็นปัญหาสำหรับตอนนี้ แต่จากความอยากรู้: ทำไมจึงเป็นเช่นนั้น
Tomas Aschan

ฉันคิดว่าเป็นเพราะคุณumask=000
Panther

ไม่umask=000เทียบเท่ากับchmod 777- umask กำหนดค่าสถานะทั้งหมดที่คุณไม่ต้องการตั้งค่าในไฟล์ ฉันเห็นด้วยว่ามันใช้งานง่าย แต่มันอยู่ที่นี่: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan

ฉันได้อัปเดตคำถามของฉันพร้อมข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ฉันได้ลองและผลลัพธ์
Tomas Aschan

1
หืม ... ฉันจะต้องยกเลิกการทำเครื่องหมายในขณะนี้: ปรากฎว่าสิ่งนี้ได้รับอนุญาตเมื่ออ่านไฟล์จาก Windows ...
Tomas Aschan

2

ใช้uidและgidตัวเลือก (หรือใช้คุณสมบัติการแมปผู้ใช้) ของmount.ntfs (8)


1
กล่าวอีกนัยหนึ่งให้เพิ่ม uid = ใครก็ตามที่อยู่ในบรรทัด fstab
psusi

uidและใช้gidงานได้ แต่ขณะนี้สิทธิ์รองรับได้รับการสนับสนุนใน ntfs-3g และตัวเลือกเหล่านั้นผ่านpermissionsตัวเลือก ดู: b.andre.pagesperso-orange.fr/permissions.html
Panther

ฉันได้อัปเดตคำถามของฉันพร้อมข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ฉันได้ลองและผลลัพธ์ที่ได้ โปรดดู =)
Tomas Aschan

คุณสามารถอัพเดตรายการ fstab ของคุณและลบ uid, gid, และ umask ของคุณเพียงnls=iso8859-1,permissions,usersยกเลิกการต่อเชื่อมและติดตั้งพาร์ติชันใหม่
Panther

@ bodhi.zazen: จากนั้นเรากลับไปที่จตุรัสหนึ่ง ไฟล์แสดงเป็นเจ้าของroot:rootและ Eclipse บ่นเกี่ยวกับการอนุญาต
Tomas Aschan

2

ตอนนี้ฉันทำงานได้อย่างสมบูรณ์แบบเมื่อฉันเปลี่ยนสาย fstab เป็น

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0

1

สิ่งที่เกี่ยวกับการใช้udisks? มันสามารถติดพาร์ติชัน NTFS กับผู้ใช้ของคุณในฐานะเจ้าของได้อย่างง่ายดาย

ตัวอย่าง (พิมพ์ลงในบรรทัดคำสั่ง):

/usr/bin/udisks --mount /dev/sda3

นอกจากนี้คุณยังสามารถเพิ่มคำสั่งนั้นลงในแอปพลิเคชันเริ่มต้นและมันจะเมาท์อัตโนมัติเมื่อคุณเข้าสู่ระบบ

การอ้างอิง: AutomaticallyMountPartitions โดยอัตโนมัติ

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