Bir işlemin sahibini ps
komutunu kullanarak belirleyebiliriz . Bu, diğer kullanıcıların bu işlemi çalıştıramayacağı / öldüremeyeceği / sürdüremeyeceği anlamına mı geliyor?
Bir işlemin sahibini ps
komutunu kullanarak belirleyebiliriz . Bu, diğer kullanıcıların bu işlemi çalıştıramayacağı / öldüremeyeceği / sürdüremeyeceği anlamına mı geliyor?
Yanıtlar:
Okuma kimlik bilgileri (7) , çatal (2) , execve (2) . Çatal sistem çağrısı süreç oluşturur yoludur (bugün, fork
çoğunlukla birlikte uygulandığı klon (2) ancak bir uygulama ayrıntı olarak görebiliriz). Exec sistem çağrısı yoludur çalıştırılabilir programlar başlatılır. Her şeyin bazı sistem çağrılarıyla ( sistem çağrılarında (2) listelenmiştir) bazı işlemlerden yapıldığını unutmayın . İlk işlem ( init veya systemd ) çekirdek tarafından önyükleme sırasında sihirli bir şekilde başlatıldı. Çatalla başka işlemler başlatılmıştır (2). Modern Linux çekirdekleri bazen - ancak nadiren - sihirli bir şekilde birkaç özel işlemi (örneğin /sbin/hotplug
) veya çekirdek iş parçacıklarını (örn. kworker
, kswapd
....) başlatır .
Yani evet, her işlemin (ve her dosyanın) bir sahibi (teknik olarak uid , küçük bir negatif olmayan sayı) ve grubu (gid) vardır. 0 kullanıcı kimliği kök içindir ve ek izinlere sahiptir.
Setuid (ve setreuid (2) ...) hakkında da okuyun . Zor.
diğer sahibin bu işlemi yapamayacağı anlamına mı geliyor?
Bir işlem zaten çalışıyor (ancak boşta veya beklemede olabilir), bu yüzden kimse tekrar çalıştıramaz. Bir işlemi (dinamik bir şey) içinde çalışan programla ( genellikle ELF biçimindeki yürütülebilir bir dosya ) karıştırmayın.
Belirli bir program (örn. /bin/bash
) Birkaç işlemde yürütülebilir . Birçok yürütülebilir dosya (belirli bir anda) bunları çalıştıran herhangi bir işlem yapmadan diskinizde kalır.
Linux'ta, proc (5) çekirdeğin süreçlerin durumu hakkında sorgulamak için çok yararlıdır. Örnekleri deneyin cat /proc/$$/status
ve cat /proc/self/maps
. Ayrıca bkz. Pgrep (1) , ps (1) , üst (1) .
Her işlemin kendi sanal adres alanı , kendi dosya tanımlayıcı tablosu, kendi çalışma dizini (ve genellikle birkaç iş parçacığı , bkz. Pthreads (7) ) vb.
diğer sahiplerin bu süreci çalıştıramayacağı / öldüremeyeceği / sürdüremeyeceği anlamına mı geliyor?
Bir işlemi yürütmek hiç mantıklı değil ( zaten çalışıyor). Ancak, pid 1234 sürecinin yürütülebilir olarak kullanılabilir /proc/1234/exe
sembolik bağ ve sizin için bu kullanabilir execve (2) - ancak muhtemelen olmamalı -. İçin izin kuralları execve
geçerlidir.
Bir işlemi öldürmek (2) için genellikle aynı kullanıcı adına sahip olmalısınız. Ancak, belgeler şunları söyler:
For a process to have permission to send a signal, it must either be privileged (under Linux: have the CAP_KILL capability in the user namespace of the target process), or the real or effective user ID of the sending process must equal the real or saved set-user-ID of the target process. In the case of SIGCONT, it suffices when the sending and receiving processes belong to the same session.
İçin durdurma bir işlem, kullanımı SIGSTOP
(veya SIGTSTP
kullanılabilir) sinyali öldürücü (2) . Bkz. Sinyal (7) .
Durdurulmuş bir işleme devam etmek için SIGCONT
sinyali kullanın .
Sahip genellikle bu işlemi başlatan kullanıcıdır. Komut diğer kullanıcılar tarafından yürütülebilir, ancak bu farklı bir işlem olabilir.
diğer sahibin bu işlemi yapamayacağı anlamına mı geliyor?
Başka sahibi yok. Programları (yürütülebilir dosyalar) ve işlemleri (çalışan programlar) karıştırmayın.
Bu, diğer sahiplerin bu işlemi çalıştıramayacağı / öldüremeyeceği / sürdüremeyeceği anlamına mı geliyor?
Tek sahip zaten süreci başlattı. Sahipleri değil, diğer kullanıcıları kastediyorsanız , bu değişir.
Kök, yani uid
0'a eşit bir kullanıcı tam güce sahiptir. Aynı şeyi paylaşan diğer kullanıcılar uid
, işletim sistemi açısından aynı kullanıcıdır, bu nedenle işlem üzerinde de tam güce sahiptirler.
Farklı bir kullanıcı kimliği olan kullanıcılar, sahip veya kök ayrıcalığına sudo
veya benzer bir komutla geçmelerine izin verilmedikçe veya daha az bir ölçüde söz konusu işlemle ilgili olmaları durumunda işlemi öldüremez / durduramaz / sürdüremez. onların hiyerarşilerinden.