Nemo'nun sag tik menusundeki paylasim ozelligini yukleyen ve gerekli konfigurasyonlari yapan script. Yapay zekaya yazdirdim.

1754426126952.webp

NO: Resimdeki uyari sanirim misafirler icin. Misafir paylasimi yapmadigim icin ugrasmadim.

Oncelikle Nemo kurulu olmali.

sudo pacman -S nemo

Bilinen 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
ve icine bunu yapistirin:
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."