Created
October 28, 2024 15:33
-
-
Save spookyuser/f6a773d39e8430e5b33d41a5d20cb6f1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Install required packages | |
sudo apt update | |
sudo apt install -y \ | |
avahi-daemon \ | |
avahi-discover \ | |
samba \ | |
samba-common-bin \ | |
tigervnc-standalone-server \ | |
libnss-mdns | |
# Configure Samba | |
sudo cat > /etc/samba/smb.conf << 'EOF' | |
[global] | |
workgroup = WORKGROUP | |
server string = %h server | |
mdns name = mdns | |
multicast dns register = yes | |
wins support = yes | |
dns proxy = no | |
log file = /var/log/samba/log.%m | |
max log size = 1000 | |
client min protocol = SMB2 | |
server min protocol = SMB2 | |
server role = standalone server | |
passdb backend = tdbsam | |
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 allow guests = yes | |
name resolve order = bcast host | |
security = user | |
guest account = nobody | |
usershare path = /var/lib/samba/usershare | |
usershare max shares = 100 | |
usershare owner only = false | |
force create mode = 0070 | |
force directory mode = 0070 | |
[homes] | |
comment = Home Directories | |
browseable = yes | |
read only = no | |
create mask = 0700 | |
directory mask = 0700 | |
valid users = %S | |
[Public] | |
comment = Public Files | |
path = /home/public | |
public = yes | |
writable = yes | |
create mask = 0664 | |
force create mode = 0664 | |
directory mask = 0775 | |
force directory mode = 0775 | |
guest ok = yes | |
EOF | |
# Create public share directory | |
sudo mkdir -p /home/public | |
sudo chmod 777 /home/public | |
# Configure Avahi for VNC advertisement | |
sudo cat > /etc/avahi/services/vnc.service << 'EOF' | |
<?xml version="1.0" standalone='no'?> | |
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"> | |
<service-group> | |
<name replace-wildcards="yes">%h</name> | |
<service> | |
<type>_rfb._tcp</type> | |
<port>5900</port> | |
</service> | |
</service-group> | |
EOF | |
# Configure Avahi for SMB advertisement | |
sudo cat > /etc/avahi/services/smb.service << 'EOF' | |
<?xml version="1.0" standalone='no'?> | |
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"> | |
<service-group> | |
<name replace-wildcards="yes">%h</name> | |
<service> | |
<type>_smb._tcp</type> | |
<port>445</port> | |
</service> | |
<service> | |
<type>_device-info._tcp</type> | |
<port>0</port> | |
<txt-record>model=RackMac</txt-record> | |
</service> | |
</service-group> | |
EOF | |
# Restart services | |
sudo systemctl restart avahi-daemon | |
sudo systemctl restart smbd | |
sudo systemctl restart nmbd | |
# Create Samba user (run this interactively) | |
echo "Create a Samba user matching your Linux username:" | |
echo "sudo smbpasswd -a \$USER" | |
# Setup VNC | |
mkdir -p ~/.vnc | |
vncpasswd | |
cat > ~/.vnc/xstartup << 'EOF' | |
#!/bin/sh | |
unset SESSION_MANAGER | |
unset DBUS_SESSION_BUS_ADDRESS | |
exec startxfce4 | |
EOF | |
chmod +x ~/.vnc/xstartup | |
vncserver :1 -geometry 1920x1080 -depth 24 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment