Kad je potrebno da deljenim fajlovima na Linuks sistemima treba da pristupe Vindovs korisnici obično se koristi Samba servis, koji ima poprilično dobar sistem za upravljanje korisnicima ali se ne preporučuje na javnim serverima već isključivo na intranet lokacijama u firmama. U ovom tekstu ćemo instalirati Sambu na CentOS 7 Linuksu, i iskonfigurisati jedan deljeni folder sa par korisnika za pristup kao i jedan deljeni folder sa mogućnošću korišćenja od strane korisnika koji nemaju nikakav nalog (takozvani Guest korisnici)

# Instalacija potrebnih paketa za Sambu
yum install samba samba-common
mv /etc/samba/smb.conf /etc/samba/smb.conf.ORIGINAL # Pravićemo ovaj fajl od 0

# Globalne varijable za Samba Server, samo se jednom postavljaju
touch /etc/samba/smb.conf
if [ `grep "[global]" /etc/samba/smb.conf | wc -l ` -eq 0 ] ; then 
echo "[global]" >> /etc/samba/smb.conf 
echo "workgroup = WORKGROUP" >> /etc/samba/smb.conf 
echo "server string = Razmena fajlova %v" >> /etc/samba/smb.conf 
echo "netbios name = centos" >> /etc/samba/smb.conf 
echo "security = user" >> /etc/samba/smb.conf
echo "map to guest = bad user" >> /etc/samba/smb.conf 
echo "dns proxy = no" >> /etc/samba/smb.conf
fi
cat /etc/samba/smb.conf

# Start Sambe i start prilikom butovanja sistema
systemctl restart smb.service
systemctl restart nmb.service
systemctl enable smb.service
systemctl enable nmb.service

# Ako koristite firewalld omogućite pristup Sambi
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

# Zamenu firewalld sa iptablesom imate na ovom linku, ako je potrebno: 
# https://kompjuteras.com/kako-zameniti-firewalld-sa-iptables-om-na-centos-7/
# Ako koristite iptables radite to na ovaj način (samo bez komentara):
# iptables -I INPUT -p tcp –dport 137 -j ACCEPT
# iptables -I INPUT -p tcp –dport 138 -j ACCEPT
# iptables -I INPUT -p tcp –dport 139 -j ACCEPT
# iptables -I INPUT -p tcp –dport 445 -j ACCEPT
# service iptables save
# service iptables restart

# Ovim ste završili core instalacije i ostaje vam da podesite deljene foldere
# i pristupe njima

Pristup Sambi za dva korisnika ali pri tom da svaki od tih korisnika sme da menja i briše samo svoje fajlove, dok ove druge može samo da gleda (ili prekopira kod sebe negde pa menja) bi se postavio na sledeći način. Koristimo varijable pa vi postavite vaše…

##### SHARE GDE KORISNIK MOŽE DA MENJA SAMO SVOJE FAJLOVE ##########
FOLDER_ZA_SAMBA_FAJLOVE="/home/Samba/KorisnickiPodaci" #Primer
SAMBA_KORISNIK=draza #Primer
SAMBA_GRUPA=pristup_public #Primer
NAZIV_SAMBA_SHAREA="Korisnicki Fajlovi" #Primer
####################################################################

# Ova grupa će imati prava pristupa tom deljenom folderu
groupadd ${SAMBA_GRUPA}

echo "#============== Korisnicki Folderi ==============#" >> /etc/samba/smb.conf
echo "#Korisnik moze da obrise/menja samo svoje fajlove" >> /etc/samba/smb.conf
echo "[${NAZIV_SAMBA_SHAREA}]" >> /etc/samba/smb.conf
echo "path = ${FOLDER_ZA_SAMBA_FAJLOVE}" >> /etc/samba/smb.conf
echo "valid users = @${SAMBA_GRUPA}" >> /etc/samba/smb.conf
echo "guest ok = no" >> /etc/samba/smb.conf
echo "writable = yes" >> /etc/samba/smb.conf
echo "browsable = yes" >> /etc/samba/smb.conf
cat /etc/samba/smb.conf

# Kreiranje prvog korisnika
useradd -M -s /bin/false ${SAMBA_KORISNIK}
usermod -a -G ${SAMBA_GRUPA} ${SAMBA_KORISNIK}
smbpasswd -a ${SAMBA_KORISNIK}

# Kreiranje potrebnih foldera
mkdir -p ${FOLDER_ZA_SAMBA_FAJLOVE}
chown -R ${SAMBA_KORISNIK}:${SAMBA_GRUPA} ${FOLDER_ZA_SAMBA_FAJLOVE}
chown nobody:${SAMBA_GRUPA} ${FOLDER_ZA_SAMBA_FAJLOVE}
chmod 1075 ${FOLDER_ZA_SAMBA_FAJLOVE}
chcon -t samba_share_t ${FOLDER_ZA_SAMBA_FAJLOVE} # Selinux - ako koristite

# Ako svaki korisnik treba da ima pravo da briše i fajlove drugih 
# korisnika onda postaviti ove permisije:
# chmod 0075 ${FOLDER_ZA_SAMBA_FAJLOVE}

# Dodavanje drugog Samba korisnika
SAMBA_NOVI_KORISNIK=peja
SAMBA_GRUPA=${SAMBA_GRUPA}
useradd -M -s /bin/false ${SAMBA_NOVI_KORISNIK}
usermod -a -G ${SAMBA_GRUPA} ${SAMBA_NOVI_KORISNIK}
smbpasswd -a ${SAMBA_NOVI_KORISNIK}

# Samba restart
systemctl restart smb.service
systemctl restart nmb.service

# Sad probajte pristup iz Vindovs eksplorera sa putanjom:
# \\ip_adresa_samba_servera\Korisnicki Fajlovi

# Za dodavanje još korisnika ponovite ovaj deo (DODAVANJE DRUGOG SAMBA KORISNIKA) 
# sa drugim varijablama naravno

Ako pristup Samba folderu treba da imaju svi, bez ikakve autentifikacije i bilo čega – što uzgred rečeno nije preporučljivo, „config“ bi se sastojao iz sledećih komandi (postavite samo vaše varijable). U samom config-u imate zakomentarisano i ako želite da Guest korisnici ne mogu da brišu fajlove koje su napravili korisnici koji već imaju nalog na tom Samba Serveru i već su se ranije logovali.

##### SHARE GDE SVAKO MOŽE DA PRISTUPA BEZ LOGIN PODATAKA ##########
######### TAKOZVANI GUEST PRISTUP (nije preporučljivo) ##############
FOLDER_ZA_JAVNE_SAMBA_FAJLOVE="/home/Samba/JavniFolder" # Primer
NAZIV_SAMBA_SHAREA="Javni Folder" # Primer
####################################################################

echo "#============== JAVNI FOLDER ==============#" >> /etc/samba/smb.conf
echo "#Svi imaju read-write privilegije" >> /etc/samba/smb.conf
echo "[${NAZIV_SAMBA_SHAREA}]" >> /etc/samba/smb.conf
echo "path = ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE}" >> /etc/samba/smb.conf
echo "browsable = yes" >> /etc/samba/smb.conf
echo "writable = yes" >> /etc/samba/smb.conf
echo "guest ok = yes" >> /etc/samba/smb.conf
echo "read only = no" >> /etc/samba/smb.conf

# Kreiranje potrebnih foldera
mkdir -p ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE}
chmod -R 0777 ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE} # Ako bas svako treba da ima r+w
chown -R nobody:nobody ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE}
chcon -t samba_share_t ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE}
# Ako Guest korisnici mogu da brišu i menjaju samo svoje fajlove, ne i fajlove 
# drugih Samba ili Linuks korisnika onda zviznuti ove permisije
# chmod -R 1777 ${FOLDER_ZA_JAVNE_SAMBA_FAJLOVE} 

# Samba restart
systemctl restart smb.service
systemctl restart nmb.service

# Probajte iz Vindovs eksplorera: \\IP_ADRESA_SAMBA_SERVERA\Javni Folder

Manipulisanje Samba korisnicima bi bilo na nivou Linuks permisija (ko sme a ko ne da šta tu dira) ali što se tiče samih Samba korisnika na CentOS 7 bi brisanje korisnika ili pregled išao kroz komande…

# Listing svih Samba korisnika na serveru
pdbedit -L -v
# Brisanje Samba korisnika, u ovom slučaju korisnika draza
pdbedit -x draza
userdel draza