Proprietário do init e do xterm

0

Eu não entendo o que é proprietário do processo. Proprietário do bash sou eu. Então quem é dono do init e do xterm? Eu procurei no google mas não consigo encontrar.

    
por sumi 09.12.2013 / 12:12

3 respostas

1

Os processos normalmente têm um ID de usuário e grupo em que são executados, processos iniciados com root permission (id de usuário 0), podem alterar o id com o qual estão executando (por exemplo, seu servidor da Web pode ser executado como usuário www-data) .

Durante a inicialização, o ID do usuário inicial é 0, para algo que é iniciado por um usuário conectado, é (na maioria dos casos) o ID do usuário.

Assim, você não possui esses processos, eles são executados com o seu ID e isso permite que você os mate etc. Os IDs de um processo também determinam quais diretórios podem ser acessados e quais arquivos foram alterados / criados.

    
por 09.12.2013 / 12:32
1

Os processos têm linhagens como as pessoas. Portanto, da mesma forma que as pessoas têm pais, o mesmo acontece com os processos. Se você olhar para a saída de ps , poderá ver quem é o proprietário de um processo específico.

$ ps -eaf | head -10
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Dec07 ?        00:00:07 /usr/lib/systemd/systemd --system --deserialize 24
root         2     0  0 Dec07 ?        00:00:00 [kthreadd]
root         3     2  0 Dec07 ?        00:00:03 [ksoftirqd/0]
root         5     2  0 Dec07 ?        00:00:00 [kworker/0:0H]
root         7     2  0 Dec07 ?        00:00:00 [kworker/u:0H]
root         8     2  0 Dec07 ?        00:00:06 [migration/0]
root         9     2  0 Dec07 ?        00:00:00 [rcu_bh]
root        10     2  0 Dec07 ?        00:00:56 [rcu_sched]
root        11     2  0 Dec07 ?        00:00:00 [watchdog/0]

A primeira coluna é o usuário que possui o processo. A segunda coluna é o ID do processo (PID) atribuído a esse processo. E a terceira coluna é o ID do processo pai (PPID). Esse PPID é o que vincula um processo a um processo anterior, portanto, com efeito, o PPID é o ID do processo pai de um processo específico.

Estes são exemplos de processos que são outros usuários (além do root) que possuem PPID's de processos pertencentes ao usuário root.

Exemplos

Propriedade do usuário avahi:

avahi      511     1  0 Dec07 ?        00:00:00 avahi-daemon: running [greeneggs.local]

de propriedade do usuário dbus:

dbus       512     1  0 Dec07 ?        00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

Aqui, podemos ver onde um processo iniciado por um processo de propriedade do root eventualmente abrange um processo de propriedade do meu nome de usuário saml .

root      1266   547  0 Dec07 ?        00:00:00 gdm-session-worker [pam/gdm-password]
saml      1277  1266  0 Dec07 ?        00:00:03 gnome-session

Observe que o PPID da sessão do gnome é 1277.

Por fim, você pode usar switches um pouco diferentes para ps para ver uma árvore visual de linhagem.

$ ps -auxf
root       530  0.0  0.0 296804  1824 ?        Ssl  Dec07   0:00 /usr/sbin/gdm
root       547  0.0  0.0 380436  2208 ?        Sl   Dec07   0:00  \_ /usr/libexec/gdm-simple-slave --display-id /org/gnome/Dis
root       584  4.0  0.5 297980 40816 tty1     Ss+  Dec07  86:37      \_ /usr/bin/Xorg :0 -background none -verbose -auth /run
root      1266  0.0  0.0 516956  3160 ?        Sl   Dec07   0:00      \_ gdm-session-worker [pam/gdm-password]
saml      1277  0.0  0.0 714828  6336 ?        Ssl  Dec07   0:03          \_ gnome-session
    
por 09.12.2013 / 15:22
1

Cada processo é executado como um usuário específico. (É chamado de "usuário", não "proprietário"). O usuário determina os direitos dos processos. Em particular, se um processo estiver sendo executado como o usuário sumi , sempre que esse processo tentar acessar um arquivo, as permissões de “usuário” nesse arquivo serão aplicadas (primeiro grupo rwx do ls -l output, primeiro dígito do octal modo).

Uma série de coisas é restrita a processos sendo executados como o mesmo usuário, como enviar sinais (matar) e obter informações de depuração.

Todos os processos com os quais você interage diretamente - shell, emulador de terminal, navegador, etc. - são executados como seu usuário.

O usuário que um processo está executando não está relacionado ao usuário que possui o arquivo de disco que contém o programa. A maioria dos programas é instalada em todo o sistema e pertence a root, mas quando o programa é executado, o processo é executado como o usuário que o iniciou.

O processo init , como outros processos do sistema principal, é executado como o usuário do sistema, root . O usuário root tem mais direitos do que outros usuários.

(Isto é para você começar. Eu simplifiquei vários aspectos de usuários de processos, privilégios e direitos de acesso a arquivos.)

    
por 10.12.2013 / 04:06