Hmmm… some experimentation has yielded additional questions. As I said I don’t like having a non-executable files listed as executable (777). From Earth (remember, Jupiter = Synology and Earth = Ubuntu Desktop), over NFS, a chmod(1) strips the ACLs:
Jupiter:touch /Videos/file
Jupiter:ll /Videos/file
-rwxrwxrwx+ 1 andrew defaria 0 May 28 10:31 /Videos/file*
Jupiter:
Now chmod it from Earth:
Earth:chmod 644 /Videos/file
Earth:ll /Videos/file
-rw-r--r-- 1 andrew defaria 0 May 28 10:33 /Videos/file
Earth:
Even Jupiter sees the file with the ACLs stripped:
Jupiter:ll /Videos/file
-rw-r--r-- 1 andrew defaria 0 May 28 10:33 /Videos/file
Jupiter:
And even if I recreate /Videos/file from Jupiter and use the chmod(1) command to change the permissions, it still strips off the ACLs:
Jupiter:rm /Videos/file
Jupiter:touch /Videos/file
Jupiter:ll /Videos/file
-rwxrwxrwx+ 1 andrew defaria 0 May 28 10:36 /Videos/file*
Jupiter:chmod 644 /Videos/file
Jupiter:ll /Videos/file
-rw-r--r-- 1 andrew defaria 0 May 28 10:36 /Videos/file
Jupiter:
Do I have to tolerate non-executable files to be executable in order for the ACLs to remain and for the Plex web page to be able to delete files?
Further experimentation yields the following:
Jupiter:mkdir /Videos/dir
Jupiter:ll -d /Videos/dir
drwxrwxrwx+ 1 andrew defaria 0 May 28 10:50 /Videos/dir/
Jupiter:touch /Videos/dir/file
Jupiter:ll /Videos/dir/file
-rwxrwxrwx+ 1 andrew defaria 0 May 28 10:50 /Videos/dir/file*
Jupiter:chmod 644 /Videos/dir/file
Jupiter:ll /Videos/dir/file
-rw-r--r-- 1 andrew defaria 0 May 28 10:52 /Videos/dir/file
Jupiter:docker exec -u 297536 -it plex bash
plex@Jupiter:/$ ls -ld /Videos/dir
drwxrwxrwx 1 1000 1000 8 May 28 10:52 /Videos/dir
plex@Jupiter:/$ ls -ld /Videos/dir/file
-rw-r--r-- 1 1000 1000 0 May 28 10:52 /Videos/dir/file
plex@Jupiter:/$ rm /Videos/dir/file
rm: remove write-protected regular empty file '/Videos/dir/file'? y
plex@Jupiter:/$
So I can find /Videos/ -type f -exec chmod 644 {} + to remove execute permission on files only while leaving the directories untouched and thus with their ACLs intact. The plex user in the Docker container is able to remove such files. I’m not sure if this is a good way to handle this.
Also I have been using ffmpeg to convert my files to HEVC form where they are smaller. I’m doing this from Earth because it has the GPUs that make this transcoding process fast. I then move the converted videos back in place. When doing this the ACLs are lost.
So is leaving the ACLs on the directories only a good way to allow the Plex web app to be able to conveniently delete videos?
Note also that while an ll from Jupiter shows the ‘+’ indicating ACLs, it doesn’t from inside the container. I find that confusing.
I also don’t know of a way to manipulate ACLs on the Synology via the command line, just from that GUI.
Thoughts?