<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Tools on DiyMediaServer</title>
        <link>https://diymediaserver.com/page/tools/</link>
        <description>Recent content in Tools on DiyMediaServer</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language><atom:link href="https://diymediaserver.com/page/tools/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>LXC UID/GID Mapping Tool</title>
        <link>https://diymediaserver.com/page/tools/proxmox-lxc-idmap/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://diymediaserver.com/page/tools/proxmox-lxc-idmap/</guid>
        <description>&lt;img src="https://diymediaserver.com/page/tools/proxmox-lxc-idmap/featured.jpg" alt="Featured image of post LXC UID/GID Mapping Tool" /&gt;&lt;p&gt;Enter the UIDs and GIDs you want to pass through from the host into your LXC container. The tool generates the &lt;code&gt;lxc.idmap&lt;/code&gt; block for your container config, the &lt;code&gt;/etc/subuid&lt;/code&gt; and &lt;code&gt;/etc/subgid&lt;/code&gt; entries needed on the Proxmox host.&lt;/p&gt;
&lt;div class=&#34;lxc-idmap-tool&#34; data-lxc-idmap-tool=&#34;0&#34;&gt;

  &lt;form class=&#34;lxc-idmap-form&#34; autocomplete=&#34;off&#34;&gt;

    &lt;fieldset class=&#34;lxc-idmap-inputs&#34;&gt;
      &lt;legend&gt;Container settings&lt;/legend&gt;

      &lt;div class=&#34;lxc-idmap-field&#34;&gt;
        &lt;label for=&#34;lxc-idmap-ctid-0&#34;&gt;Container ID (CTID)&lt;/label&gt;
        &lt;p class=&#34;lxc-idmap-help&#34;&gt;The numeric ID of your LXC container, e.g. 101.&lt;/p&gt;
        &lt;input type=&#34;number&#34; id=&#34;lxc-idmap-ctid-0&#34;
               min=&#34;100&#34; max=&#34;999999999&#34; placeholder=&#34;e.g. 101&#34;
               data-lxc-idmap=&#34;ctid&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;lxc-idmap-field&#34;&gt;
        &lt;label for=&#34;lxc-idmap-uids-0&#34;&gt;User IDs (UIDs) to share&lt;/label&gt;
        &lt;p class=&#34;lxc-idmap-help&#34;&gt;Comma-separated user IDs you want to share with the container. Find with &lt;code&gt;id &amp;lt;username&amp;gt;&lt;/code&gt; on the host.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;lxc-idmap-uids-0&#34;
               placeholder=&#34;e.g. 1000, 1001&#34;
               data-lxc-idmap=&#34;uids&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;lxc-idmap-field&#34;&gt;
        &lt;label for=&#34;lxc-idmap-gids-0&#34;&gt;Group IDs (GIDs) to share&lt;/label&gt;
        &lt;p class=&#34;lxc-idmap-help&#34;&gt;Often the same numbers as the UIDs above. Find with &lt;code&gt;id &amp;lt;username&amp;gt;&lt;/code&gt; on the host.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;lxc-idmap-gids-0&#34;
               placeholder=&#34;e.g. 1000&#34;
               data-lxc-idmap=&#34;gids&#34;&gt;
      &lt;/div&gt;

    &lt;/fieldset&gt;

    &lt;fieldset class=&#34;lxc-idmap-toggles&#34;&gt;

      &lt;div class=&#34;lxc-idmap-toggle-group&#34;&gt;
        &lt;span class=&#34;lxc-idmap-toggle-label&#34;&gt;Container mode&lt;/span&gt;
        &lt;div class=&#34;lxc-idmap-toggle&#34; role=&#34;radiogroup&#34;&gt;
          &lt;label&gt;
            &lt;input type=&#34;radio&#34; name=&#34;lxc-idmap-mode-0&#34; value=&#34;unprivileged&#34;
                   data-lxc-idmap=&#34;mode&#34; checked&gt;
            Unprivileged
          &lt;/label&gt;
          &lt;label&gt;
            &lt;input type=&#34;radio&#34; name=&#34;lxc-idmap-mode-0&#34; value=&#34;privileged&#34;
                   data-lxc-idmap=&#34;mode&#34;&gt;
            Privileged
          &lt;/label&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/fieldset&gt;

  &lt;/form&gt;

  &lt;div class=&#34;lxc-idmap-outputs&#34;&gt;

    &lt;p class=&#34;lxc-idmap-privnote lxc-idmap-hidden&#34; data-lxc-idmap-privnote&gt;
      Privileged containers share host UIDs/GIDs directly — no &lt;code&gt;lxc.idmap&lt;/code&gt; or subuid changes are needed. Only a host &lt;code&gt;chown&lt;/code&gt; is required.
    &lt;/p&gt;

    &lt;div class=&#34;lxc-idmap-output-block&#34; data-lxc-idmap-output=&#34;idmap&#34;&gt;
      &lt;div class=&#34;lxc-idmap-output-header&#34;&gt;
        &lt;span class=&#34;lxc-idmap-output-title&#34;&gt;&lt;code&gt;/etc/pve/lxc/&amp;lt;CTID&amp;gt;.conf&lt;/code&gt;&lt;/span&gt;
        &lt;button type=&#34;button&#34; class=&#34;lxc-idmap-copy&#34; data-target=&#34;lxc-idmap-idmap-0&#34;&gt;Copy&lt;/button&gt;
      &lt;/div&gt;
      &lt;pre&gt;&lt;code class=&#34;language-bash&#34; id=&#34;lxc-idmap-idmap-0&#34;&gt;Enter a CTID and UID(s) to generate idmap lines.&lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div class=&#34;lxc-idmap-output-block&#34; data-lxc-idmap-output=&#34;subid&#34;&gt;
      &lt;div class=&#34;lxc-idmap-output-header&#34;&gt;
        &lt;span class=&#34;lxc-idmap-output-title&#34;&gt;&lt;code&gt;/etc/subuid&lt;/code&gt; + &lt;code&gt;/etc/subgid&lt;/code&gt;&lt;/span&gt;
        &lt;button type=&#34;button&#34; class=&#34;lxc-idmap-copy&#34; data-target=&#34;lxc-idmap-subid-0&#34;&gt;Copy&lt;/button&gt;
      &lt;/div&gt;
      &lt;pre&gt;&lt;code class=&#34;language-bash&#34; id=&#34;lxc-idmap-subid-0&#34;&gt;Enter a CTID and UID(s) to generate subuid/subgid lines.&lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

  &lt;/div&gt;

&lt;/div&gt;

&lt;h2 id=&#34;finding-ids-on-the-proxmox-host&#34;&gt;Finding IDs on the Proxmox Host
&lt;/h2&gt;&lt;p&gt;Run these commands in a Proxmox host shell to find the UID and GID you need:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Your current user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# A specific service user (e.g. jellyfin, www-data)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Look up a user by name in the full user database&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getent passwd jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output looks like &lt;code&gt;uid=1000(jellyfin) gid=1000(jellyfin) groups=...&lt;/code&gt;. The number after &lt;code&gt;uid=&lt;/code&gt; is the UID; the number after &lt;code&gt;gid=&lt;/code&gt; is the primary GID. Enter those numbers into the tool above.&lt;/p&gt;
&lt;h2 id=&#34;finding-ids-inside-the-lxc-container&#34;&gt;Finding IDs inside the LXC Container
&lt;/h2&gt;&lt;p&gt;Run these commands from the Proxmox host to query IDs inside a running container (replace &lt;code&gt;101&lt;/code&gt; with your CTID):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Look up a user inside the container&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pct &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;101&lt;/span&gt; -- id jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Check what uid_map the container is using&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pct &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;101&lt;/span&gt; -- cat /proc/self/uid_map
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Or enter the container shell directly&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pct enter &lt;span class=&#34;m&#34;&gt;101&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id jellyfin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;id&lt;/code&gt; output inside the container shows the &lt;strong&gt;LXC-side&lt;/strong&gt; IDs — these are what go into the &lt;code&gt;lxc.idmap&lt;/code&gt; lines. The Proxmox host sees the mapped host IDs instead.&lt;/p&gt;
&lt;div class=&#34;backlink-box&#34;&gt;
  
  &lt;div class=&#34;backlink-box-image&#34;&gt;
    &lt;img src=&#34;https://diymediaserver.com/post/mastering-uid-gid-mapping-proxmox-lxc/featured.jpg&#34; alt=&#34;Mastering UID/GID Mapping in Proxmox LXC Containers&#34; loading=&#34;lazy&#34;&gt;
  &lt;/div&gt;
  
  &lt;div class=&#34;backlink-box-content&#34;&gt;
    
    
      &lt;p&gt;For the conceptual background on how UID/GID mapping works, the default offset layout, and common bind-mount troubleshooting.&lt;/p&gt;
    
  &lt;/div&gt;
  &lt;div class=&#34;backlink-box-links&#34;&gt;
    &lt;a href=&#34;https://diymediaserver.com/post/mastering-uid-gid-mapping-proxmox-lxc/&#34;
      class=&#34;backlink-button&#34;
      target=&#34;_self&#34;
      &gt;
      Read the full guide
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;
</description>
        </item>
        <item>
        <title>Proxmox Idmapped Mount &amp; Permission Generator</title>
        <link>https://diymediaserver.com/page/tools/proxmox-idmapped-mount/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://diymediaserver.com/page/tools/proxmox-idmapped-mount/</guid>
        <description>&lt;img src="https://diymediaserver.com/page/tools/proxmox-idmapped-mount/featured.jpg" alt="Featured image of post Proxmox Idmapped Mount &amp; Permission Generator" /&gt;&lt;p&gt;Enter your container ID, mount point details, and the host UID/GID you want to share. The tool generates the exact &lt;code&gt;mpX:&lt;/code&gt; config line for &lt;code&gt;/etc/pve/lxc/&amp;lt;CTID&amp;gt;.conf&lt;/code&gt;, the command to create the directory inside the container, and a host ownership check — all ready to copy.&lt;/p&gt;
&lt;p&gt;Idmapped mounts (available in Proxmox 8.1+ on kernel 6.x) let an unprivileged container see host files as if it owns them, without editing &lt;code&gt;/etc/subuid&lt;/code&gt; or &lt;code&gt;/etc/subgid&lt;/code&gt;. If you need selective pass-through of specific UID/GID ranges, use the &lt;a class=&#34;link&#34; href=&#34;https://diymediaserver.com/page/tools/proxmox-lxc-idmap/&#34; &gt;LXC UID/GID Mapping Tool&lt;/a&gt; instead.&lt;/p&gt;
&lt;div class=&#34;proxmox-idmapped-mount-tool&#34; data-proxmox-idmapped-mount-tool=&#34;0&#34;&gt;

  &lt;form class=&#34;proxmox-idmapped-mount-form&#34; autocomplete=&#34;off&#34;&gt;

    &lt;fieldset class=&#34;proxmox-idmapped-mount-inputs&#34;&gt;
      &lt;legend&gt;Mount settings&lt;/legend&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-ctid-0&#34;&gt;Container ID (CTID)&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;The numeric ID of your LXC container, e.g. 101.&lt;/p&gt;
        &lt;input type=&#34;number&#34; id=&#34;proxmox-idmapped-mount-ctid-0&#34;
               min=&#34;100&#34; max=&#34;999999999&#34; placeholder=&#34;e.g. 101&#34;
               data-proxmox-idmapped-mount=&#34;ctid&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-mp-0&#34;&gt;Mount Point ID&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;The &lt;code&gt;mpX&lt;/code&gt; index in the container config, e.g. &lt;code&gt;mp0&lt;/code&gt;.&lt;/p&gt;
        &lt;select id=&#34;proxmox-idmapped-mount-mp-0&#34;
                data-proxmox-idmapped-mount=&#34;mp&#34;&gt;
          &lt;option value=&#34;0&#34; selected&gt;mp0&lt;/option&gt;
          &lt;option value=&#34;1&#34;&gt;mp1&lt;/option&gt;
          &lt;option value=&#34;2&#34;&gt;mp2&lt;/option&gt;
          &lt;option value=&#34;3&#34;&gt;mp3&lt;/option&gt;
          &lt;option value=&#34;4&#34;&gt;mp4&lt;/option&gt;
          &lt;option value=&#34;5&#34;&gt;mp5&lt;/option&gt;
          &lt;option value=&#34;6&#34;&gt;mp6&lt;/option&gt;
          &lt;option value=&#34;7&#34;&gt;mp7&lt;/option&gt;
          &lt;option value=&#34;8&#34;&gt;mp8&lt;/option&gt;
          &lt;option value=&#34;9&#34;&gt;mp9&lt;/option&gt;
          &lt;option value=&#34;10&#34;&gt;mp10&lt;/option&gt;
          &lt;option value=&#34;11&#34;&gt;mp11&lt;/option&gt;
          &lt;option value=&#34;12&#34;&gt;mp12&lt;/option&gt;
          &lt;option value=&#34;13&#34;&gt;mp13&lt;/option&gt;
          &lt;option value=&#34;14&#34;&gt;mp14&lt;/option&gt;
          &lt;option value=&#34;15&#34;&gt;mp15&lt;/option&gt;
          &lt;option value=&#34;16&#34;&gt;mp16&lt;/option&gt;
          &lt;option value=&#34;17&#34;&gt;mp17&lt;/option&gt;
          &lt;option value=&#34;18&#34;&gt;mp18&lt;/option&gt;
          &lt;option value=&#34;19&#34;&gt;mp19&lt;/option&gt;
          &lt;option value=&#34;20&#34;&gt;mp20&lt;/option&gt;
          &lt;option value=&#34;21&#34;&gt;mp21&lt;/option&gt;
          &lt;option value=&#34;22&#34;&gt;mp22&lt;/option&gt;
          &lt;option value=&#34;23&#34;&gt;mp23&lt;/option&gt;
          &lt;option value=&#34;24&#34;&gt;mp24&lt;/option&gt;
          &lt;option value=&#34;25&#34;&gt;mp25&lt;/option&gt;
          &lt;option value=&#34;26&#34;&gt;mp26&lt;/option&gt;
          &lt;option value=&#34;27&#34;&gt;mp27&lt;/option&gt;
          &lt;option value=&#34;28&#34;&gt;mp28&lt;/option&gt;
          &lt;option value=&#34;29&#34;&gt;mp29&lt;/option&gt;
          &lt;option value=&#34;30&#34;&gt;mp30&lt;/option&gt;
          &lt;option value=&#34;31&#34;&gt;mp31&lt;/option&gt;
          &lt;option value=&#34;32&#34;&gt;mp32&lt;/option&gt;
          &lt;option value=&#34;33&#34;&gt;mp33&lt;/option&gt;
          &lt;option value=&#34;34&#34;&gt;mp34&lt;/option&gt;
          &lt;option value=&#34;35&#34;&gt;mp35&lt;/option&gt;
          &lt;option value=&#34;36&#34;&gt;mp36&lt;/option&gt;
          &lt;option value=&#34;37&#34;&gt;mp37&lt;/option&gt;
          &lt;option value=&#34;38&#34;&gt;mp38&lt;/option&gt;
          &lt;option value=&#34;39&#34;&gt;mp39&lt;/option&gt;
          &lt;option value=&#34;40&#34;&gt;mp40&lt;/option&gt;
          &lt;option value=&#34;41&#34;&gt;mp41&lt;/option&gt;
          &lt;option value=&#34;42&#34;&gt;mp42&lt;/option&gt;
          &lt;option value=&#34;43&#34;&gt;mp43&lt;/option&gt;
          &lt;option value=&#34;44&#34;&gt;mp44&lt;/option&gt;
          &lt;option value=&#34;45&#34;&gt;mp45&lt;/option&gt;
          &lt;option value=&#34;46&#34;&gt;mp46&lt;/option&gt;
          &lt;option value=&#34;47&#34;&gt;mp47&lt;/option&gt;
          &lt;option value=&#34;48&#34;&gt;mp48&lt;/option&gt;
          &lt;option value=&#34;49&#34;&gt;mp49&lt;/option&gt;
          &lt;option value=&#34;50&#34;&gt;mp50&lt;/option&gt;
          &lt;option value=&#34;51&#34;&gt;mp51&lt;/option&gt;
          &lt;option value=&#34;52&#34;&gt;mp52&lt;/option&gt;
          &lt;option value=&#34;53&#34;&gt;mp53&lt;/option&gt;
          &lt;option value=&#34;54&#34;&gt;mp54&lt;/option&gt;
          &lt;option value=&#34;55&#34;&gt;mp55&lt;/option&gt;
          &lt;option value=&#34;56&#34;&gt;mp56&lt;/option&gt;
          &lt;option value=&#34;57&#34;&gt;mp57&lt;/option&gt;
          &lt;option value=&#34;58&#34;&gt;mp58&lt;/option&gt;
          &lt;option value=&#34;59&#34;&gt;mp59&lt;/option&gt;
          &lt;option value=&#34;60&#34;&gt;mp60&lt;/option&gt;
          &lt;option value=&#34;61&#34;&gt;mp61&lt;/option&gt;
          &lt;option value=&#34;62&#34;&gt;mp62&lt;/option&gt;
          &lt;option value=&#34;63&#34;&gt;mp63&lt;/option&gt;
          &lt;option value=&#34;64&#34;&gt;mp64&lt;/option&gt;
          &lt;option value=&#34;65&#34;&gt;mp65&lt;/option&gt;
          &lt;option value=&#34;66&#34;&gt;mp66&lt;/option&gt;
          &lt;option value=&#34;67&#34;&gt;mp67&lt;/option&gt;
          &lt;option value=&#34;68&#34;&gt;mp68&lt;/option&gt;
          &lt;option value=&#34;69&#34;&gt;mp69&lt;/option&gt;
          &lt;option value=&#34;70&#34;&gt;mp70&lt;/option&gt;
          &lt;option value=&#34;71&#34;&gt;mp71&lt;/option&gt;
          &lt;option value=&#34;72&#34;&gt;mp72&lt;/option&gt;
          &lt;option value=&#34;73&#34;&gt;mp73&lt;/option&gt;
          &lt;option value=&#34;74&#34;&gt;mp74&lt;/option&gt;
          &lt;option value=&#34;75&#34;&gt;mp75&lt;/option&gt;
          &lt;option value=&#34;76&#34;&gt;mp76&lt;/option&gt;
          &lt;option value=&#34;77&#34;&gt;mp77&lt;/option&gt;
          &lt;option value=&#34;78&#34;&gt;mp78&lt;/option&gt;
          &lt;option value=&#34;79&#34;&gt;mp79&lt;/option&gt;
          &lt;option value=&#34;80&#34;&gt;mp80&lt;/option&gt;
          &lt;option value=&#34;81&#34;&gt;mp81&lt;/option&gt;
          &lt;option value=&#34;82&#34;&gt;mp82&lt;/option&gt;
          &lt;option value=&#34;83&#34;&gt;mp83&lt;/option&gt;
          &lt;option value=&#34;84&#34;&gt;mp84&lt;/option&gt;
          &lt;option value=&#34;85&#34;&gt;mp85&lt;/option&gt;
          &lt;option value=&#34;86&#34;&gt;mp86&lt;/option&gt;
          &lt;option value=&#34;87&#34;&gt;mp87&lt;/option&gt;
          &lt;option value=&#34;88&#34;&gt;mp88&lt;/option&gt;
          &lt;option value=&#34;89&#34;&gt;mp89&lt;/option&gt;
          &lt;option value=&#34;90&#34;&gt;mp90&lt;/option&gt;
          &lt;option value=&#34;91&#34;&gt;mp91&lt;/option&gt;
          &lt;option value=&#34;92&#34;&gt;mp92&lt;/option&gt;
          &lt;option value=&#34;93&#34;&gt;mp93&lt;/option&gt;
          &lt;option value=&#34;94&#34;&gt;mp94&lt;/option&gt;
          &lt;option value=&#34;95&#34;&gt;mp95&lt;/option&gt;
          &lt;option value=&#34;96&#34;&gt;mp96&lt;/option&gt;
          &lt;option value=&#34;97&#34;&gt;mp97&lt;/option&gt;
          &lt;option value=&#34;98&#34;&gt;mp98&lt;/option&gt;
          &lt;option value=&#34;99&#34;&gt;mp99&lt;/option&gt;
          &lt;option value=&#34;100&#34;&gt;mp100&lt;/option&gt;
          &lt;option value=&#34;101&#34;&gt;mp101&lt;/option&gt;
          &lt;option value=&#34;102&#34;&gt;mp102&lt;/option&gt;
          &lt;option value=&#34;103&#34;&gt;mp103&lt;/option&gt;
          &lt;option value=&#34;104&#34;&gt;mp104&lt;/option&gt;
          &lt;option value=&#34;105&#34;&gt;mp105&lt;/option&gt;
          &lt;option value=&#34;106&#34;&gt;mp106&lt;/option&gt;
          &lt;option value=&#34;107&#34;&gt;mp107&lt;/option&gt;
          &lt;option value=&#34;108&#34;&gt;mp108&lt;/option&gt;
          &lt;option value=&#34;109&#34;&gt;mp109&lt;/option&gt;
          &lt;option value=&#34;110&#34;&gt;mp110&lt;/option&gt;
          &lt;option value=&#34;111&#34;&gt;mp111&lt;/option&gt;
          &lt;option value=&#34;112&#34;&gt;mp112&lt;/option&gt;
          &lt;option value=&#34;113&#34;&gt;mp113&lt;/option&gt;
          &lt;option value=&#34;114&#34;&gt;mp114&lt;/option&gt;
          &lt;option value=&#34;115&#34;&gt;mp115&lt;/option&gt;
          &lt;option value=&#34;116&#34;&gt;mp116&lt;/option&gt;
          &lt;option value=&#34;117&#34;&gt;mp117&lt;/option&gt;
          &lt;option value=&#34;118&#34;&gt;mp118&lt;/option&gt;
          &lt;option value=&#34;119&#34;&gt;mp119&lt;/option&gt;
          &lt;option value=&#34;120&#34;&gt;mp120&lt;/option&gt;
          &lt;option value=&#34;121&#34;&gt;mp121&lt;/option&gt;
          &lt;option value=&#34;122&#34;&gt;mp122&lt;/option&gt;
          &lt;option value=&#34;123&#34;&gt;mp123&lt;/option&gt;
          &lt;option value=&#34;124&#34;&gt;mp124&lt;/option&gt;
          &lt;option value=&#34;125&#34;&gt;mp125&lt;/option&gt;
          &lt;option value=&#34;126&#34;&gt;mp126&lt;/option&gt;
          &lt;option value=&#34;127&#34;&gt;mp127&lt;/option&gt;
          &lt;option value=&#34;128&#34;&gt;mp128&lt;/option&gt;
          &lt;option value=&#34;129&#34;&gt;mp129&lt;/option&gt;
          &lt;option value=&#34;130&#34;&gt;mp130&lt;/option&gt;
          &lt;option value=&#34;131&#34;&gt;mp131&lt;/option&gt;
          &lt;option value=&#34;132&#34;&gt;mp132&lt;/option&gt;
          &lt;option value=&#34;133&#34;&gt;mp133&lt;/option&gt;
          &lt;option value=&#34;134&#34;&gt;mp134&lt;/option&gt;
          &lt;option value=&#34;135&#34;&gt;mp135&lt;/option&gt;
          &lt;option value=&#34;136&#34;&gt;mp136&lt;/option&gt;
          &lt;option value=&#34;137&#34;&gt;mp137&lt;/option&gt;
          &lt;option value=&#34;138&#34;&gt;mp138&lt;/option&gt;
          &lt;option value=&#34;139&#34;&gt;mp139&lt;/option&gt;
          &lt;option value=&#34;140&#34;&gt;mp140&lt;/option&gt;
          &lt;option value=&#34;141&#34;&gt;mp141&lt;/option&gt;
          &lt;option value=&#34;142&#34;&gt;mp142&lt;/option&gt;
          &lt;option value=&#34;143&#34;&gt;mp143&lt;/option&gt;
          &lt;option value=&#34;144&#34;&gt;mp144&lt;/option&gt;
          &lt;option value=&#34;145&#34;&gt;mp145&lt;/option&gt;
          &lt;option value=&#34;146&#34;&gt;mp146&lt;/option&gt;
          &lt;option value=&#34;147&#34;&gt;mp147&lt;/option&gt;
          &lt;option value=&#34;148&#34;&gt;mp148&lt;/option&gt;
          &lt;option value=&#34;149&#34;&gt;mp149&lt;/option&gt;
          &lt;option value=&#34;150&#34;&gt;mp150&lt;/option&gt;
          &lt;option value=&#34;151&#34;&gt;mp151&lt;/option&gt;
          &lt;option value=&#34;152&#34;&gt;mp152&lt;/option&gt;
          &lt;option value=&#34;153&#34;&gt;mp153&lt;/option&gt;
          &lt;option value=&#34;154&#34;&gt;mp154&lt;/option&gt;
          &lt;option value=&#34;155&#34;&gt;mp155&lt;/option&gt;
          &lt;option value=&#34;156&#34;&gt;mp156&lt;/option&gt;
          &lt;option value=&#34;157&#34;&gt;mp157&lt;/option&gt;
          &lt;option value=&#34;158&#34;&gt;mp158&lt;/option&gt;
          &lt;option value=&#34;159&#34;&gt;mp159&lt;/option&gt;
          &lt;option value=&#34;160&#34;&gt;mp160&lt;/option&gt;
          &lt;option value=&#34;161&#34;&gt;mp161&lt;/option&gt;
          &lt;option value=&#34;162&#34;&gt;mp162&lt;/option&gt;
          &lt;option value=&#34;163&#34;&gt;mp163&lt;/option&gt;
          &lt;option value=&#34;164&#34;&gt;mp164&lt;/option&gt;
          &lt;option value=&#34;165&#34;&gt;mp165&lt;/option&gt;
          &lt;option value=&#34;166&#34;&gt;mp166&lt;/option&gt;
          &lt;option value=&#34;167&#34;&gt;mp167&lt;/option&gt;
          &lt;option value=&#34;168&#34;&gt;mp168&lt;/option&gt;
          &lt;option value=&#34;169&#34;&gt;mp169&lt;/option&gt;
          &lt;option value=&#34;170&#34;&gt;mp170&lt;/option&gt;
          &lt;option value=&#34;171&#34;&gt;mp171&lt;/option&gt;
          &lt;option value=&#34;172&#34;&gt;mp172&lt;/option&gt;
          &lt;option value=&#34;173&#34;&gt;mp173&lt;/option&gt;
          &lt;option value=&#34;174&#34;&gt;mp174&lt;/option&gt;
          &lt;option value=&#34;175&#34;&gt;mp175&lt;/option&gt;
          &lt;option value=&#34;176&#34;&gt;mp176&lt;/option&gt;
          &lt;option value=&#34;177&#34;&gt;mp177&lt;/option&gt;
          &lt;option value=&#34;178&#34;&gt;mp178&lt;/option&gt;
          &lt;option value=&#34;179&#34;&gt;mp179&lt;/option&gt;
          &lt;option value=&#34;180&#34;&gt;mp180&lt;/option&gt;
          &lt;option value=&#34;181&#34;&gt;mp181&lt;/option&gt;
          &lt;option value=&#34;182&#34;&gt;mp182&lt;/option&gt;
          &lt;option value=&#34;183&#34;&gt;mp183&lt;/option&gt;
          &lt;option value=&#34;184&#34;&gt;mp184&lt;/option&gt;
          &lt;option value=&#34;185&#34;&gt;mp185&lt;/option&gt;
          &lt;option value=&#34;186&#34;&gt;mp186&lt;/option&gt;
          &lt;option value=&#34;187&#34;&gt;mp187&lt;/option&gt;
          &lt;option value=&#34;188&#34;&gt;mp188&lt;/option&gt;
          &lt;option value=&#34;189&#34;&gt;mp189&lt;/option&gt;
          &lt;option value=&#34;190&#34;&gt;mp190&lt;/option&gt;
          &lt;option value=&#34;191&#34;&gt;mp191&lt;/option&gt;
          &lt;option value=&#34;192&#34;&gt;mp192&lt;/option&gt;
          &lt;option value=&#34;193&#34;&gt;mp193&lt;/option&gt;
          &lt;option value=&#34;194&#34;&gt;mp194&lt;/option&gt;
          &lt;option value=&#34;195&#34;&gt;mp195&lt;/option&gt;
          &lt;option value=&#34;196&#34;&gt;mp196&lt;/option&gt;
          &lt;option value=&#34;197&#34;&gt;mp197&lt;/option&gt;
          &lt;option value=&#34;198&#34;&gt;mp198&lt;/option&gt;
          &lt;option value=&#34;199&#34;&gt;mp199&lt;/option&gt;
          &lt;option value=&#34;200&#34;&gt;mp200&lt;/option&gt;
          &lt;option value=&#34;201&#34;&gt;mp201&lt;/option&gt;
          &lt;option value=&#34;202&#34;&gt;mp202&lt;/option&gt;
          &lt;option value=&#34;203&#34;&gt;mp203&lt;/option&gt;
          &lt;option value=&#34;204&#34;&gt;mp204&lt;/option&gt;
          &lt;option value=&#34;205&#34;&gt;mp205&lt;/option&gt;
          &lt;option value=&#34;206&#34;&gt;mp206&lt;/option&gt;
          &lt;option value=&#34;207&#34;&gt;mp207&lt;/option&gt;
          &lt;option value=&#34;208&#34;&gt;mp208&lt;/option&gt;
          &lt;option value=&#34;209&#34;&gt;mp209&lt;/option&gt;
          &lt;option value=&#34;210&#34;&gt;mp210&lt;/option&gt;
          &lt;option value=&#34;211&#34;&gt;mp211&lt;/option&gt;
          &lt;option value=&#34;212&#34;&gt;mp212&lt;/option&gt;
          &lt;option value=&#34;213&#34;&gt;mp213&lt;/option&gt;
          &lt;option value=&#34;214&#34;&gt;mp214&lt;/option&gt;
          &lt;option value=&#34;215&#34;&gt;mp215&lt;/option&gt;
          &lt;option value=&#34;216&#34;&gt;mp216&lt;/option&gt;
          &lt;option value=&#34;217&#34;&gt;mp217&lt;/option&gt;
          &lt;option value=&#34;218&#34;&gt;mp218&lt;/option&gt;
          &lt;option value=&#34;219&#34;&gt;mp219&lt;/option&gt;
          &lt;option value=&#34;220&#34;&gt;mp220&lt;/option&gt;
          &lt;option value=&#34;221&#34;&gt;mp221&lt;/option&gt;
          &lt;option value=&#34;222&#34;&gt;mp222&lt;/option&gt;
          &lt;option value=&#34;223&#34;&gt;mp223&lt;/option&gt;
          &lt;option value=&#34;224&#34;&gt;mp224&lt;/option&gt;
          &lt;option value=&#34;225&#34;&gt;mp225&lt;/option&gt;
          &lt;option value=&#34;226&#34;&gt;mp226&lt;/option&gt;
          &lt;option value=&#34;227&#34;&gt;mp227&lt;/option&gt;
          &lt;option value=&#34;228&#34;&gt;mp228&lt;/option&gt;
          &lt;option value=&#34;229&#34;&gt;mp229&lt;/option&gt;
          &lt;option value=&#34;230&#34;&gt;mp230&lt;/option&gt;
          &lt;option value=&#34;231&#34;&gt;mp231&lt;/option&gt;
          &lt;option value=&#34;232&#34;&gt;mp232&lt;/option&gt;
          &lt;option value=&#34;233&#34;&gt;mp233&lt;/option&gt;
          &lt;option value=&#34;234&#34;&gt;mp234&lt;/option&gt;
          &lt;option value=&#34;235&#34;&gt;mp235&lt;/option&gt;
          &lt;option value=&#34;236&#34;&gt;mp236&lt;/option&gt;
          &lt;option value=&#34;237&#34;&gt;mp237&lt;/option&gt;
          &lt;option value=&#34;238&#34;&gt;mp238&lt;/option&gt;
          &lt;option value=&#34;239&#34;&gt;mp239&lt;/option&gt;
          &lt;option value=&#34;240&#34;&gt;mp240&lt;/option&gt;
          &lt;option value=&#34;241&#34;&gt;mp241&lt;/option&gt;
          &lt;option value=&#34;242&#34;&gt;mp242&lt;/option&gt;
          &lt;option value=&#34;243&#34;&gt;mp243&lt;/option&gt;
          &lt;option value=&#34;244&#34;&gt;mp244&lt;/option&gt;
          &lt;option value=&#34;245&#34;&gt;mp245&lt;/option&gt;
          &lt;option value=&#34;246&#34;&gt;mp246&lt;/option&gt;
          &lt;option value=&#34;247&#34;&gt;mp247&lt;/option&gt;
          &lt;option value=&#34;248&#34;&gt;mp248&lt;/option&gt;
          &lt;option value=&#34;249&#34;&gt;mp249&lt;/option&gt;
          &lt;option value=&#34;250&#34;&gt;mp250&lt;/option&gt;
          &lt;option value=&#34;251&#34;&gt;mp251&lt;/option&gt;
          &lt;option value=&#34;252&#34;&gt;mp252&lt;/option&gt;
          &lt;option value=&#34;253&#34;&gt;mp253&lt;/option&gt;
          &lt;option value=&#34;254&#34;&gt;mp254&lt;/option&gt;
          &lt;option value=&#34;255&#34;&gt;mp255&lt;/option&gt;
          
        &lt;/select&gt;
      &lt;/div&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-host-path-0&#34;&gt;Source (Host Path)&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;Absolute path to the directory on the Proxmox host, e.g. &lt;code&gt;/mnt/media&lt;/code&gt;.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;proxmox-idmapped-mount-host-path-0&#34;
               placeholder=&#34;e.g. /mnt/media&#34;
               data-proxmox-idmapped-mount=&#34;host-path&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-lxc-path-0&#34;&gt;Destination (LXC Path)&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;Absolute path where the data should appear inside the container, e.g. &lt;code&gt;/media&lt;/code&gt;.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;proxmox-idmapped-mount-lxc-path-0&#34;
               placeholder=&#34;e.g. /media&#34;
               data-proxmox-idmapped-mount=&#34;lxc-path&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-uids-0&#34;&gt;Host UID(s)&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;Numeric UIDs that own the host data. Used to generate the ownership check. Find with &lt;code&gt;stat -c &#34;%u&#34; /path&lt;/code&gt;.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;proxmox-idmapped-mount-uids-0&#34;
               placeholder=&#34;e.g. 1000&#34;
               data-proxmox-idmapped-mount=&#34;uids&#34;&gt;
      &lt;/div&gt;

      &lt;div class=&#34;proxmox-idmapped-mount-field&#34;&gt;
        &lt;label for=&#34;proxmox-idmapped-mount-gids-0&#34;&gt;Host GID(s)&lt;/label&gt;
        &lt;p class=&#34;proxmox-idmapped-mount-help&#34;&gt;Numeric GIDs that own the host data. Often matches the UID. Find with &lt;code&gt;stat -c &#34;%g&#34; /path&lt;/code&gt;.&lt;/p&gt;
        &lt;input type=&#34;text&#34; id=&#34;proxmox-idmapped-mount-gids-0&#34;
               placeholder=&#34;e.g. 1000&#34;
               data-proxmox-idmapped-mount=&#34;gids&#34;&gt;
      &lt;/div&gt;

    &lt;/fieldset&gt;

  &lt;/form&gt;

  &lt;div class=&#34;proxmox-idmapped-mount-outputs&#34;&gt;

    &lt;div class=&#34;proxmox-idmapped-mount-output-block&#34;&gt;
      &lt;div class=&#34;proxmox-idmapped-mount-output-header&#34;&gt;
        &lt;span class=&#34;proxmox-idmapped-mount-output-title&#34;&gt;&lt;code&gt;/etc/pve/lxc/&amp;lt;CTID&amp;gt;.conf&lt;/code&gt;&lt;/span&gt;
        &lt;button type=&#34;button&#34; class=&#34;proxmox-idmapped-mount-copy&#34; data-target=&#34;proxmox-idmapped-mount-config-0&#34;&gt;Copy&lt;/button&gt;
      &lt;/div&gt;
      &lt;pre&gt;&lt;code class=&#34;language-bash&#34; id=&#34;proxmox-idmapped-mount-config-0&#34;&gt;Enter a CTID, host path, and LXC path to generate the config line.&lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div class=&#34;proxmox-idmapped-mount-output-block&#34;&gt;
      &lt;div class=&#34;proxmox-idmapped-mount-output-header&#34;&gt;
        &lt;span class=&#34;proxmox-idmapped-mount-output-title&#34;&gt;Create directory inside container&lt;/span&gt;
        &lt;button type=&#34;button&#34; class=&#34;proxmox-idmapped-mount-copy&#34; data-target=&#34;proxmox-idmapped-mount-mkdir-0&#34;&gt;Copy&lt;/button&gt;
      &lt;/div&gt;
      &lt;pre&gt;&lt;code class=&#34;language-bash&#34; id=&#34;proxmox-idmapped-mount-mkdir-0&#34;&gt;Enter a CTID and LXC path to generate the mkdir command.&lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div class=&#34;proxmox-idmapped-mount-output-block&#34;&gt;
      &lt;div class=&#34;proxmox-idmapped-mount-output-header&#34;&gt;
        &lt;span class=&#34;proxmox-idmapped-mount-output-title&#34;&gt;Verify host ownership&lt;/span&gt;
        &lt;button type=&#34;button&#34; class=&#34;proxmox-idmapped-mount-copy&#34; data-target=&#34;proxmox-idmapped-mount-verify-0&#34;&gt;Copy&lt;/button&gt;
      &lt;/div&gt;
      &lt;pre&gt;&lt;code class=&#34;language-bash&#34; id=&#34;proxmox-idmapped-mount-verify-0&#34;&gt;Enter a host path to generate the verification command.&lt;/code&gt;&lt;/pre&gt;
    &lt;/div&gt;

  &lt;/div&gt;

&lt;/div&gt;

&lt;h2 id=&#34;the-permission-bridge&#34;&gt;The Permission Bridge
&lt;/h2&gt;&lt;h3 id=&#34;step-1-identify-host-owners&#34;&gt;Step 1: Identify Host Owners
&lt;/h3&gt;&lt;p&gt;Find the numeric UID and GID that own your data on the Proxmox host:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;stat -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;%u %g&amp;#34;&lt;/span&gt; /path/to/host/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The two numbers in the output are the UID and GID. Enter them into the tool above.&lt;/p&gt;
&lt;h3 id=&#34;step-2-identify-container-users&#34;&gt;Step 2: Identify Container Users
&lt;/h3&gt;&lt;p&gt;Look up the service-account ID inside the container (e.g. the user running Jellyfin or Sonarr):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pct &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; CTID -- id -u username
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pct &lt;span class=&#34;nb&#34;&gt;exec&lt;/span&gt; CTID -- id -g username
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The UID and GID printed here are what the container process expects to run as. The idmapped mount makes the host files appear to be owned by those IDs at the kernel level.&lt;/p&gt;
&lt;h3 id=&#34;compatibility-notes&#34;&gt;Compatibility Notes
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Requires Proxmox 8.1 or newer (kernel 6.x or higher).&lt;/li&gt;
&lt;li&gt;Backing filesystem must support idmapped mounts: ZFS, ext4, XFS. Some legacy network mounts (older NFS/CIFS exports) do not support this feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;backlink-box&#34;&gt;
  
  &lt;div class=&#34;backlink-box-image&#34;&gt;
    &lt;img src=&#34;https://diymediaserver.com/post/mastering-uid-gid-mapping-proxmox-lxc/featured.jpg&#34; alt=&#34;Mastering UID/GID Mapping in Proxmox LXC Containers&#34; loading=&#34;lazy&#34;&gt;
  &lt;/div&gt;
  
  &lt;div class=&#34;backlink-box-content&#34;&gt;
    
    
      &lt;p&gt;For the conceptual background on UID/GID mapping, default offset layouts, and when traditional &lt;code&gt;lxc.idmap&lt;/code&gt; is still the right call.&lt;/p&gt;
    
  &lt;/div&gt;
  &lt;div class=&#34;backlink-box-links&#34;&gt;
    &lt;a href=&#34;https://diymediaserver.com/post/mastering-uid-gid-mapping-proxmox-lxc/&#34;
      class=&#34;backlink-button&#34;
      target=&#34;_self&#34;
      &gt;
      Read the full guide
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;
</description>
        </item>
        
    </channel>
</rss>
