I believe the root cause of this problem is that when a Trash folder is created for a mounted partition it can be created without the sticky bit set. This appears to be the case when mounting to any of the "system_internal" mount paths There have been bugs reported regarding this problem against trash-cli and a workaround of adding a secret --trash-dir option to trash-empty in commit (2a83ed5) was added to allow trash-empty to empty a specified directory bypassing the sticky bit check. This clue leads us to the simplest solution. Simply set the sticky bit on the Trash folder in question with the command chmod +t /mount/point/.Trash This allows trash to function as intended. I've tested this approach on partitions mounted at /srv and /home and /media/$USER/VolumeName on Ubuntu 16.04 and Ubuntu 18.04 and the results were successful as expected. I would expect this approach to work on other `nixes as well.
Note: This approach won't work on filesystems that don't support setting the sticky bit such as NTFS and FAT but works great on EXT2/3/4 filesystems.
Here's a list of those "system_internal" mount paths:
"/", /* we already have "Filesystem root" in Nautilus */
"/bin",
"/boot",
"/compat/linux/proc",
"/compat/linux/sys",
"/dev",
"/etc",
"/home",
"/lib",
"/lib64",
"/libexec",
"/live/cow",
"/live/image",
"/media",
"/mnt",
"/opt",
"/rescue",
"/root",
"/sbin",
"/srv",
"/tmp",
"/usr",
"/usr/X11R6",
"/usr/local",
"/usr/obj",
"/usr/ports",
"/usr/src",
"/usr/xobj",
"/var",
"/var/crash",
"/var/local",
"/var/log",
"/var/log/audit", /* https://bugzilla.redhat.com/show_bug.cgi?id=333041 */
"/var/mail",
"/var/run",
"/var/tmp", /* https://bugzilla.redhat.com/show_bug.cgi?id=335241 */
"/proc",
"/sbin",
"/net",
"/sys",
Sources:
https://github.com/andreafrancia/trash-cli/issues/65
https://www.linuxquestions.org/questions/linux-desktop-74/how-do-empty-view-trash-files-on-mounted-volumes-899188/
https://en.wikipedia.org/wiki/Sticky_bit