การแก้ไขปัญหาการอนุญาตเมื่อใช้ฮาร์ดดิสก์ EXT4 ภายนอกที่ติดตั้ง linux หลายตัว


18

ฉันมีฮาร์ดไดรฟ์ภายนอกและเนื่องจากฉันใช้ Ubuntu และ Fedora เท่านั้นฉันจึงตัดสินใจฟอร์แมตฮาร์ดไดรฟ์ของฉันเพื่อใช้งาน ext4 ทุกอย่างเรียบร้อยดี

ปัญหาคือเมื่อฉันติดตั้งไดรฟ์ฉันต้องเปลี่ยนสิทธิ์เพื่อให้ฉันสามารถอ่านและเขียนได้

ฉันควรใช้การอนุญาตประเภทใด ยอมรับชื่อผู้ใช้ของฉัน?

คำตอบ:


5

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

sudo chown -R (user name) /dev/(device name)

( อูบุนตู )

หรือเพียงแค่

chown -R (user name) /dev/(device name)

fedora - ไม่sudoเพียงแค่รันคำสั่งจากรูท

ส่วน Scratcher ก๋วยเตี๋ยวและส่วนที่ฉันไม่มีคำตอบที่ดีคือวิธีที่จะทำให้คุณไม่ต้องพิมพ์ซ้ำด้วยตนเองเมื่อคุณไปมาระหว่าง distros ฉันเกือบถูกล่อลวงให้เพิ่มบรรทัดลงในของฉัน~/.bashrcแต่อาจมีวิธีที่ดีกว่าที่ฉันยังไม่รู้หรือยังไม่เคยคิด


นั่นคือสิ่งที่ฉันต้องการฉันจะต้องเปลี่ยนการอนุญาตทุกครั้งที่ฉันเปลี่ยน distro
Javier Gonzalez

1
เพียงเพื่อให้แน่ใจและตอบสนองความอยากรู้อยากเห็นทางปัญญาของฉันฉันกลับไปและตรวจสอบอีกครั้งด้วยไดรฟ์ USB EXT4 ที่ฉันมี ฉันไม่รู้ว่าการเป็นเจ้าของอุปกรณ์นั้นเป็นสิ่งเดียวกับการเป็นเจ้าของระบบไฟล์หรือไม่และเป็น sudo chown -R (ชื่อผู้ใช้) / dev / (ชื่ออุปกรณ์) ทำให้คุณเป็นเจ้าของไฟล์ทั้งหมดในไดรฟ์แม้ว่าคุณจะไม่ได้สร้างก็ตาม
user2367

ใช่เพียงแค่เพิ่มบรรทัดใน ~ / .bashrc ดังนั้นมันจึงทำงานโดยอัตโนมัติทุกครั้งที่คุณเรียกใช้เทอร์มินัลฉันไม่มีคำตอบสำหรับสิ่งนั้น อาจเพิ่มลงใน cron ได้ไหม แต่ดูเหมือนว่ามันควรจะมีวิธีที่จะจัดการให้มันวิ่งเมื่อรองเท้า distro
user2367

ฉันรัก ext4 จริง ๆ แต่เป็นอึให้เปลี่ยนสิทธิ์ haha
Javier Gonzalez

10

วิธีที่ง่ายที่สุดคือตรวจสอบให้แน่ใจว่าบัญชีผู้ใช้ Ubuntu และ Fedora ของคุณมี ID ผู้ใช้เดียวกัน (UID)

ฉันคิดว่า Fedora เริ่มต้นบัญชีผู้ใช้ที่ 500 ตามค่าเริ่มต้นในขณะที่ Debian และ Ubuntu เริ่มต้นที่ 1000 ดังนั้นจึงเป็นไปได้มากว่าในหนึ่งระบบปฏิบัติการคุณเป็นหมายเลขผู้ใช้ 500 และอีกคนเป็นหมายเลขผู้ใช้ 1000 ระบบไฟล์ใช้หมายเลขโพสต์นี้ เพื่อติดตามการอนุญาตดังนั้นหากคุณแน่ใจว่าพวกเขามี UID เดียวกันพวกเขาจะถูกพิจารณาว่าเป็นผู้ใช้รายเดียวกันและจะไม่มีปัญหาการอนุญาตเกิดขึ้น

ฉันคิดว่าสิ่งที่ดีที่สุดที่คุณสามารถทำได้คือทำให้ทั้ง UID = 1,000 ดังนั้นเปลี่ยน UID ในระบบ Fedora จากนั้นตรวจสอบให้แน่ใจว่าไฟล์ทั้งหมดบนดิสก์ภายนอกและใน $ HOME ของผู้ใช้ในการติดตั้ง Fedoraเป็น UID 1000 ที่คุณไม่ควรมีปัญหาสิทธิ์อีกต่อไป


ใช่ฉันจะทำว่าขอขอบคุณสำหรับเวลาของคุณ :)
Javier Gonzalez

1
โปรดอ่านเพิ่มเติมของฉันมิฉะนั้นผู้ใช้ Fedora จะไม่สามารถเข้าสู่ระบบได้!
JanC

ทุกอย่างชัดเจนฉันจะทดสอบตอนนี้ขอบคุณสำหรับการแก้ไขชื่อคำถามตอนนี้ชัดเจนมาก
Javier Gonzalez

3

ใน / etc / fstab คุณสามารถใส่ uid = 1000 (ใน Ubuntu - มันคือ 500 ใน Fedora) สำหรับไดรฟ์ที่เป็นเจ้าของโดยผู้ใช้ของคุณ (สมมติว่าคุณเป็นผู้ใช้คนแรก yada yada yada ... ถ้าไม่ใช่ผู้ใช้ของคุณ uid จากid) และ umask = 000 หากคุณต้องการให้ผู้ใช้ทุกคนสามารถเข้าถึงได้ (หรือ 077 สำหรับผู้ใช้ที่ระบุโดย uid = - เป็นรูปแบบดังนั้นคุณจึงใส่สิ่งที่ตรงกันข้ามกับสิ่งที่คุณต้องการ)

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html


1
หากฉันตั้งค่าการอนุญาตเป็น 077 ฉันไม่จำเป็นต้องเปลี่ยนการอนุญาตอีกเมื่อฉันเปลี่ยนจาก ubuntu เป็น fedora?
Javier Gonzalez

@Dracirate: ฉันคิดว่าคุณอาจต้องการ 000 มากกว่า 077 ถ้าคุณใส่รายการ fstab สำหรับไดรฟ์ในแต่ละระบบ (ทั้ง Ubuntu และ Fedora) พวกเขาจะติดตั้งอัตโนมัติเพื่อให้สามารถใช้งานได้
Maco

3

น่าเสียดายที่ Linux kernel บังคับใช้สิทธิ์ POSIX ใน ext2 / ext3 / ext4 FS

คุณสามารถแก้ไขปัญหาการอนุญาต POSIX กับกลุ่มที่แบ่งปัน ฉันถามคำถามที่สอดคล้องกัน: /unix/273144/predefined-group-ids-across-linux-distros/แต่หลังจากทั้งหมดฉันได้ทำการวิจัยของตัวเอง

ฉันค้นพบว่ากลุ่ม sys แชร์ id 3 บน Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris

ด้วยการค้นพบในใจวิธีหนึ่งอาจดูเหมือน:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

และรสชาติของสิ่งนี้ (เมื่อใดก็ตามที่คุณใช้ Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

ดูสิ่งนี้ด้วย:


โดยใช้วิธีการที่ดำเนินการ cd /mnt/data/dir; touch example.txt; ls example.txt ... แสดงให้เห็นว่า -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt... กำลังดำเนินการในภายหลัง mv example.txt ~; ll ~/example.txt... แสดง ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txtโดยที่+ในตอนท้ายของการอนุญาต ดังนั้นหลายคนจึง+ปรากฏตัวขึ้นในหลาย ๆ ที่ทำให้หลายคนสงสัยว่าทำไมไฟล์เหล่านั้นถึงเป็นพิเศษ (เพียงเพราะพวกเขาถูกคัดลอก / ย้ายจากโฟลเดอร์เฉพาะ) มีวิธีใดที่จะหยุดการผลิต+โดยอัตโนมัติหรือไม่
Ganton

2

คุณสามารถลองใช้ exfat หรือ ntfs สำหรับฉันมันทำงานด้วยวิธีนี้ แต่ตอนนี้ฉันไม่สามารถใช้งานได้กับทุกสิทธิ์ของไฟล์ ผมคิดว่าไม่.


2

นี่เป็นความแตกต่างเล็กน้อยของวิธีการ @ gavenkoa ในการใช้กลุ่มที่ใช้ร่วมกันและไม่เกี่ยวข้องกับการดัดแปลงของไดรฟ์ที่เมาท์

ตรวจสอบว่า group id (GID) ใดที่ใช้ในไดรฟ์ที่เมาท์

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

ให้เราบอกว่าคุณเห็นบางสิ่งที่คล้ายกันดังต่อไปนี้:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

ซึ่งหมายความว่า12000เป็น GID ปัจจุบันของข้อมูลในไดรฟ์และข้อมูลสามารถอ่านและดำเนินการ (แม้ว่าจะไม่สามารถเขียนได้) โดยผู้ใช้รายอื่นของกลุ่ม สร้างกลุ่มใหม่ (เช่นdriveusers) และเพิ่มผู้ใช้ปัจจุบันของคุณในกลุ่มใหม่:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

1

ฉันพบวิธีแก้ไขปัญหาอื่น:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

ด้วยสิ่งนี้:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

และรสชาติของสิ่งนี้:

sudo adduser user sys  

ผู้ใช้ของคุณจะสามารถอ่าน / /dirเขียนไฟล์บน

@jadelord @ gavenkoa คุณคิดว่ามีการปรับปรุงใด ๆ ที่สามารถทำได้ในปัจจุบันสำหรับโซลูชันที่แนะนำสำหรับผู้ใช้ Ubuntu (หรือ Fedora)? ขอบคุณ

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