Score:0

อนุญาตให้แชร์ samba เข้าถึงที่เก็บไฟล์ระยะไกลที่เมาท์

ธง ru

ฉันมีเซิร์ฟเวอร์สองเครื่องในเครือข่ายเดียวกัน เครื่องหนึ่งใช้ Windows Server 2016 และอีกเครื่องใช้ CentOS 8 เซิร์ฟเวอร์ Windows เป็นที่เก็บไฟล์หลักของฉัน ซึ่งเป็นที่เก็บข้อมูลทั้งหมดของฉัน เซิร์ฟเวอร์ CentOS มีการติดตั้ง Windows ร่วมกันและสามารถเข้าถึงไฟล์ได้

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

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

นี่คือประเด็น หากฉันเพิ่มไฟล์ "ปกติ" ลงในโฟลเดอร์ของผู้ใช้ ผู้ใช้ก็สามารถเข้าถึงได้ตามปกติ แต่ถ้าฉันเพิ่ม symlink (ไปยังไฟล์ในการแชร์ Windows ที่เมาท์) มันจะไม่ปรากฏขึ้นสำหรับพวกเขา ฉันค่อนข้างแน่ใจว่านี่เป็นปัญหาของ SELinux

นี่คือวิธีการตั้งค่าสิ่งต่างๆ

  • ติดตั้ง Windows share แล้ว

    sudo mount -t cifs //WindowsShare/data /media/WinShare \ 
      -o ip=192.168.1.5,ชื่อผู้ใช้=ผู้ใช้,gid=sambashare
    
    ls -alhZ /media/WinShare
    drwxr-xr-x. 2 รูท sambashare system_u:object_r:cifs_t:s0 0 10 ม.ค. 16:57 ไฟล์
    
  • มีการสร้างและใช้งานการแบ่งปันแซมบ้า /srv/smb (ผู้ใช้แซมบ้าทั้งหมดอยู่ใน แซมบ้าแชร์ กลุ่ม)

    ls -alhZ /srv
    drwxrwx---. 2 รูต sambashare unconfined_u:object_r:samba_share_t:s0 6 ม.ค. 56 11:20 น.
    
  • เดอะ /etc/samba/smb.conf มีดังต่อไปนี้:

    [ทั่วโลก]
        อนุญาตลิงก์กว้างที่ไม่ปลอดภัย = ใช่
        นามสกุลยูนิกซ์ = ไม่
    
    [แอดมินแชร์]
        เส้นทาง = /srv/smb
        ลิงก์กว้าง = ใช่
        ติดตาม symlinks = ใช่
    
  • ในการทดสอบ ฉันได้เพิ่ม symlink และไฟล์

    ln -s /media/WinShare/files/test.pdf /srv/smb/test.pdf
    แตะ /srv/smb/file.bin
    

จากนั้นฉันก็พยายามเมานต์ \CentOS\adminแบ่งปัน ใน Windows VM และฉันไม่เห็นไฟล์ แบบทดสอบ.pdf ไฟล์ แต่ฉันเห็น ไฟล์.bin.

ฉันจะให้ CentOS samba แบ่งปันการเข้าถึงข้อมูล Windows Server ที่เมาท์ได้อย่างไร เมื่อตั้งค่าเซิร์ฟเวอร์ CentOS ฉันรัน:

sudo semanage fcontext -a -t samba_share_t "/srv/smb(/.*)?"

นี่คือสิ่งที่ทำให้ฉันได้เห็น ไฟล์.binแต่ฉันยังมองไม่เห็น ไฟล์.pdf. ฉันพบสิ่งนี้ แต่ฉันไม่รู้ว่าฉันต้องการเปลี่ยนหรือไม่ ทุกอย่าง:

sudo setsebool -P samba_export_all_rw=1

ฉันจะอนุญาตให้ samba เข้าถึงไฟล์ /media/วินแชร์ โฟลเดอร์? จะใช้งานได้หรือไม่

sudo semanage fcontext -a -t samba_share_t "/media/WinShare(/.*)?"
djdomi avatar
za flag
กำหนดผู้ใช้สำหรับการแชร์ ส่วนใหญ่เป็นปัญหาการเข้าถึงเนื่องจากผู้ใช้ผิดและ chmod
Score:0
ธง ru

ฉันซ่อมมัน! ฉันต้องเมานต์การแชร์ Windows และบังคับบริบทของ samba_share_t.

เมื่อติดตั้งเพิ่ม บริบท=unconfined_u:object_r:samba_share_t:s0.

sudo mount -t cifs //WindowsShare/data /media/WinShare \
    -o ip=192.168.1.5,ชื่อผู้ใช้=ผู้ใช้,gid=sambashare,context=unconfined_u:object_r:samba_share_t:s0

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา