如何更改 QNAP NAS 上的用户 ID?

seb*_*seb 5 linux nas permissions nfs uid

我有一台 QNAP TS-110,可以通过 NFS 从 Ubuntu 系统访问它。

我猜想典型家庭网络上的 NFS 不使用任何用户身份验证。我读过很多地方,发现 Linux 机器和 NAS 上的用户具有相同的 UID 和/或 GID 很重要。

  • 现在我在 Ubuntu 上的主要用户已经有了uid=1000(me) gid=1000(me).
  • 在 NAS 上,主用户拥有uid=500 gid=100

我认为这就是我反复遇到访问问题的原因。(是这样吗?)

我的计划是通过 SSH 进入 NAS 并使用

usermod -u <newuid> -g<newgid> <username>
Run Code Online (Sandbox Code Playgroud)

问题出在NAS上没有usermod安装。

it.toolbox.com上,我读到我可以简单地/etc/passwd使用/etc/group所需的 UID 和 GID 进行编辑。

Fedora 论坛中有很多关于事后如何修复文件的讨论。

现在的问题是:

  1. 我可以简单地编辑/etc/passwd和分组吗?
  2. 如何检查我要更改 UID 的用户是否未登录?
  3. chown -R --from=500:500 1000:1000 /path/*配置文件更改后,对所有文件使用是否正确?
  4. 如何确保 NAS 在此更改后没有问题?

seb*_*seb 5

我做到了!(而且它似乎有效)

因此,在我完全没有得到答复(在我发布此问题的所有网站上)后,我继续按照我的计划进行。

我已通过 ssh 以管理员身份登录我的 NAS。

下一步是修改以下两个文件,以便我创建的所有用户都有一个以 1000 开头的 UID 和 GID

[~] # cat /etc/passwd
admin:x:0:0:administrators:/share/homes/admin:/bin/sh
guest:x:65534:65534:guest:/share/homes/guest:/bin/sh
httpdusr:x:99:100:Apache httpd user:/tmp:/bin/sh
mainuser:x:500:100:Linux User,,,:/share/homes/mainuser:/bin/sh
test-consumer1:x:503:100:Linux User,,,:/share/homes/test-consumer1:/bin/sh

[~] # cat /etc/group   
administrators:x:0:admin
everyone:x:100:admin
Run Code Online (Sandbox Code Playgroud)

闯入

[~] # cat /etc/passwd
admin:x:0:0:administrators:/share/homes/admin:/bin/sh
guest:x:65534:65534:guest:/share/homes/guest:/bin/sh
httpdusr:x:99:100:Apache httpd user:/tmp:/bin/sh
mainuser:x:1000:1000:Linux User,,,:/share/homes/mainuser:/bin/sh
test-consumer1:x:1003:1000:Linux User,,,:/share/homes/test-consumer1:/bin/sh

[~] # cat /etc/group
administrators:x:0:admin
everyone:x:1000:admin
Run Code Online (Sandbox Code Playgroud)

下一步是 chown 并 chgrp NAS 上的所有文件。由于可用的 find 不会执行 exec 命令,所以我自己浏览了目录

lrwxrwxrwx    1 admin    administ       18 May 19 14:16 Qdownload -> HDA_DATA/Qdownload/
lrwxrwxrwx    1 admin    administ       20 May 19 14:16 Qmultimedia -> HDA_DATA/Qmultimedia/
lrwxrwxrwx    1 admin    administ       20 May 19 14:16 Qrecordings -> HDA_DATA/Qrecordings/
lrwxrwxrwx    1 admin    administ       13 May 19 14:16 Qusb -> HDA_DATA/Qusb/
lrwxrwxrwx    1 admin    administ       13 May 19 14:16 Qweb -> HDA_DATA/Qweb/
lrwxrwxrwx    1 admin    administ       10 May 19 14:16 b -> HDA_DATA/b/
lrwxrwxrwx    1 admin    administ       15 May 19 14:16 backup -> HDA_DATA/backup/
lrwxrwxrwx    1 admin    administ       13 May 19 14:16 home -> HDA_DATA/home/
lrwxrwxrwx    1 admin    administ       10 May 19 14:16 m -> HDA_DATA/m/
lrwxrwxrwx    1 admin    administ       10 May 19 14:16 v -> HDA_DATA/v/

[/share/HDA_DATA/] # chown -R 1000:1000 ./*
Run Code Online (Sandbox Code Playgroud)

我可以一次修复所有文件和文件夹,因为只有一个主要用户将文件上传到 NAS。

接下来,我重新启动了 NAS,并检查以我刚刚更改的用户身份登录。

我知道这可能不是最优雅、最快或正确的方法,但它对我有用,我希望这对其他人有帮助。

也请检查这里。