Nemo'nun sag tik menusundeki paylasim ozelligini yukleyen ve gerekli konfigurasyonlari yapan script. Yapay zekaya yazdirdim.
NO: Resimdeki uyari sanirim misafirler icin. Misafir paylasimi yapmadigim icin ugrasmadim.
Oncelikle Nemo kurulu olmali.
Bilinen sorunlar:
Normalde Debian/Ubuntu tabaninda da olmasi lazim ama tam test etmedigim icin Arch kategorisinde actim.
Diger dagitimlarda denemek isterseniz
NOT: UFW yukluyor. Eger firewall istemiyorsaniz o kisimlari silin.
Cok onemli NOT: Arch'ta sanirim smb.conf dosyasi gelmiyor. Oncelikle bu dosyayi olusturun:
ve icine bunu yapistirin:
Script:
NO: Resimdeki uyari sanirim misafirler icin. Misafir paylasimi yapmadigim icin ugrasmadim.
Oncelikle Nemo kurulu olmali.
sudo pacman -S nemoBilinen sorunlar:
- Samba kullanicisi olarak kendi kullanici adinizi girmeniz gerekiyor.
- Duzgun bir kontrol mekanizmasi yok. Belki ilerde eklerim bir seyler ama bu hali isimi gordugu surece gelistirmeyi dusunmuyorum.
Normalde Debian/Ubuntu tabaninda da olmasi lazim ama tam test etmedigim icin Arch kategorisinde actim.
Diger dagitimlarda denemek isterseniz
pacman kismini silip sudo apt install nemo-share samba ufw yazin.NOT: UFW yukluyor. Eger firewall istemiyorsaniz o kisimlari silin.
Cok onemli NOT: Arch'ta sanirim smb.conf dosyasi gelmiyor. Oncelikle bu dosyayi olusturun:
Bash:
sudo nano /etc/samba/smb.conf
Kod:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare max shares = 100
usershare allow guests = yes
usershare owner only = no
usershare path = /var/lib/samba/usershares
[printers]
comment = All Printers
browseable = no
path = /var/tmp
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
Script:
Bash:
#!/bin/bash
set -e
# Paketlerin kurulumu
echo "[+] Installing required packages (nemo-share, samba, ufw, and dependencies)..."
sudo pacman -S --noconfirm nemo-share samba ufw
# Samba kullanıcısı ve şifresi oluşturma (interaktif)
echo "[+] Creating Samba user..."
read -p "Enter Samba username: " SAMBA_USER
while true; do
read -s -p "Enter Samba password: " SAMBA_PASS
echo
read -s -p "Confirm Samba password: " SAMBA_PASS_CONFIRM
echo
if [ "$SAMBA_PASS" = "$SAMBA_PASS_CONFIRM" ]; then
break
else
echo "[-] Passwords do not match. Please try again."
fi
done
# Samba kullanıcısını oluşturma
echo "[+] Adding Samba user '$SAMBA_USER'..."
echo -e "$SAMBA_PASS\n$SAMBA_PASS" | sudo smbpasswd -a "$SAMBA_USER"
# Grup oluşturma ve kullanıcı ekleme
echo "[+] Creating and configuring groups..."
# Samba grubu oluştur (varsa hata vermesin)
sudo groupadd -f samba
sudo groupadd -f sambashare
# Mevcut kullanıcıyı gruplara ekle
USER_NAME=$(whoami)
sudo usermod -aG samba "$SAMBA_USER"
sudo usermod -aG users "$USER_NAME"
sudo gpasswd --add "$USER_NAME" sambashare
# UFW kuralları
echo "[+] Configuring UFW firewall rules for Samba..."
sudo ufw allow 137/udp
sudo ufw allow 138/udp
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw reload
# Samba servislerini başlatma ve etkinleştirme
echo "[+] Enabling and starting Samba services..."
sudo systemctl enable smb nmb
sudo systemctl start smb nmb
# izinler
echo "[+] Creating usershare directory with correct permissions..."
sudo mkdir -p /var/lib/samba/usershares
sudo chown root:users /var/lib/samba/usershares
sudo chmod 1770 /var/lib/samba/usershares
# smb.conf düzenlemesi
CONF_FILE="/etc/samba/smb.conf"
backup_conf() {
sudo cp "$CONF_FILE" "$CONF_FILE.bak_$(date +%s)"
}
echo "[+] Checking smb.conf for necessary parameters..."
NEEDLE1="usershare allow guests"
NEEDLE2="usershare owner only"
NEEDLE3="usershare path"
add_line_if_missing() {
grep -q "$1" "$CONF_FILE" || echo " $1" | sudo tee -a "$CONF_FILE" > /dev/null
}
# Eklemeden önce yedek al
backup_conf
# Eklemeleri yap
add_line_if_missing "$NEEDLE1 = Yes"
add_line_if_missing "$NEEDLE2 = no"
add_line_if_missing "$NEEDLE3 = /var/lib/samba/usershares"
# Samba restart
echo "[+] Restarting Samba services..."
sudo systemctl restart smb nmb
echo -e "\n✅ Kurulum tamamlandı. Paylaşım yapmak için yeniden oturum açman gerekebilir."