在后续行动中这个问题关于更改UID
用户的,建议更改其所有权全部文件在系统上(这个答案)
find / -uid 1000 -exec chown 5000 '{}' \+
哪里1000
是旧的UID
,5000
哪里是新的。我刚刚列出了/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。终止用户进程后,很可能不会剩下多少进程。