SUID
Yapışkan bit programı çalıştıran bittikten sonra bellekte programın bir görüntü tutmak için sistem işaretleme çalıştırılabilir programlar uygulanır.
Ama hafızada ne saklandığını bilmiyorum. Ve bu durumda onları nasıl görebilirim?
SUID
Yapışkan bit programı çalıştıran bittikten sonra bellekte programın bir görüntü tutmak için sistem işaretleme çalıştırılabilir programlar uygulanır.
Ama hafızada ne saklandığını bilmiyorum. Ve bu durumda onları nasıl görebilirim?
Yanıtlar:
Bu muhtemelen insanların her zaman uğraştığı en rahatsız edici şeylerden biri. SUID / GUID biti ve yapışkan biti 2 tamamen farklı şeylerdir.
Bunu yaparsanız man chmod
SUID ve yapışkan bitler hakkında okuyabilirsiniz. Adam sayfası burada mevcuttur de.
alıntı
RwxXst harfleri , etkilenen kullanıcılar için dosya modu bitlerini seçer: okuma (r), yazma (w), yürütme (veya dizinleri arama) (x), yalnızca dosya bir dizinse veya yürütme / arama için bazılarına izin verme kullanıcı (X), kullanıcı veya grup kimliğini yürütme (ler) , sınırlı silme bayrağı veya yapışkan bit (t) olarak ayarlayın .
Yukarıdaki man sayfasının anlatmaya çalıştığı şey, x bitinin kullanıcı sekizlik (1. grup rwx) ve grup sekizlik (2. grup rwx) için rwxrwxrwx'te aldığı pozisyonun, x'in olduğu yere ek bir durum alabilir. bir s. Bu dosya oluştuğunda bu dosya çalıştırıldığında (eğer bir program ve sadece bir kabuk betiği değilse), sahibi veya dosya grubunun izinleriyle çalışacaktır.
Bu nedenle, dosya root aittir ve SUID biti açıksa, program root olarak çalışacaktır. Normal bir kullanıcı olarak çalıştırsanız bile. Aynı şey GUID biti için de geçerlidir.
alıntı
SETUID VE SETGID BITS
chmod, dosyanın grup kimliği, kullanıcının uygun grup kimliğiyle veya kullanıcının uygun grup kimlikleriyle eşleşmiyorsa, kullanıcının uygun yetkilerine sahip değilse, normal bir dosyanın set-grup kimliğini temizler. Ek kısıtlamalar, MODE veya RFILE set-kullanıcı kimliği ve set-grup kimliği bitlerinin göz ardı edilmesine neden olabilir. Bu davranış, alttaki chmod sistemi çağrısının politikasına ve işlevselliğine bağlıdır. Şüphe durumunda, temel sistem davranışını kontrol edin.
chmod, aksi belirtilmedikçe, bir yönetmenin set-kullanıcı kimliği ve set-grup kimliği bitlerini korur. Bitleri, u + s ve gs gibi sembolik modlarla ayarlayabilir veya temizleyebilirsiniz ve bitleri sayısal modda ayarlayabilir (ancak netleştiremezsiniz).
suid / guid yok - sadece rwxr-xr-x bitleri ayarlanır.
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid ve kullanıcının çalıştırılabilir biti etkin (küçük harf s) - bitler rwsr-xrx ayarlanır.
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid etkin ve çalıştırılabilir bit devre dışı (büyük S harfi) - rwSr-xr-x bitleri ayarlanır.
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
guid & group'un çalıştırılabilir biti etkin (küçük harf s) - bitler rwxr-sr-x ayarlanır.
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
guid etkin ve çalıştırılabilir bit devre dışı (büyük S harfi) - rwxr-Sr-x bitleri ayarlanır.
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
Öte yandan yapışkan bit dizinde t
olduğu gibi belirtilir /tmp
:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Bu bit, her zaman "sınırlı silme biti" olarak adlandırılmış olmalıydı, çünkü gerçekten neye benzediğini. Bu mod biti etkinleştirildiğinde, kullanıcıların yalnızca sahiplerinin bulunduğu dosyaları ve dizinleri silebilecekleri bir dizin oluşturur.
alıntı
SINIRLI SİLME BAYRAĞI VEYA ÇIKIŞLI BİT
Sınırlı silme bayrağı veya yapışkan bit, yorumu dosya türüne bağlı olan tek bir bittir. Dizinler için,
yetkisiz kullanıcıların, dosyanın veya dizinin sahibi olmadıkça dizindeki bir dosyayı kaldırmasını veya yeniden adlandırmasını önler; buna dizin için sınırlı silme bayrağı denir ve genellikle / tmp gibi dünyaca yazılabilir dizinlerde bulunur. Bazı eski sistemlerdeki normal dosyalar için, bit programın metin görüntüsünü takas cihazına kaydeder, böylece çalıştırıldığında daha hızlı yüklenir; Bu yapışkan bit denir.
ls
. Açıkçası, sadece süper kullanıcı yapışkan bit'i bir dosyaya koyabilirdi. Sanal bellek ve paylaşılan kütüphaneler tanıtıldıktan sonra daha da önemli hale geldi ve özellikle çağrı cihazları daha akıllı hale geldikçe ve hangi sayfaların yerleşik olarak tutulacağına dinamik olarak karar verebilir.
ed
yapışkan olduk .
"Yapışkan bit, programın çalışması bittikten sonra programın görüntüsünü bellekte tutmak için sistemi işaretleyen yürütülebilir programlara uygulanır."
Bunun oldukça eski bilgiler olduğunu düşünüyorum, bugün çoğu modern Unix bunu görmezden geliyor. Linux'ta, yapışkan bit yalnızca dizinlerle ilgilidir. Bkz burada ve oldukça bilgilendirici Wikipedia makalesi .
Her neyse, bu eski davranışta görüntü (sadece "kod", veri değil) sadece sanal bellekte tutuldu - normalde değiştirildi, gerçek bellekte değil, bir dahaki sefer daha hızlı çalıştırmak için.
Yapışkan bit nedir?
Yapışkan bir bit, yalnızca o klasördeki dosyanın sahibinin veya kök kullanıcının dosyayı silmesine veya yeniden adlandırmasına izin veren bir dizinde ayarlanan bir izin bitidir. Başka hiçbir kullanıcı tarafından oluşturulan dosyayı silmek için başka hiçbir kullanıcının gerekli yetkisi yoktur.
Bu, diğer kullanıcıların tam izinlerine sahip olmasına rağmen, kritik klasörlerin ve içeriğinin (alt dizinler ve dosyalar) silinmesini önlemek için bir güvenlik önlemidir.