/proc
não é um sistema de arquivos ao vivo, mas é um pseudo sistema de arquivos que expõe estruturas de dados dentro do kernel Linux onde você pode manipulá-las ou lê-las usando as ferramentas CLI que parecem mais familiares quando lidam com sistemas de arquivos. Por exemplo. cat
, echo
, etc.
Como você alterou o UID / GID deste usuário, é provável que esses processos estejam em execução como esse usuário, antes de você fazer essa alteração. Eu simplesmente reiniciei o sistema e eles devem desaparecer, já que eles estão realmente apenas em /proc
como processos ativos em execução no seu sistema.
Exemplo
Vamos começar com um usuário:
$ getent passwd user1
user1:x:1001:1001::/home/user1:/bin/bash
Agora, execute nosso processo de exemplo:
$ su -c "sleep 1000" user1 &
[1] 1677
Observe o processo:
$ ps auxf | grep [s]leep
root 1676 0.0 0.2 195956 2424 pts/1 S 22:59 0:00 \_ su -c sleep 1000 user1
user1 1677 0.0 0.0 107948 348 ? Ss 22:59 0:00 | \_ sleep 1000
Agora, se comentarmos a entrada user1
em nosso arquivo /etc/passwd
, teremos o mesmo cenário:
$ find /proc/1677 -ls | head
258536 0 dr-xr-xr-x 9 1001 user1 0 Jul 16 22:59 /proc/1677
272483 0 dr-xr-xr-x 3 1001 user1 0 Jul 16 23:01 /proc/1677/task
272527 0 dr-xr-xr-x 6 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677
272528 0 dr-x------ 2 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677/fd
272570 0 lrwx------ 1 1001 user1 64 Jul 16 23:01 /proc/1677/task/1677/fd/0 -> /dev/pts/1
272571 0 lrwx------ 1 1001 user1 64 Jul 16 23:01 /proc/1677/task/1677/fd/1 -> /dev/pts/1
272572 0 lrwx------ 1 1001 user1 64 Jul 16 23:01 /proc/1677/task/1677/fd/2 -> /dev/pts/1
272529 0 dr-x------ 2 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677/fdinfo
272573 0 -r-------- 1 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677/fdinfo/0
272574 0 -r-------- 1 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677/fdinfo/1
Não podemos alterar esses arquivos, porque eles não são arquivos reais, eles são internos ao kernel do Linux.
$ sudo chown user2 /proc/1677/task/1677/fdinfo/1
Aviso, nenhum efeito:
$ ll /proc/1677/task/1677/fdinfo/1
-r-------- 1 1001 user1 0 Jul 16 23:01 /proc/1677/task/1677/fdinfo/1
NOTA: O mesmo problema se aplica aos arquivos /etc/passwd
e /etc/group
. Estou apenas destacando as coisas acima usando o usuário & Cenário UID, o mesmo vale para o grupo & GID.
Por acaso, se eu descomentar o meu user1
em /etc/passwd
as coisas voltam ao normal:
$ ll /proc/1677/task/1677/fdinfo/1
-r-------- 1 user1 user1 0 Jul 16 23:01 /proc/1677/task/1677/fdinfo/1