ฉันมีเซิร์ฟเวอร์สองเครื่องในเครือข่ายเดียวกัน เครื่องหนึ่งใช้ 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(/.*)?"