Skip to content

Commit 2790659

Browse files
author
SD-ITLab
authored
Create sambasetup.sh
1 parent 846dcda commit 2790659

1 file changed

Lines changed: 159 additions & 0 deletions

File tree

sambasetup.sh

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
#!/bin/bash
2+
3+
# Funktion zur Überprüfung, ob ein Paket installiert ist
4+
is_installed() {
5+
dpkg -l | grep -q $1
6+
}
7+
8+
# Installiere Samba, falls noch nicht installiert
9+
if ! is_installed samba; then
10+
echo "Samba ist nicht installiert. Installiere Samba..."
11+
sudo apt-get update
12+
sudo apt-get install -y samba
13+
fi
14+
15+
# Funktion zur Erstellung der Gruppe sambashare, falls nicht vorhanden
16+
create_sambashare_group() {
17+
if ! grep -q "^sambashare:" /etc/group; then
18+
echo "Erstelle Gruppe sambashare..."
19+
sudo groupadd sambashare
20+
else
21+
echo "Gruppe sambashare existiert bereits."
22+
fi
23+
}
24+
25+
# Funktion zum Hinzufügen eines Samba-Benutzers
26+
add_samba_user() {
27+
read -p "Geben Sie den Samba-Benutzernamen ein: " SAMBA_USER
28+
read -s -p "Geben Sie das Passwort für $SAMBA_USER ein: " SAMBA_PASS
29+
echo
30+
31+
read -p "Geben Sie den Pfad für das Benutzerverzeichnis an (z.B. /home/mirror/samba/$SAMBA_USER): " USER_PATH
32+
33+
# Erstelle das Benutzerverzeichnis
34+
sudo mkdir -p $USER_PATH
35+
sudo chown $SAMBA_USER:$SAMBA_USER $USER_PATH
36+
sudo chmod 0700 $USER_PATH
37+
38+
# Benutzer hinzufügen und Passwort setzen
39+
sudo useradd -m -d $USER_PATH -s /sbin/nologin $SAMBA_USER
40+
echo -e "$SAMBA_PASS\n$SAMBA_PASS" | sudo smbpasswd -a $SAMBA_USER
41+
42+
# Benutzer zur Gruppe sambashare hinzufügen
43+
sudo usermod -aG sambashare $SAMBA_USER
44+
45+
# Home-Share zur smb.conf hinzufügen
46+
sudo bash -c "cat >> /etc/samba/smb.conf" <<EOL
47+
48+
[$SAMBA_USER]
49+
path = $USER_PATH
50+
valid users = $SAMBA_USER
51+
read only = no
52+
browsable = no
53+
create mask = 0700
54+
directory mask = 0700
55+
EOL
56+
57+
echo "Benutzer $SAMBA_USER wurde hinzugefügt und Benutzerverzeichnis erstellt."
58+
# Samba-Dienste neu starten
59+
echo "Starte Samba-Dienste neu..."
60+
sudo systemctl restart smbd
61+
sudo systemctl restart nmbd
62+
}
63+
64+
# Funktion zum Entfernen eines Samba-Benutzers
65+
delete_samba_user() {
66+
read -p "Geben Sie den Samba-Benutzernamen ein, den Sie entfernen möchten: " SAMBA_USER
67+
sudo smbpasswd -x $SAMBA_USER
68+
sudo userdel -r $SAMBA_USER
69+
70+
# Entferne die Home-Share-Konfiguration aus smb.conf
71+
sudo sed -i "/\[$SAMBA_USER\]/,/^$/d" /etc/samba/smb.conf
72+
73+
echo "Benutzer $SAMBA_USER wurde entfernt."
74+
# Samba-Dienste neu starten
75+
echo "Starte Samba-Dienste neu..."
76+
sudo systemctl restart smbd
77+
sudo systemctl restart nmbd
78+
}
79+
80+
# Funktion zum Hinzufügen einer Samba-Freigabe für alle Benutzer
81+
add_common_samba_share() {
82+
read -p "Geben Sie den Namen der Freigabe ein: " SHARE_NAME
83+
read -p "Geben Sie den Pfad zur Freigabe ein (z.B. /home/mirror/samba): " SHARE_PATH
84+
85+
# Erstelle das Verzeichnis für die Freigabe, falls es nicht existiert
86+
if [ ! -d "$SHARE_PATH" ]; then
87+
echo "Erstelle Verzeichnis $SHARE_PATH..."
88+
sudo mkdir -p $SHARE_PATH
89+
fi
90+
91+
# Setze die entsprechenden Berechtigungen für das Freigabeverzeichnis
92+
echo "Setze Berechtigungen für $SHARE_PATH..."
93+
sudo chown -R $USER:$USER $SHARE_PATH
94+
sudo chmod -R 0770 $SHARE_PATH
95+
96+
# Freigabekonfiguration zur smb.conf hinzufügen
97+
echo "Füge Freigabekonfiguration zur smb.conf hinzu..."
98+
sudo bash -c "cat >> /etc/samba/smb.conf" <<EOL
99+
100+
[$SHARE_NAME]
101+
path = $SHARE_PATH
102+
valid users = @sambashare
103+
read only = no
104+
browsable = yes
105+
create mask = 0770
106+
directory mask = 0770
107+
EOL
108+
109+
# Samba-Dienste neu starten
110+
echo "Starte Samba-Dienste neu..."
111+
sudo systemctl restart smbd
112+
sudo systemctl restart nmbd
113+
114+
echo "Freigabe $SHARE_NAME wurde hinzugefügt."
115+
}
116+
117+
# Funktion zum Entfernen einer Samba-Freigabe
118+
delete_samba_share() {
119+
read -p "Geben Sie den Namen der Freigabe ein, die Sie entfernen möchten: " SHARE_NAME
120+
121+
# Entferne die Freigabekonfiguration aus smb.conf
122+
sudo sed -i "/\[$SHARE_NAME\]/,/^$/d" /etc/samba/smb.conf
123+
124+
# Samba-Dienste neu starten
125+
echo "Starte Samba-Dienste neu..."
126+
sudo systemctl restart smbd
127+
sudo systemctl restart nmbd
128+
129+
echo "Freigabe $SHARE_NAME wurde entfernt."
130+
}
131+
132+
# Funktion zur Auflistung aller Samba-Benutzer
133+
list_samba_users() {
134+
echo "Liste der Samba-Benutzer:"
135+
sudo pdbedit -L
136+
}
137+
138+
# Hauptmenü
139+
while true; do
140+
echo "=========================="
141+
echo " Samba Verwaltung"
142+
echo "=========================="
143+
echo "1. Samba-Benutzer hinzufügen"
144+
echo "2. Samba-Benutzer entfernen"
145+
echo "3. Gemeinsame Samba-Freigabe hinzufügen"
146+
echo "4. Samba-Freigabe entfernen"
147+
echo "5. Liste der Samba-Benutzer anzeigen"
148+
echo "6. Beenden"
149+
read -p "Wählen Sie eine Option [1-6]: " option
150+
case $option in
151+
1) create_sambashare_group && add_samba_user ;;
152+
2) delete_samba_user ;;
153+
3) add_common_samba_share ;;
154+
4) delete_samba_share ;;
155+
5) list_samba_users ;;
156+
6) exit 0 ;;
157+
*) echo "Ungültige Option. Bitte wählen Sie eine Zahl zwischen 1 und 6." ;;
158+
esac
159+
done

0 commit comments

Comments
 (0)