File Sharing Management

Berbagi File Lokal Sederhana dengan Samba

Apa itu 'Samba'?

Samba adalah implementasi berkualitas tinggi dari server message block protocol (SMB). Awalnya dikembangkan oleh Microsoft untuk menghubungkan komputer windows bersama-sama melalui jaringan area lokal, sekarang banyak digunakan untuk komunikasi jaringan internal.

Apple dulu mempertahankan berbagi file independennya sendiri yang disebut "Apple Filing Protocol (AFP)", namun belakangan ini, apple juga beralih ke SMB.

Buat Folder

Membuat folder.

~]# mkdir --verbose /srv/public

Verify folder exists:

~]$ ls --directory /srv/public

Output:

/srv/public


Atur Konteks Keamanan Sistem File

Untuk memiliki akses baca dan tulis ke folder publik, konteks keamanan public_content_rw_t akan digunakan untuk panduan ini. Mereka yang ingin membaca saja dapat menggunakan: public_content_t.

Beri label file dan direktori yang telah dibuat dengan jenis public_content_rw_t untuk membagikannya dengan izin baca dan tulis melalui vsftpd. Layanan lain, seperti Apache HTTP Server, Samba, dan NFS, juga memiliki akses ke file berlabel jenis ini. Ingatlah bahwa boolean untuk setiap layanan harus diaktifkan sebelum mereka dapat menulis ke file berlabel jenis ini.

Tambahkan /srv/public sebagai "public_content_rw_t" di registri kustomisasi konteks keamanan sistem file lokal sistem:

~]# semanage fcontext --add --type public_content_rw_t "/srv/public(/.*)?"

Verifikasi security system:

~]# semanage fcontext --locallist --list

Output:

/srv/public(/.*)? all files system_u:object_r:public_content_rw_t:s0

Sekarang folder telah ditambahkan ke registri konteks keamanan sistem file sistem lokal; Perintah restorecon dapat digunakan untuk 'mengembalikan' konteks ke folder:

$~]# restorecon -Rv /srv/public

Verifikasi security:

~]$ ls --directory --context /srv/public/

Output:

unconfined_u:object_r:public_content_rw_t:s0 /srv/public/

Membuat Grup Berbagi

Untuk memungkinkan pengguna hanya membaca, atau membaca dan menulis akses ke folder berbagi publik, buat dua grup baru yang mengatur hak istimewa ini: public_readonly dan public_readwrite.

Akun pengguna dapat diberikan akses untuk membaca saja, atau membaca dan menulis dengan menambahkan akun mereka ke grup masing-masing (dan mengizinkan login melalui Samba membuat kata sandi smb). Proses ini ditunjukkan di bagian: "Uji Berbagi Publik (localhost)". 

Membuat izin grup publik:

~]# groupadd public_readonly

~]# groupadd public_readwrite

Membuat public group:

~]$ getent group public_readonly public_readwrite

Output:

public_readonly:x:1009:

public_readwrite:x:1010:

Atur Izin

Sekarang atur izin pengguna yang sesuai ke folder bersama publik:

Izin user dan grup dalam folder:

~]# chmod --verbose 2700 /srv/public

~]# setfacl -m group:public_readonly:r-x /srv/public

~]# setfacl -m default:group:public_readonly:r-x /srv/public

~]# setfacl -m group:public_readwrite:rwx /srv/public

~]# setfacl -m default:group:public_readwrite:rwx /srv/public

Verifikasi izin pengguna:

~]$ getfacl --absolute-names /srv/public

Output:

file: /srv/public

owner: root

group: root

flags: -s-

user::rwx

group::---

group:public_readonly:r-x

group:public_readwrite:rwx

mask::rwx

other::---

default:user::rwx

default:group::---

default:group:public_readonly:r-x

default:group:public_readwrite:rwx

default:mask::rwx

default:other::---

Samba Instalasi

~]# dnf install samba

Nama host (seluruh sistem)

Samba akan menggunakan nama komputer saat berbagi file; ada baiknya untuk mengatur nama host sehingga komputer dapat ditemukan dengan mudah di jaringan lokal.

Lihat hostname:

~]$ hostnamectl status

Jika Anda ingin mengubah nama host Anda menjadi sesuatu yang lebih deskriptif, gunakan perintah:

~]# hostnamectl set-hostname "gilang"

Firewall

~]# firewall-cmd --add-service=samba --permanent

~]# firewall-cmd --reload

Verifikasi firewall samba:

~]$ firewall-cmd --list-services

Output :

samba

Izin Menulis

Secara default Samba tidak diberikan izin untuk memodifikasi file apa pun dari sistem. Ubah konfigurasi keamanan sistem untuk memungkinkan Samba memodifikasi jalur sistem file apa pun yang memiliki konteks keamanan public_content_rw_t.

Untuk kenyamanan, Fedora memiliki SELinux Boolean bawaan untuk tujuan ini yang disebut: smbd_anon_write, mengatur ini ke true akan memungkinkan Samba untuk menulis di jalur sistem file apa pun yang telah diatur ke konteks keamanan public_content_rw_t.

Bagi mereka yang berharap Samba hanya memiliki akses baca-saja ke folder berbagi publik mereka, mereka dapat memilih lewati langkah ini dan tidak mengatur boolean ini.

~]# setsebool -P smbd_anon_write=1

Verifkasi perintah:

$ getsebool smbd_anon_write

Output:

smbd_anon_write --> on

Layanan Samba 'smb'

Layanan Samba "Server Message Block" (SMB) adalah untuk berbagi file dan printer melalui jaringan lokal.

Enable and start layanan samba:

~]# systemctl enable smb.service

~]# systemctl start smb.service

Verifikasi smb service:

~]# systemctl status smb.service

Uji Berbagi Publik (localhost)

Untuk menunjukkan mengizinkan dan menghapus akses ke folder bersama publik, buat pengguna baru bernama samba_test_user, pengguna ini akan diberikan izin terlebih dahulu untuk membaca folder publik, lalu akses untuk membaca dan menulis folder publik.

Proses yang sama yang ditunjukkan di sini dapat digunakan untuk memberikan akses ke folder bersama publik Anda kepada pengguna lain di komputer Anda. Samba_test_user akan dibuat sebagai akun pengguna yang terkunci, melarang login normal ke komputer.

Membuat user, dan mengunci akun.

~]# useradd gilang

~]# passwd --lock gilang

Membuat password akun:

~]# smbpasswd -a gilang

Uji akses Baca Saja ke Berbagi Publik:

Menambahkan gilang ke public group:

~]# gpasswd --add gilang public_readonly

Login (public folder):

~]$ smbclient --user=gilang //localhost/public

Test membuat file

smb: \> ls

smb: \> mkdir error

smb: \> exit

menghapus gilang dari grup publik:

gpasswd --delete gilang public_readonly

Uji akses Baca dan Tulis ke Berbagi Publik:

Menambahkan gilang ke public group:

~]# gpasswd --add samba_test_user public_readwrite

Login (public folder):

~]$ smbclient --user=samba_test_user //localhost/public

Test membuat dan menghapus file

smb: \> ls

smb: \> mkdir success

smb: \> rmdir success

smb: \> exit

menghapus gilang dari grup publik:

~]# gpasswd --delete samba_test_user public_readwrite

Setelah pengujian selesai, untuk keamanan, nonaktifkan kemampuan samba_test_user untuk masuk melalui samba.

Mengeluarkan gilang login via samba:

~]# smbpasswd -d samba_test_user

Berikan Izin Samba untuk Berbagi Folder Publik

Set SELinux Boolean allowing Samba to read and write to home folders:

~]# setsebool -P samba_enable_home_dirs=1

Verify bool has been correctly set:

$ getsebool samba_enable_home_dirs

Output:

samba_enable_home_dirs --> on

Berbagi home file denganTambahkan yang berikut ini ke file smb.conf sistem:

# The home folder dynamically links to the user home.

# If 'bob' user uses Samba:

# The homes section is used as the template for a new virtual share:

# [homes]

# ...   (various options)

# A virtual section for 'bob' is made:

# Share is modified: [homes] -> [bob]

# Path is added: path = /home/bob

# Any option within the [homes] section is appended.

# [bob]

#       path = /home/bob

# ...   (copy of various options)

# here is our share,

# same as is included in the Fedora default configuration.

[homes]

        comment = Home Directories

        valid users = %S, %D%w%S

        browseable = No

        read only = No

        inherit acls = Yes

Muat Ulang Konfigurasi Samba

~]# smbcontrol all reload-config

Uji Home Directory Sharing

Ganti user dan buat folder di home directory:

~]# su samba_test_user

samba_test_user:~]$ cd ~

samba_test_user:~]$ mkdir --verbose test_folder

samba_test_user:~]$ exit

login via Samba:

~]# smbpasswd -e gilang

Login to the local Samba Service (samba_test_user home folder):

$ smbclient --user=gilang //localhost/gilang

Test (all commands should complete without error):

smb: \> ls

smb: \> ls test_folder

smb: \> rmdir test_folder

smb: \> mkdir home_success

smb: \> rmdir home_success

smb: \> exit

Disable gilang untuk login via Samba:

~]# smbpasswd -d gilang

 



Komentar