更改/proc中文件的UID

更改/proc中文件的UID

在后续行动中这个问题关于更改UID用户的,建议更改其所有权全部文件在系统上(这个答案

find / -uid 1000 -exec chown 5000 '{}' \+

哪里1000是旧的UID5000哪里是新的。我刚刚列出了/home/seb拥有的所有文件(外部) UID=1000,发现大多数都在该/proc目录中。

find / -uid 1000 \! -wholename '/home/seb/*'

是吗节省或者必要的执行建议的UID更改?我不熟悉这些/proc文件的用途,但我假设当我使用新用户登录时,它们会根据需要创建。

注意:还有一些文件/dev属于UID=1000,但这些只是用户打开的终端(例如/dev/pts/23

答案1

我假设你所说的文件/proc属于UID=1000那些/proc/12345(只是数字目录)?这些是进程记帐目录,UID 设置为运行与该目录关联的程序的用户的 UID。如果您启动一个 pid 为“12345”的程序,那么该程序/proc/12345将归您的用户所有。

我怀疑 proc 中的任何内容都可以工作,因为/proc它不是真正的文件系统,它是一个伪文件系统。

同样/dev,TTY 归当前使用它们的用户所有。

答案2

UID编号目录代表进程的打开句柄,而不是更改。您可以终止UID=1000(使用)拥有的所有进程ps,也可以关闭其所有句柄(使用lsof)。

答案3

不可能也没有必要更改 下文件的所有权/proc。这些文件不存储在磁盘上,它们是在您读取它们时由内核动态生成的。唯一不属于 root 的文件是提供有关正在运行的进程的信息的文件;这些属于正在运行该进程的用户。

在更改磁盘文件的所有权之前或之后,请终止以以前的 uid 运行的所有进程。 (您不能(明智地)更改正在运行的进程的 uid。)

如果存在属于该用户的终端(/dev/tty*/dev/pts/*),则应更改其 uid。终止用户进程后,很可能不会剩下多少进程。

相关内容