Arch Linux'ta Nemo Share'i çalıştırma betiği

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.

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."
 
Sağ tık dosya paylaş özelliği ne işe yarıyor? Aynısı Windows'ta da var ama hiç kullanmadım.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…