如何在不使用 root 访问权限的情况下更改用户名?

如何在不使用 root 访问权限的情况下更改用户名?

这是我的访问位置:

drwxrwsr-x 10 dara nm 4096 Jul 24 11:33 16.20
drwxrwsr-x  8 dara nm 4096 Jul 24 11:22 16.22

在这里,我想将用户名从 dara 更改为 lara,而不使用 root 访问权限。我该怎么做?

预期输出:

drwxrwsr-x 10 lara nm 4096 Jul 24 11:33 16.20
drwxrwsr-x  8 lara nm 4096 Jul 24 11:22 16.22

Sample Example:
lara-vd1-341: ls -l
total 100
drwxrwsr-x  8 dara nm  4096 Jul 24 11:22 16.20
-rwxrwxrwx  1 lara nm   596 Jul 24 15:32 16.22

答案1

必须更改文件所有权才能root执行此操作。

这是 Unix 中安全机制的一部分,它防止普通用户访问其他用户的文件。

如果您尝试在未经许可的情况下执行此操作root- 该命令将失败并显示错误消息,例如:

chown yourusername /etc/passwd
chown: changing ownership of '/etc/passwd': Operation not permitted

答案2

作为dara,将目录移开:

mv dir dir-old

作为lara,将原始目录复制到您想要的位置:

cp -Ra dir-old dir

这要求您在父目录中具有写权限才能将其移开;想必如果你一开始就成功做到了这一点,那么你就做到了。

如果不这样做,您可以通过对目录中的文件和目录执行相同的操作来接近。在这种情况下,用户dara稍后仍然可以删除这些文件。但我不清楚你一开始怎么会陷入这种情况。

这是在不涉及提升权利的情况下实现所有权变更的唯一方法。它将无法正确复制一些特殊文件,并且会破坏硬链接。

如果这些都不起作用,最好将tar文件放在dara一边,然后lara像第一次那样提取它们。

答案3

root未经许可或同等文件,您不能执行此操作。

由于您没有 root 权限,此时最好的做法是与负责管理系统的人员交谈并要求他们处理该问题。

相关内容