<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Permissions on blog.iankulin.com</title><link>https://blog.iankulin.com/tags/permissions/</link><description>Recent content in Permissions on blog.iankulin.com</description><generator>Hugo</generator><language>en-AU</language><lastBuildDate>Thu, 30 Mar 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.iankulin.com/tags/permissions/index.xml" rel="self" type="application/rss+xml"/><item><title>rsync episode IV - a sudo hope</title><link>https://blog.iankulin.com/rsync-episode-iv-a-sudo-hope/</link><pubDate>Thu, 30 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.iankulin.com/rsync-episode-iv-a-sudo-hope/</guid><description>&lt;p&gt;With all those earlier rsync bumps out of the way, I was ready to try my first rsync backup at the command line to sync my movies directory on the NAS to a (NTFS formatted) USB drive plugged into the same NAS. This is to be one of the simplest since there&amp;rsquo;s no remote server involved, just copying from mount point directory to another - so no drama with remote permissions.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a lot of files involved, and I knew from running the dry run that there would be a lot of output. I could see a few error messages, but each of the file copies was taking a while so I was confident they, at least, were working. If you missed the last episode, here&amp;rsquo;s where I landed for this rsync command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync -avi --exclude &amp;#39;*@eaDir*&amp;#39; /volume1/media/video/Movies/ /volumeUSB1/usbshare/media/video/Movies --del
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Before I worried about the error messages, I had a look to see if the files had been copied correctly, but they had not. Even though each file was taking about the right amount of time to copy, the new files were not making it to the destination directories. Nor did they seem to be anywhere else. So I guess go back to the error messages and try to understand them. Here&amp;rsquo;s a &lt;em&gt;very&lt;/em&gt; condensed selection of the output.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: failed to set times on &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)&amp;#34;: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f+++++++++ Jungle Book (1942)/Jungle Book (1942).mkv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f+++++++++ Jungle Book (1942)/trailer.mp4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: mkstemp &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)/.Jungle Book (1942).mkv.Wd141R&amp;#34; failed: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: mkstemp &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)/.trailer.mp4.TNu7UC&amp;#34; failed: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This log is from one of my later attempts. This video was new on the NAS so an earlier running of the rsync would have had some more lines about creating the directory on the USB - and I had a through the file browser in the NAS. The correct directory had been created, but there were no files in it.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s have a look at this output a bit at a time:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: failed to set times on &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)&amp;#34;: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;rsync is trying to update the date/time of the destination folder to match the source one - something similar to the &lt;code&gt;touch&lt;/code&gt; command. &lt;code&gt;not permitted&lt;/code&gt; sounds like a &lt;a href="https://blog.iankulin.com/could-it-be-a-permissions-problem/"&gt;permissions issue&lt;/a&gt;. There was one of these messages for every directory and they were all near the start of the log.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f+++++++++ Jungle Book (1942)/Jungle Book (1942).mkv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f+++++++++ Jungle Book (1942)/trailer.mp4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These are not errors, but encouraging output. The code at the beginning says what&amp;rsquo;s going on - they are files, and are being copied from the source to the destination. These showed up for every file that was in the source but not the destination, and the times for the file copies felt about right - the .mkv file took a while, the trailer was quick. These messages were all together in the middle of the log.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: mkstemp &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)/.Jungle Book (1942).mkv.Wd141R&amp;#34; failed: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rsync: mkstemp &amp;#34;/volumeUSB1/usbshare/media/video/Movies/Jungle Book (1942)/.trailer.mp4.TNu7UC&amp;#34; failed: Operation not permitted (1)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;[mkstemp](https://man7.org/linux/man-pages/man3/mkstemp.3.html)&lt;/code&gt; is a command for creating a temporary file. It&amp;rsquo;s common in operating systems to use a hidden temporary file when transferring a file - you save into the temp file then rename it when its successfully completed. I&amp;rsquo;m guessing that&amp;rsquo;s what&amp;rsquo;s happening here, and it&amp;rsquo;s failing for permissions reasons. What I don&amp;rsquo;t understand is why they would all be grouped together at the end of the log instead of back next to each individual copy.&lt;/p&gt;
&lt;p&gt;But anyway, this is clearly a permissions problem. I can easily check this just by trying the copy manually. I&amp;rsquo;m still logged in as the same user who executed the &lt;code&gt;rsync&lt;/code&gt; command so the &lt;code&gt;cp&lt;/code&gt; will have the same rights etc and so should also fail&amp;hellip;&lt;/p&gt;
&lt;p&gt;No - this copy worked perfectly. No error message, and when I used the NAS filebrowser, the new file had correctly copied onto the USB drive.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp /volume1/media/video/Movies/&amp;#39;Jungle Book (1942)&amp;#39;/&amp;#39;Jungle Book (1942).mkv&amp;#39; /volumeUSB1/usbshare/media/video/Movies/&amp;#39;Jungle Book (1942)&amp;#39;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So somehow &lt;code&gt;rsync&lt;/code&gt; is running with lower permissions than &lt;code&gt;cp&lt;/code&gt; when executed by the same user? Well, (grasping at straws now) what if I &lt;code&gt;sudo&lt;/code&gt; it? I tried that, and (1) there&amp;rsquo;s no &lt;em&gt;set times&lt;/em&gt; error, (2) all the file copies worked, and (3) no &lt;em&gt;mkstemp&lt;/em&gt; errors.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo rsync -avi --exclude &amp;#39;*@eaDir*&amp;#39; /volume1/media/video/Movies/ /volumeUSB1/usbshare/media/video/Movies --del
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I did notice one other difference, there was lots of &amp;lsquo;o&amp;rsquo; in the itemize changes output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.d..tpo.... Jungle Book (1942)/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f..tpo.... Jungle Book (1942)/Jungle Book (1942).mkv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;f+++++++++ Jungle Book (1942)/trailer.mp4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From the &lt;a href="https://download.samba.org/pub/rsync/rsync.1#opt--itemize-changes"&gt;man page&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.d..tpo....&lt;/code&gt; - not being copied, it&amp;rsquo;s a directory, modification time is different and is being updated, permissions are different and are being updated, the owner is different and is being updated&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt;f..tpo....&lt;/code&gt; - is being copied to destination, it&amp;rsquo;s a file, modification time is different and is being updated, permissions are different and are being updated, the owner is different and is being updated&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt;f+++++++++&lt;/code&gt; - is being copied to destination, it&amp;rsquo;s a file, everything is being newly created so will be the same as the source&lt;/p&gt;
&lt;p&gt;So that&amp;rsquo;s a major step forward, the files are syncing correctly, and if I rerun the rsync and haven&amp;rsquo;t made any changes to the source files, it zips through. I do notice it is still updating the permissions and owner each time. This doesn&amp;rsquo;t produce an error message, but since it thinks they need done every run it suggests it is not happening correctly.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s possible the owner/permissions issue is related to the USB drive being NTFS formatted. It&amp;rsquo;s also possible I can get rsync to stop trying to change those since they are not important in this context. the &lt;code&gt;-a&lt;/code&gt; flag (short for archive) is a shortcut that pulls in a number of other flags. Perhaps I can just pick the ones I need and eliminate the owner and permissions ones.&lt;/p&gt;
&lt;p&gt;Having to sudo to get this to work does not seem like a great solution - presumably this will come back to bite me when I try and automate it. So there is still some figuring out to do, but at least one step of my backup is down now.&lt;/p&gt;</description></item><item><title>Could it be a permissions problem?</title><link>https://blog.iankulin.com/could-it-be-a-permissions-problem/</link><pubDate>Sun, 05 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.iankulin.com/could-it-be-a-permissions-problem/</guid><description>&lt;p&gt;Unix, and therefore Linux, was built from the ground up as a multi-user system. Thanks to this, great security is baked in, for example every file has permission attributes for it&amp;rsquo;s owner, the group the owner is a member of, and then everyone. For example, it might be a good idea if I can read, write and execute my own files, but the other members of my group can just read them, and any other user on the system has none of those rights.&lt;/p&gt;
&lt;p&gt;I &lt;a href="https://blog.iankulin.com/folder-ownership-problems-with-jellyfin/"&gt;talked a bit about this&lt;/a&gt; when I was solving the first round of problems with getting Jellyfin working. I actually solved all of those problems - they were permissions related. Once I&amp;rsquo;d figured out the group id of the jellyfin user and applied that when mounting the NAS I had a week of blissful media consumption on the TV (via Google TV Chromecast), on my laptop, and phone. The eventual plan for this little box is to move it offsite though, so I needed TailScale, which has worked perfectly and effortlessly everywhere else I&amp;rsquo;d tried it, but it turns out it is not happy living in an LXC container on Proxmox which is where my Jellyfin instance was running.&lt;/p&gt;
&lt;p&gt;Googling around, it sounds like it is possible, but more work than I was prepared to invest, and didn&amp;rsquo;t actually needed to. The little i3 it is going to live on has plenty of headroom to run a full VM so I decided to do that.&lt;/p&gt;
&lt;p&gt;I started from scratch with a Debian VM and had it working perfectly, but then an hour or so after I&amp;rsquo;d downloaded all the metadata for my content, some, but not all of the posters would disappear. Once again, the problem turned out to be permissions (Jellyfin wanted write access to the media locations even though I&amp;rsquo;d told it not to save metadata there). I solved that with the &lt;a href="https://pimylifeup.com/chmod-777/"&gt;cursed 777&lt;/a&gt; then did something terrible to the jellyfin process so now it would not start again.&lt;/p&gt;
&lt;p&gt;Sadly, I had not saved a snapshop before I started messing around with things I only half understand.&lt;/p&gt;
&lt;p&gt;In the process of looking for a solution to the jellyfin process retrying starting five times then dying after I&amp;rsquo;d tried to restart it for a reason I can&amp;rsquo;t even recall, I stumbled on a StackExchange that was my exact problem. In the thread of answers, one of them was just &amp;ldquo;Use the container version&amp;rdquo;. I took slight offence at this, as did OP, but when the commenter pointed out that these fiddly installation problems that lead you all over the place and are painful because your configuration is different to everyone else&amp;rsquo;s, and the problem could lie there - is the exact problem containers are intended to solve.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve taken that advice on board and installed the official container version. First problem I&amp;rsquo;ve run into - Jellyfin can&amp;rsquo;t see my media folder - permissions.&lt;/p&gt;
&lt;p&gt;ANY problem you have running something on Linux, you should always start thinking about it in terms of permissions. Who is the user, what are they acessing?&lt;/p&gt;</description></item><item><title>Folder ownership problems with Jellyfin</title><link>https://blog.iankulin.com/folder-ownership-problems-with-jellyfin/</link><pubDate>Wed, 22 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.iankulin.com/folder-ownership-problems-with-jellyfin/</guid><description>&lt;p&gt;&lt;a href="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-5.32.36-pm.png"&gt;&lt;img src="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-5.32.36-pm.png" width="800" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After being so blase about the file permissions when mounting the share to the Linux file system, and testing that root could read and write to the share, I ran into problems immediately when trying to add the media folder as a library in Jellyfin - getting the error &amp;ldquo;The path could not be found. Please ensure the path is valid and try again.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I definitely had the path correct - I could copy it from the dialog and cd to it at the CLI. So I suspected it was a permissions thing. The app might not have read permissions for the directory.&lt;/p&gt;
&lt;p&gt;If, as root, I ls -l (-l for long) any of the directories in this path, they look like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root@jellyfin:/mnt/media/video# ls -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;total 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;drwxrwx--- 2 1000 1000 0 Feb 18 09:13 Movies
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;drwxrwx--- 2 1000 1000 0 Feb 18 04:30 Shows
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Those letters at the start of each listing &lt;a href="https://detailed.wordpress.com/2017/10/28/understanding-ls-command-output/"&gt;have a meaning&lt;/a&gt;. The first &lt;code&gt;d&lt;/code&gt; just means it&amp;rsquo;s a directory. Then there&amp;rsquo;s three groups of three letters:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;d rwx rwx --- (I&amp;#39;ve just added those spaces to make things clear)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These three lots of letters are the &lt;em&gt;permissions&lt;/em&gt; in the order of &lt;em&gt;owner&lt;/em&gt;, &lt;em&gt;group&lt;/em&gt; &amp;amp; &lt;em&gt;everybody&lt;/em&gt;. So for these directories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The owner can read, write &amp;amp; execute (&lt;code&gt;rwx&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Members of this group can read, write &amp;amp; execute (&lt;code&gt;rwx&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Everybody else can&amp;rsquo;t read, can&amp;rsquo;t write, and can&amp;rsquo;t execute (&lt;code&gt;---&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This raises the question, who is the owner of this directory, and what is the group we are talking about? The answer to those questions are the next items in the listing.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://detailed.wordpress.com/2017/10/28/understanding-ls-command-output/"&gt;&lt;img src="https://blog.iankulin.com/images/ls-command3.jpg" width="686" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In our case the owner is &lt;code&gt;1000&lt;/code&gt; and the group is &lt;code&gt;1000&lt;/code&gt;. Where did these come from? Well, they were in the mount command I used in &lt;code&gt;etc/fstab&lt;/code&gt; yesterday:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;//192.168.100.25/media /mnt/media cifs username=jelly,password=jellypass,uid=1000,gid=1000,file_mode=0660,dir_mode=07
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So most likely that&amp;rsquo;s the source of my troubles. As I mentioned, I tested this from the command line logged in as root, and it worked fine. And I was imagining since I&amp;rsquo;d installed Jellyfin as root that Jellyfin would have all those rights, but perhaps (as would be wise) Jellyfin is running as a different user, and I need to add that user to the 1000 group in order to make this work.&lt;/p&gt;
&lt;p&gt;How to I find out what user Jellyfin is running as? A good place to start is to look at the running processes with the &lt;code&gt;ps&lt;/code&gt; command:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-6.02.04-pm.png"&gt;&lt;img src="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-6.02.04-pm.png" width="998" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, lookee here. User &lt;code&gt;jellyfin&lt;/code&gt; is running this process. We can see what groups she&amp;rsquo;s a member of by running the &lt;code&gt;groups&lt;/code&gt; command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root@jellyfin:/# groups jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jellyfin : jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So, not a member of the &lt;code&gt;1000&lt;/code&gt; group then. We can use the &lt;code&gt;getent&lt;/code&gt; command to see the group numbers for users:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root@jellyfin:/# getent group jellyfin 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jellyfin:x:115:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root@jellyfin:/# getent group root 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root:x:0:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root@jellyfin:/# 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Okay, so that&amp;rsquo;s likely out problem. To confirm it, we could change the group for the directory tree and files, or add &lt;code&gt;jellyfin&lt;/code&gt; to the &lt;code&gt;1000&lt;/code&gt; group. Since I now know that &lt;code&gt;jellyfin&lt;/code&gt; is a member of the &lt;code&gt;115&lt;/code&gt; group, and that I just plucked &lt;code&gt;1000&lt;/code&gt; out of the air, I&amp;rsquo;m inclined to remount the share with a &lt;code&gt;gid=115&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-6.24.11-pm.png"&gt;&lt;img src="https://blog.iankulin.com/images/screen-shot-2023-02-18-at-6.24.11-pm.png" width="757" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And&amp;hellip;. it works.&lt;/p&gt;</description></item></channel></rss>