ฉันจะวางไฟล์ที่แบ่งกลุ่มไว้ในระบบ Linux ได้ที่ไหน


14

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

ในระบบเก่าเรามีผู้ใช้ที่ใช้ร่วมกันที่เป็นเจ้าของไฟล์ส่วนใหญ่และพวกเขาอยู่ในที่ที่ผู้ใช้/homeนั้น แต่ในระบบใหม่เราจะทำการเข้าสู่ระบบด้วยบัญชีของเราเองและใช้การอนุญาตกลุ่มเพื่อทำงานร่วมกัน เป็นเจ้าของไฟล์เดียวไม่มี/home-dir

ดังนั้นฉันควรใส่ไฟล์เหล่านั้นไว้ที่ไหน? ฉันควรสร้างผู้ใช้ที่ไม่มีชื่อเข้าสู่ระบบที่เป็นเจ้าของไฟล์หรือไม่ หรือมี/grouphomeสถานที่ที่เหมาะสม

(ฉันไม่ต้องการกระจายผู้ใช้ออกเป็นรายบุคคล/home: s.)


ไฟล์ประเภทใด
Dan Carley

ส่วนใหญ่เป็นสคริปต์นำเข้าที่มีข้อมูลที่เกี่ยวข้องที่แตกต่างกันซึ่งควรถูกกรองและนำเข้าสู่ฐานข้อมูล
Daniel

ฉันชอบ / ไม่พอใจ ผู้ใช้ที่ไม่เข้าสู่ระบบที่เป็นเจ้าของความคิดของไฟล์ก็ดีเช่นกัน
pjc50

คำตอบ:


15

/usr/localฉันเกือบจะแน่นอนขอแนะนำให้ใช้

/usr/local/binทั่วโลกสคริปต์ผู้ใช้สามารถเข้าถึงได้สามารถอยู่ใน ข้อมูลที่เกี่ยวข้องจำนวนเล็กน้อยก็สามารถเข้าไปbinได้เช่นกัน หรือคุณอาจต้องการที่จะแยกออกจากข้อมูลลงในหรือ/usr/local/var/usr/local/share

ด้วยการทำเช่นนี้คุณจะมั่นใจได้ว่าทุกคนในครอบครัว FHS จะสามารถค้นหาพวกเขาได้อย่างรวดเร็วโดยไม่ต้องรู้ล่วงหน้าเกี่ยวกับระบบใด ๆ


3
(+1) สำหรับการอ้างอิงในอนาคตเกี่ยวกับสิ่งที่จะวาง: pathname.com/fhs/pub/fhs-2.3.html
Kyle Brandt

ขอบคุณทั้งคู่ /usr/localไม่ว่าจะเป็น จริงๆแล้วมันเป็นหนึ่งในตัวเลือกแรกของฉัน แต่รายละเอียดของวัตถุประสงค์ของ/usr(อ่านอย่างเดียว) ในบทความปัญหาเปิดให้ฉันออกไปจากความคิดที่ว่า /usr/localคิดว่าผมควรจะได้อ่านต่อไป
Daniel

7

เป็นสิ่งที่เรียงลำดับกันว่าสิทธิ์ของกลุ่มได้รับการออกแบบมาเพื่อ นี่คือวิธีที่ฉันทำใน Ubuntu:

sudo mkdir /home/shared
sudo addgroup shared
sudo chown :shared /home/shared
sudo chmod 770 /home/shared
sudo vim /etc/group

เพิ่มรายการผู้ใช้ที่จะสามารถเข้าถึงไดเรกทอรีที่ใช้ร่วมกันในกลุ่มที่ใช้ร่วมกัน ตัวอย่างเช่น:

shared:x:1002:norman,nextuser,and,so-on

แน่นอนคุณสามารถใช้ชื่ออื่นนอกเหนือจาก 'แชร์' และไม่จำเป็นต้องอยู่ในไดเรกทอรี / home สิ่งที่ดีคือคุณไม่จำเป็นต้องทำอะไรเป็นพิเศษกับบัญชีของผู้ใช้และคุณสามารถเพิ่มหรือลบผู้ใช้ออกจากกลุ่มได้อย่างง่ายดาย


ขอบคุณสำหรับการลงคะแนน แต่ฉันอยากจะรู้ว่าสิ่งที่ฉันเขียนนั้นไม่ถูกต้อง
เรียบง่าย

นอกจากนี้ยังตั้งกลุ่มเหนียวเล็กน้อยเพื่อให้กลุ่มมีการตั้งค่าสำหรับไฟล์ใหม่ที่สร้างขึ้น chmod g+s /home/shared
jris198944

1
@ jris198944 ใช้sสำหรับบิต SUID และ GUID tสำหรับบิตที่เหนียว ตรวจสอบอีกครั้งก่อนที่จะโพสต์โปรดดู ;-): unix.stackexchange.com/a/79401/136321
leaf

1

คำตอบสั้น ๆ คือ; ทุกที่ที่คุณชอบ :)

ฉันชอบที่จะใช้สิ่งที่ต้องการ / โครงการ / ใช้ร่วมกันหรือ / ทั่วไป / home / shared ก็ทำงานเหมือนกัน


ขอบคุณ สั้นและดี แต่บางครั้งก็ง่ายขึ้นถ้าคุณไม่ต้องตัดสินใจเอง ... มันเป็นไปตาม FHS ที่จะทำให้ไดเรกทอรีของตัวเองถูกต้อง/หรือไม่? เมื่อไหร่ (ถ้าทั้งหมด) มันมีความสำคัญ? ฉันไม่ได้มีประสบการณ์เพียงพอที่จะตระหนักถึงความหมายของตัวเลือกของฉัน
Daniel

มันเป็นแค่การประชุมเท่านั้น โปรแกรมอื่น ๆ ที่มองหาสิ่งที่ฉันมองหาในตำแหน่งที่กำหนดไว้ล่วงหน้าเหล่านี้ ไดเรกทอรี bin จะอยู่ใน $ PATH ของคุณแล้วดังนั้นคุณจะไม่ได้ระบุชื่อพา ธ เต็มเพื่อเรียกใช้สคริปต์ ผู้ดูแลระบบคนอื่นอาจคาดหวังให้พวกเขาอยู่ที่นั่น มันอาจจะไม่ได้เรื่องจริงๆในกรณีของคุณ แต่นิสัยดีเป็นสิ่งที่ดี :-)
ไคล์ Brandt

มีจำนวนของข้อตกลงที่ใช้บังคับได้คือสภาพแวดล้อม UNIX FHS สร้างพื้นฐานที่ดี แต่เป็นเรื่องปกติที่จะเบี่ยงเบนจากมาตรฐานนี้ ตัวอย่างเช่นสถาปัตยกรรมที่มีความยืดหยุ่นสูงสุดสำหรับเซิร์ฟเวอร์ฐานข้อมูล Oracle ใช้ / u * (/ u01, / u02) สำหรับข้อมูลผู้ใช้ภายในขณะที่ Ubuntu ใช้สื่อ / อื่น ๆ สำหรับจุดเชื่อมต่อสื่อแบบถอดได้ ตราบใดที่คุณมีการประชุมที่คุณเห็นด้วยกับภายในในสภาพแวดล้อมการดำเนินงานของคุณจะไม่มีปัญหา
รอย

0

ผมใช้/shares; นี่เป็นตำแหน่งที่ qnap ใช้เช่นกัน

ใน/sharesฉันมี symlinks ไปยังปลายทางในโฟลเดอร์ที่เรียกว่า/shares/.mnt/ฉันมีไดรฟ์ข้อมูลที่ติดตั้งอยู่

สิ่งนี้ทำเพื่อป้องกันเวลารอนานเมื่อย้ายไฟล์ระหว่างการแชร์เมื่อใช้ฮาร์ดลิงก์ /sharesฮาร์ดที่จำเป็นเมื่อไดรฟ์ข้อมูลติดตั้งใน / mnt เท่านั้น

/shares/.mnt ไม่ได้แชร์ แต่อย่างใด

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