ວິທີສ້າງການແບ່ງປັນ Samba
Samba ຊ່ວຍໃຫ້ Windows ແລະ ລູກຄ່າຍອື່ນໆ ສາມາດເຊື່ອມຕໍ່ກັບໄດເຣັກທໍຣີທີ່ແບ່ງປັນໄຟລ໌ໃນເຄື່ອງ Linux. ມັນນຳໃຊ້ໂປຣໂຕຄໍ server message block (SMB). ຄູ່ມືນີ້ຈະກວມເອົາການສ້າງສະຖານທີ່ແບ່ງປັນໄຟລ໌ໃນເຄື່ອງ Fedora ທີ່ສາມາດເຂົ້າເຖິງໄດ້ໂດຍຄອມພິວເຕີເຄື່ອງອື່ນໆໃນເຄືອຂ່າຍທ້ອງຖິ່ນ.
ຕິດຕັ້ງ ແລະ ເປີດໃຊ້ງານ Samba
ຄຳສັ່ງຕໍ່ໄປນີ້ແມ່ນເພື່ອຕິດຕັ້ງ Samba ແລະ ຕັ້ງຄ່າໃຫ້ມັນເຮັດວຽກຜ່ານ systemctl. ນອກຈາກນີ້ ຍັງມີການຕັ້ງຄ່າໄຟວໍເພື່ອອະນຸຍາດໃຫ້ຄອມພິວເຕີເຄື່ອງອື່ນເຂົ້າເຖິງ Samba ໄດ້.
$ sudo dnf install samba
$ sudo systemctl enable smb --now
$ firewall-cmd --get-active-zones
$ sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-service=samba
$ sudo firewall-cmd --reload
ການແບ່ງປັນໄດເຣັກທໍຣີພາຍໃນ /home
ໃນຕົວຢ່າງນີ້ ເຈົ້າຈະແບ່ງປັນໄດເຣັກທໍຣີພາຍໃນໄດເຣັກທໍຣີ home ຂອງເຈົ້າເອງ, ເຊິ່ງເຂົ້າເຖິງໄດ້ສະເພາະຜູ້ໃຊ້ຂອງເຈົ້າເທົ່ານັ້ນ.
Samba ບໍ່ໄດ້ໃຊ້ຜູ້ໃຊ້ຂອງລະບົບປະຕິບັດການໃນການຢືນຢັນຕົວຕົນໂດຍກົງ, ດັ່ງນັ້ນບັນຊີຜູ້ໃຊ້ຂອງເຈົ້າຕ້ອງຖືກສ້າງຂຶ້ນໃນ Samba ນຳ. ຖ້າບັນຊີຂອງເຈົ້າແມ່ນ jane ໃນເຄື່ອງ host, ຜູ້ໃຊ້ jane ກໍຕ້ອງຖືກເພີ່ມເຂົ້າໃນ Samba ຄືກັນ. ເຖິງແມ່ນວ່າຊື່ຜູ້ໃຊ້ຕ້ອງຄືກັນ, ແຕ່ລະຫັດຜ່ານສາມາດແຕກຕ່າງກັນໄດ້.
ສ້າງຜູ້ໃຊ້ຊື່ jane ໃນ Samba:
$ sudo smbpasswd -a jane
ສ້າງໄດເຣັກທໍຣີເພື່ອເປັນບ່ອນແບ່ງປັນໃຫ້ jane, ແລະ ຕັ້ງຄ່າບໍລິບົດ SELinux ໃຫ້ຖືກຕ້ອງ:
$ mkdir /home/jane/share
$ sudo semanage fcontext --add --type "samba_share_t" "/home/jane/share(/.*)?"
$ sudo restorecon -R ~/share
ການຕັ້ງຄ່າ Samba ແມ່ນຢູ່ໃນໄຟລ໌ /etc/samba/smb.conf. ການເພີ່ມສ່ວນຕໍ່ໄປນີ້ໃສ່ທ້າຍໄຟລ໌ຈະເປັນການສັ່ງໃຫ້ Samba ຕັ້ງຄ່າການແບ່ງປັນສຳລັບ jane ໂດຍໃຊ້ຊື່ວ່າ "share" ຢູ່ທີ່ໄດເຣັກທໍຣີ /home/jane/share ທີ່ຫາກໍ່ສ້າງຂຶ້ນ.
[share]
comment = My Share
path = /home/jane/share
writeable = yes
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
write list = user
ເລີ່ມລະບົບ Samba ໃໝ່ເພື່ອໃຫ້ການປ່ຽນແປງມີຜົນ:
$ sudo systemctl restart smb
ການແບ່ງປັນໄດເຣັກທໍຣີສຳລັບຜູ້ໃຊ້ຫຼາຍຄົນ
ໃນຕົວຢ່າງນີ້, ເຈົ້າຈະແບ່ງປັນໄດເຣັກທໍຣີ (ທີ່ຢູ່ນອກໄດເຣັກທໍຣີ home ຂອງເຈົ້າ) ແລະ ສ້າງກຸ່ມຜູ້ໃຊ້ທີ່ມີສິດໃນການອ່ານ ແລະ ຂຽນລົງໃນບ່ອນແບ່ງປັນນັ້ນ.
ຈື່ໄວ້ວ່າຜູ້ໃຊ້ Samba ຕ້ອງເປັນຜູ້ໃຊ້ໃນລະບົບນຳ ເພື່ອໃຫ້ເປັນໄປຕາມການກຳນົດສິດຂອງລະບົບໄຟລ໌. ຕົວຢ່າງນີ້ແມ່ນການສ້າງກຸ່ມໃນລະບົບຊື່ວ່າ myfamily ສຳລັບສອງຜູ້ໃຊ້ໃໝ່ຄື jack ແລະ maria.
$ sudo groupadd myfamily
$ sudo useradd -G myfamily jack
$ sudo useradd -G myfamily maria
|
ເຈົ້າສາມາດສ້າງຜູ້ໃຊ້ເຫຼົ່ານີ້ໂດຍບໍ່ຕ້ອງມີລະຫັດຜ່ານຂອງລະບົບກໍໄດ້. ນີ້ຈະເປັນການປ້ອງກັນບໍ່ໃຫ້ມີການເຂົ້າເຖິງລະບົບຜ່ານ SSH ຫຼື ການເຂົ້າລະບົບໂດຍກົງຢູ່ໜ້າເຄື່ອງ. |
ເພີ່ມ jack ແລະ maria ເຂົ້າໃນ Samba ແລະ ສ້າງລະຫັດຜ່ານໃຫ້ພວກເຂົາ:
$ sudo smbpasswd -a jack
$ sudo smbpasswd -a maria
ການຕັ້ງຄ່າໂຟນເດີແບ່ງປັນ:
$ sudo mkdir /home/share
$ sudo chgrp myfamily /home/share
$ sudo chmod 770 /home/share
$ sudo semanage fcontext --add --type "samba_share_t" "/home/share(/.*)?"
$ sudo restorecon -R /home/share
ແຕ່ລະການແບ່ງປັນຈະຖືກອະທິບາຍໂດຍສ່ວນຂອງມັນເອງໃນໄຟລ໌ /etc/samba/smb.conf. ເພີ່ມສ່ວນນີ້ໃສ່ທາງລຸ່ມຂອງໄຟລ໌:
[family]
comment = Family Share
path = /home/share
writeable = yes
browseable = yes
public = yes
valid users = @myfamily
create mask = 0660
directory mask = 0770
force group = +myfamily
ຄຳອະທິບາຍສຳລັບຂໍ້ມູນຂ້າງເທິງ:
-
valid users: ສະເພາະຜູ້ໃຊ້ໃນກຸ່ມfamilyເທົ່ານັ້ນທີ່ມີສິດເຂົ້າເຖິງ. ເຄື່ອງໝາຍ @ ໝາຍເຖິງຊື່ກຸ່ມ. -
force group = +myfamily: ໄຟລ໌ ແລະ ໄດເຣັກທໍຣີຈະຖືກສ້າງຂຶ້ນພາຍໃຕ້ກຸ່ມນີ້ ແທນທີ່ຈະເປັນກຸ່ມຂອງຜູ້ໃຊ້ເອງ. -
create mask = 0660: ໄຟລ໌ໃນບ່ອນແບ່ງປັນຈະຖືກສ້າງຂຶ້ນດ້ວຍການກຳນົດສິດທີ່ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ທຸກຄົນໃນກຸ່ມສາມາດອ່ານ ແລະ ຂຽນໄຟລ໌ທີ່ສ້າງໂດຍຜູ້ໃຊ້ອື່ນໄດ້. -
directory mask = 0770: ຄືກັນກັບຂ້າງເທິງ, ແຕ່ໃຊ້ສຳລັບໄດເຣັກທໍຣີ.
ເລີ່ມລະບົບ Samba ໃໝ່ເພື່ອໃຫ້ການປ່ຽນແປງມີຜົນ:
$ sudo systemctl restart smb
ການຈັດການຜູ້ໃຊ້ Samba
ປ່ຽນລະຫັດຜ່ານຜູ້ໃຊ້ Samba
ໝາຍເຫດ: ລະຫັດຜ່ານຜູ້ໃຊ້ຂອງລະບົບ ແລະ ຜູ້ໃຊ້ Samba ສາມາດແຕກຕ່າງກັນໄດ້. ຜູ້ໃຊ້ຂອງລະບົບແມ່ນຈຳເປັນຕ້ອງມີເພື່ອຈັດການເລື່ອງສິດການເຂົ້າເຖິງລະບົບໄຟລ໌.
$ sudo smbpasswd maria
=== ລົບຜູ້ໃຊ້ Samba ອອກ
$ sudo smbpasswd -x maria
ຖ້າເຈົ້າບໍ່ຕ້ອງການຜູ້ໃຊ້ໃນລະບົບແລ້ວ, ກໍໃຫ້ລົບອອກຄືກັນ:
$ sudo userdel -r maria
== ການແກ້ໄຂບັນຫາ ແລະ ໄຟລ໌ບັນທຶກ (Logs)
ໄຟລ໌ບັນທຶກ (log) ຂອງ Samba ແມ່ນຕັ້ງຢູ່ໃນ /var/log/samba/
$ sudo tail -f /var/log/samba/log.smbd
ເຈົ້າສາມາດເພີ່ມລາຍລະອຽດຂອງ log ໄດ້ໂດຍການເພີ່ມຂໍ້ຄວາມນີ້ໃສ່ສ່ວນ [global] ຂອງໄຟລ໌ /etc/samba/smb.conf:
[global]
loglevel = 5
ເພື່ອທົດສອບຄວາມຖືກຕ້ອງຂອງໄວຍາກອນໃນໄຟລ໌ການຕັ້ງຄ່າ /etc/samba/smb.conf ໃຫ້ໃຊ້ຄຳສັ່ງ testparm. ຕົວຢ່າງຜົນທີ່ໄດ້ຮັບ:
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
ເພື່ອສະແດງການເຊື່ອມຕໍ່ Samba ໃນປັດຈຸບັນ, ໃຫ້ໃຊ້ຄຳສັ່ງ smbstatus. ຕົວຢ່າງຜົນທີ່ໄດ້ຮັບ:
Samba version 4.12.3
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
7259 jack jack 192.168.122.1 (ipv4:192.168.122.1:40148) SMB3_11 - partial(AES-128-CMAC)
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
family 7259 192.168.122.1 Fri May 29 14:03:26 2020 AEST - -
No locked files
ບາງສິ່ງທີ່ຄວນກວດເບິ່ງຖ້າເຈົ້າບໍ່ສາມາດເຂົ້າເຖິງບ່ອນແບ່ງປັນໄດ້.
-
Be sure that the user exists as a system user as well as a Samba user + Find
mariain the Samba database: + [source, console]
$ sudo pdbedit -L | grep maria maria:1002:
+
Confirm that maria also exists as a system user.
+
$ cat /etc/passwd | grep maria
maria:x:1002:1002::/home/maria:/bin/bash
+ . Check if the shared directory and sub-directories have the correct SELinux context.
+
$ ls -dZ /home/share
unconfined_u:object_r:samba_share_t:s0 /home/share
+ . Check if the system user has access permission to the shared directory.
+
$ ls -ld /home/share
drwxrwx---. 2 root myfamily 4096 May 29 14:03 /home/share
+
In this case, the user should be in the myfamily group.
-
Check in the configuration file
/etc/samba/smb.confthat the user and group have access permission.[family] comment = Family Share path = /home/share writeable = yes browseable = yes public = yes valid users = @myfamily create mask = 0660 directory mask = 0770 force group = +myfamilyIn this case, the user should be in the
myfamilygroup.
-
Check in the samba configuration file if the user/group has write permissions. + [source, conf]
[family]
comment = Family Share
path = /home/share
writeable = yes
browseable = yes
public = yes
valid users = @myfamily
create mask = 0660
directory mask = 0770
force group = +myfamily
+
In this example, the user should be in the myfamily group.
-
Check the share directory permissions.
$ ls -ld /home/share drwxrwx---. 2 root myfamily 4096 May 29 14:03 /home/shareThis example assumes the user is part of the
myfamilygroup which has read, write, and execute permissions for the folder.
Want to help? Learn how to contribute to Fedora Docs ›