V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
Autonomous
V2EX  ›  NAS

OpenList 更新 v4.1.1,将默认通过 1001 用户启动,请修改文件权限

  •  
  •   Autonomous · 12 天前 · 1963 次点击

    以下内容摘自: https://github.com/OpenListTeam/OpenList/releases/tag/v4.1.1

    为了更好地符合容器规范(甚至哪怕是 RedHat 的公约性质规定),从第 74 号问题开始,我们就已经开始准备对容器化使用方式的重构,涉及但不限于将 aria2 迁移为独立镜像等。
    
    在 4.1.1 版本中,我们已移除 PUID/PGID 的运行方式,并且借鉴 MariaDB 等多个知名镜像的构建方法,通过 useradd 新增用户和用户组 openlist ( UID: 1001 ,GID: 1001 ),并以该用户身份运行 openlist server 。
    
    新安装用户:理论上无需额外操作,开箱即用。
    已有安装用户:如有权限问题,请在宿主机为该用户进行相应授权。
    由于 Docker 和 Podman 在用户命名空间映射上的差异,宿主机用户与容器用户可能不完全对应。Podman 环境下,可以通过 UIDMap 或 UserNS 映射用户。
    
    https://doc.oplist.org/guide/installation/docker
    
    ❓ 常见问题:
    Q: 宿主机没有 UID 1001 的用户怎么办?
    A: 不影响使用,授权时采用数字 UID 即可,无需宿主机实际存在该用户。
    

    老用户更新后 Docker 容器直接起不来了,查日志看到是权限问题,之前一直是以 root 用户启动 Docker 容器,通过如下修改可以修复:

    通过 SSH 连接到 NAS

    cd [OpenList 容器的文件目录]
    sudo chown 1001:1001 *
    sudo chmod 755 *
    
    11 条回复    2025-09-01 09:15:03 +08:00
    realpg
        1
    realpg  
    PRO
       12 天前
    基于 UID/GID 数字绝对值 也是神仙操作...
    fortynine
        2
    fortynine  
       12 天前   ❤️ 1
    如果我的现有环境已经有 1001 正在用,这个咋整……
    Shura
        3
    Shura  
       12 天前
    瞎折腾
    MoeWang
        4
    MoeWang  
       12 天前 via iPhone
    这次决定,就像是和 AI 聊了一会儿,然后被 AI 几个彩虹屁拍的,一拍大腿就上线了😂,直接写死 1001 。殊不知和 AI 聊天的 prompt 也是有技巧的,有些东西不提,它有时候并不会提醒你。
    Niphor
        5
    Niphor  
       11 天前
    跑的时候 直接指定 user 不就好了
    idssc
        6
    idssc  
       11 天前 via Android
    炸了 10 分钟,然后发现这个问题,然后修改了自己的 openlist cli 脚本,不管是 4.1.0 或者变异的 4.1.1 都能支持
    RobinHuuu
        7
    RobinHuuu  
       11 天前 via Android
    自己改 docker 吧,哎
    hosiet
        8
    hosiet  
       11 天前 via Android   ❤️ 1
    楼上都是怎么回事?这个 1001 只是无任何参数启动时的 uid/gid 默认值,如果不想用它想用别的用户执行,那直接用 docker 自带的 user 参数指定用户可以了,只不过以往是以环境变量指定现在是用原生方式指定用户而已。什么参数都没有时总要以某个用户身份运行程序吧?难道不用 1001 用 0 ( root )?

    如果我有哪里理解不对麻烦提醒我一下。
    vergilgao
        9
    vergilgao  
       4 天前
    unraid 直接指定 user 99:100 就行了
    相比环境变量,这种方式运行更可靠。
    docker 一直以来最让人诟病的也是这种默认运行用户具有 root 权限,我之前写 dockerfile 时也经常要搞一个 su-exec 这种东西,然后通过环境变量运行程序,为了权限不出错,还得写一个 entrypoint.sh 啰里啰唆的把所有要用的文件夹 chown 一下,其实挺不好的。
    Darkyyx
        10
    Darkyyx  
       3 天前
    @vergilgao 不支持环境变量了好歹模板里 puid pgid 都删了,特么的我调了半天才发现不支持了,应用商店里也没有任何说明,真的是。。。
    THESDZ
        11
    THESDZ  
       1 天前
    注意

    在 v4.1.0 以后的版本中(不包含 v4.1.0 ),OpenList 镜像已经移除了 PUID 、PGID ,并借鉴于 MariaDB 的构建方式,使用 useradd 增加了用户 openlist ( UID 1001 )和组 openlist ( GID 1001 ),并使用该用户运行 openlist server 。

    这意味着,您需要手动处理映射的目录的权限问题,确保容器内的 openlist(1001) 用户有权限访问映射的目录。

    您也可以通过 --user UID:GID 的方式来运行容器指定容器内运行 OpenList 的用户和组,让容器内有权限访问映射的目录。

    rootless 模式中的 Docker , --user 0:0 代表当前用户的 UID 和 GID 。请确保您在运行容器时,正确设置了 --user 参数,以确保文件权限的正确性。


    上面摘抄自
    https://doc.oplist.org/guide/installation/docker
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1125 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.