Изменение UID файлов в / proc

В связи с этим вопросом об изменении 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 )

Я принимаю файлы в /proc которые, как вы говорите, принадлежат UID=1000 , такие как /proc/12345 (только число каталогов)? Это каталоги учета процессов, UID установлен на идентификатор пользователя, запускающего программу, связанную с этим каталогом. Если вы запустите программу с помощью pid '12345', то /proc/12345 будет принадлежать вашему пользователю.

Я сомневаюсь, что chown на что-нибудь в proc будет даже работать, поскольку /proc не является реальной файловой системой, ее псевдо-файловой системой.

То же самое происходит с /dev , TTY принадлежат пользователю, который в настоящее время их использует.

Вместо того, чтобы сменить UID , пронумерованные каталоги представляют собой открытые дескрипторы процессов. Вы можете либо убить все процессы, принадлежащие UID=1000 (используя ps ), либо закрыть все его дескрипторы (используя lsof ).

Невозможно и не нужно изменять права собственности на файлы под /proc . Эти файлы не сохраняются на диске, они генерируются ядром на лету, когда вы их читаете. Единственными, кто не принадлежит root, являются файлы, которые предоставляют информацию о запущенном процессе; они принадлежат пользователю, который выполняет этот процесс.

До или после того, как вы изменили права собственности на файлы на диске, убейте все процессы, запущенные в качестве прежнего uid. (Вы не можете (разумно) изменить uid работающего процесса.)

Если есть терминалы ( /dev/tty* или /dev/pts/* ), принадлежащие пользователю, вы должны изменить их uid. Скорее всего, после того, как вы убьете процессы пользователя, не останется много.