effsyno
commit
4259a7e58b
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Synology sucks so I have to do some gross hacks.
|
||||
#
|
||||
# Both of these are already mounted as /volumeUSBn/usbshare
|
||||
# But fuck it, we'll mount them by UUID again.
|
||||
mount -U 6a748cf9-e31c-430c-9017-e2709338495d /volume1/main/video
|
||||
mount -U 8681ad07-6f73-4faa-9424-a84283985483 /volume1/main/gen
|
||||
# Fuck their samba share configuation.
|
||||
mv /etc/samba/smb.share.conf /etc/samba/smb.share.old
|
||||
# We hid the file here, but it's not executable. It's not a script.
|
||||
cp /usr/local/etc/rc.d/smb.sh /etc/samba/smb.share.conf
|
||||
# Restart samba
|
||||
synopkg restart SMBService
|
||||
# Fuck Synology DSM
|
@ -0,0 +1,48 @@
|
||||
# 99effsyno - a script for Synology
|
||||
|
||||
DSM sucks. I hate it. I absolutely hate what it does to the underlying operating system. I hate how idiotic it is
|
||||
regarding mounts. I hate how things are it's way. I mostly hate it because I didn't ask for pay for these features
|
||||
and they seemingly give you no way of telling them to GTFO.
|
||||
|
||||
99effsyno is just a couple of things that make the synology do *the absolute minimum* I expect to be able to do. It's
|
||||
name comes from the shell script used to achieve this; 99 is just an execution priority, effsyno is fuck synology....
|
||||
because fuck DSM.
|
||||
|
||||
## What sucks
|
||||
|
||||
I have a USB enclosure that holds a lot of disks. By default...Synology mounts any valid partition to
|
||||
`/volumeUSB*n*/usbshare` where *n* is the number assigned. It then automatically creates a samba share configuration
|
||||
that shares it as usbshare*n*...where *n* is once again the drive number.
|
||||
|
||||
This is all you're given. You cannot rename the share in DSM, you cannot move it.
|
||||
|
||||
To complicate this, while I can achieve exactly what I want to do through standard command line hacking, these changes
|
||||
don't persist between reboots. The two biggies are `/etc/fstab` and samba configurations are generated dynamically. So
|
||||
the idea of just adding the UUID to `/etc/fstab` and modding `/etc/samba/smb.share.conf` the usual way are out.
|
||||
|
||||
## Other Oddities
|
||||
|
||||
They seem to have a lof of abstraction between you and the hardware. My internal RAID1 is actually LVM2 on /dev/md2. This
|
||||
sucks because it adds another layer of useless complexity if I want to remount this later. I mean it can be done...I just
|
||||
have to look all that up. It's going to happen...I'm not sticking with this hardware for long.
|
||||
|
||||
I also noticed that even manual mounts from command line have a systemd service created for them. No...I want out.
|
||||
|
||||
## The Hack
|
||||
|
||||
While it generates a lot of configs and wipes directories out on boot, I did find one little trick that still worked:
|
||||
`/usr/local/etc/rc.d` - We can stick shell scripts here, they'll run at boot, and they'll persist between reboots.
|
||||
|
||||
There are two files: `99effsyno.sh` and `smb.sh`. The `smb.sh` file is not actually a script. I only gave it the .sh filename
|
||||
to ensure it didn't get deleted. This is actually our replacement samba configuration. *This file should not be +x!*
|
||||
The original varient had a simple exit routine and tail command to output just the .conf; this is easier.
|
||||
|
||||
`99effsyno.sh` is the executable script that does the following:
|
||||
|
||||
* mounts the external drives by UUID to points I specify
|
||||
* replaces the samba share configuration
|
||||
* reboots samba
|
||||
|
||||
## At Your Own Risk
|
||||
|
||||
Don't do this. I'm not taking responsibility and Synology will tell you to GTFO and never give you support again.
|
@ -0,0 +1,57 @@
|
||||
[main]
|
||||
recycle bin admin only=no
|
||||
ftp disable modify=no
|
||||
ftp disable download=no
|
||||
write list=@administrators,dewdude
|
||||
browseable=no
|
||||
read list=nobody,nobody
|
||||
hide unreadable=yes
|
||||
win share=yes
|
||||
enable recycle bin=no
|
||||
invalid users=nobody,nobody
|
||||
valid users=@administrators,dewdude
|
||||
ftp disable list=no
|
||||
edit synoacl=yes
|
||||
writeable=yes
|
||||
guest ok=no
|
||||
path=/volume1/main
|
||||
skip smb perm=yes
|
||||
comment="root of RAID1"
|
||||
[music]
|
||||
recycle bin admin only=no
|
||||
ftp disable modify=no
|
||||
ftp disable download=no
|
||||
write list=nobody,nobody
|
||||
browseable=yes
|
||||
read list=nobody,nobody
|
||||
hide unreadable=no
|
||||
win share=no
|
||||
enable recycle bin=no
|
||||
invalid users=nobody,nobody
|
||||
valid users=nobody,@administrators,nobody
|
||||
ftp disable list=no
|
||||
edit synoacl=no
|
||||
writeable=no
|
||||
guest ok=yes
|
||||
path=/volume1/main/music
|
||||
skip smb perm=no
|
||||
comment="Music Read-Only"
|
||||
[video]
|
||||
recycle bin admin only=no
|
||||
ftp disable modify=no
|
||||
ftp disable download=no
|
||||
write list=nobody,nobody
|
||||
browseable=yes
|
||||
read list=nobody,nobody
|
||||
hide unreadable=no
|
||||
win share=no
|
||||
enable recycle bin=no
|
||||
invalid users=nobody,nobody
|
||||
valid users=nobody,@administrators,nobody
|
||||
ftp disable list=no
|
||||
edit synoacl=no
|
||||
writeable=no
|
||||
guest ok=yes
|
||||
path=/volume1/main/video
|
||||
skip smb perm=no
|
||||
comment="Video Read-Only"
|
Loading…
Reference in New Issue