相关这个问题我最近从 Linux 云机器(Ubuntu 18.04)上分离了一个磁盘。当我将其重新连接到新的虚拟机(也是 Ubuntu 18.04)时,我发现用户和组信息已丢失,并且大多数文件现在归“1003:1003”所有。
我的目标是让我的用户名(两台机器上的用户名相同)访问这些文件,但我想避免使用它chown
来更改数千个文件的所有权,其中一些文件有其他所有者,也许不应该更改。所以我有两个问题:
- 有没有办法可以轻松地恢复将 1003 与我的用户名和组相关联的旧组信息?
- 假设我确实必须使用
chown
:如何更改所有权仅有的‘1003’ 拥有的文件?
谢谢
答案1
我最终不再拖延并尝试了一下,却发现 1003 没有出现在 /etc/passwd 或 /etc/groups 的任何地方;不知何故该用户和组在磁盘传输过程中丢失了。
我以我认为相对安全的方式解决了这个问题,方法是改变仅有的将 1003:1003 拥有的文件移交给新所有者:
这在 Ubuntu 18.04 中有效:
chown -R --from=<old_owner>:<old_group> <new_owner>:<new_group> <directory>
...但我认为一些 Linux 发行版不允许该--from
标志,所以在以下情况下应该有效:
find . -user <old_user> -group <old_group> -exec chown <new_user>:<new_group> {} \;
感谢@Stephen Boston 的建议。