Sistem günlüğü neden kullanıcı?


15

Kontrol /var/logettiğimde çok garip bir şey buluyorum

me@me:~$ ls -lt /var/log |head -6 '
total 160368
-rw-r-----  1 syslog            adm              19919118 Jan 15 16:55 auth.log
-rw-r-----  1 syslog            adm             139702302 Jan 15 16:55 syslog
-rw-r-----  1 syslog            adm                191122 Jan 15 16:55 mail.log
-rw-r-----  1 syslog            adm               2210432 Jan 15 16:32 kern.log
-rw-r--r--  1 root              root              1741863 Jan 15 14:22 dpkg.log

İlk dört günlük dosyasının sahibinin olduğuna dikkat edin syslog. Garip, çünkü sistemimde sadece bir kullanıcı var:

me@me~$ users
me

Dosya adı neden syslogkullanıcı olabilir?


6
Sisteminizde birden fazla kullanıcı olduğundan eminim. "Bir hesap ve ev dizini ile ilişkili insan kullanıcı" demek istediğini biliyorum ama tüm sistemler için "kullanıcı" kavramı bundan daha geniştir.

/etc/passwdBazen bir göz atın . Kök hariç 36 rol kullanıcısı sayıyorum. Ayrıca, man userskomutun ne yaptığını (yanlış) varsayalım.
chrylis -on grev-

Yanıtlar:


26

Sisteminize erişimle ilgili güvenlik ve izinlerle ilgilidir.

Ve hayır, sadece kendi kullanıcınızdan çok daha fazla kullanıcınız var. "Root", "daemon", "bin", "games", "nobody" ve "list" vardır.

Bir Do more /etc/passwdsisteminizde kullanıcıların bir listesi için. "/ Usr / sbin / nologin" ile birçok satır göreceksiniz. Bu, kendi kullanıcı gibi giriş yapabilen normal bir kullanıcı olarak kullanılamayacağı anlamına gelir. Üçüncü sütun kullanıcı kimliğidir. 1000'in altındaki tüm kullanıcı kimlikleri sahte kullanıcılardır. 1. sudo kullanıcınız (sistemi kuran) varsayılan olarak 1000'dir.

Temelde kullanıcı syslog kullanmasına izin verilir /var/log/bir dizin aittir olarak ayarlanır dizini kökü . Dizindeki izinlerden ödün vermek zorunda kalmamak (diğer kullanıcıların izinleri kullanabilmesi için izinleri düşürmek) için bu kullanıcı oluşturuldu.

Aynı şey Apache ve MySQL kullanıcısı için de yapılır (bunları yüklediğinizde bir www-veri kullanıcısı ve grubu ve bir MySQL kullanıcısı ve grubu görürsünüz), ancak bir sürü şey için kullanılır. Haricilara aygıtlara erişmek için kullanılan bir grup "diyaloğu" vardır. Kullanıcılar, bu cihazları kullanmasına izin vermek için bu gruba eklenir. Aksi takdirde izin verilmedi hatası alırsınız. İki şekilde çalışır: bir kullanıcının erişimini reddetmek, grubun kaldırılması anlamına gelir.


Bu sayı her zaman 1000 olmamıştır. Gerçek kullanıcıların kimliklerinin 20'den başladığı yeterince uzun bir geçmişi olan sistemler üzerinde çalıştım.
kasperd

1
Biliyorum ama Ubuntu her zaman 1000'de başlar. Redhat örneğin 500'de başlar.
Rinzwind

Evet, ancak kullanıcıların yerel olarak oluşturulması gerekmez. Benim durumumda, NIS üzerinden alındılar, bu günlerde muhtemelen LDAP olurdu.
kasperd

20 yaşından başlayan gerçek kullanıcılar Debian tabanlı bir dağıtımı ciddi şekilde bozar. Debian tabanlı sistemlerde 0-99 arası UID'ler Debian projesi tarafından belirli kullanımlara statik olarak tahsis edilir.
Peter Green

1
@PaddyLandau / bin / false bildirmeden bir oturumdan çıkar. nologin "Bu hesap şu anda kullanılamıyor" mesajını göstermelidir. (/etc/nologin.txt bu bildirimi tutar)
Rinzwind

8

Çekirdek ve diğer hizmetler tarafından oluşturulan günlük iletilerini çeşitli günlük dosyalarına, konsola ve / veya diğer hedeflere yazan sistem günlüğü hizmeti, kendi özel kullanıcı hesabı altında çalışır. Diğer birçok hizmet de öyle. Bu, en az ayrıcalık ilkesini uygulamaktır :

Güvenliği ihlal edilmiş veya hatalı bir hizmetin olası etkisini en aza indirgemek için (örneğin, bir saldırgan tarafından kötüye kullanılan bir hataya sahip bir hizmet veya buna neden olan bir hataya sahip bir hizmet, rastgele istenmeyen şeyler yapmak veya kötü niyetli bir geliştirici tarafından kasıtlı olarak kötü şeyler yapmak üzere tasarlanmıştır), her hizmetin yalnızca çalışması için gerekenlere ve başka bir şeye erişmesini istemezsiniz.

Herhangi bir unix benzeri işletim sisteminde (Ubuntu gibi tüm GNU / Linux dağıtımlarını içeren), en kolay şekilde ayrıcalıklar atayabilirsiniz (bu çoğunlukla belirli dosyaları veya dosya benzeri şeyleri okuma veya / veya yazma hakkıdır. cihaz düğümleri). Başka olasılıklar da vardır, ancak genellikle belirli bağlamlarda kurulum yapmak veya çalışmak için daha sıkıcı ve hataya eğilimlidirler.

Bu nedenle, syslog hizmeti syslog kullanıcı hesabı altında çalışır. Örneğin, şimdi bir saldırgan syslog hizmetine, olması gerekeni yerine söylediklerini yapmasını sağlayabilirse, syslog hizmeti hala sınırlıdır (syslog tarafından zorlanmayan, kullanıcı hesabına göre çekirdek tarafından zorlanır) yazılımın kendisi, ki bu da tehlikeye atılmış olduğu için işe yaramaz) sadece günlük dosyalarına (syslog kullanıcısının yazma erişimine sahip olduğu tek dosyalar) yazmaktır. Böylece, saldırgan güvenliği ihlal edilmiş sistem günlüğü hizmetini örneğin aynı bilgisayarda barındırılan bir web sitesinin veya veritabanının içeriğini değiştirmek için kullanamaz, çünkü ilgili dosyalar yalnızca belirli bir dizi diğer (insan veya sistem ) kullanıcı tarafından yazılabilir olacak şekilde ayarlanmıştır syslog kullanıcı hesabı tarafından değil.

Günlük dosyalarını silmekten / değiştirmekten ve "herkese açık" izni olan "herkese açık" izinle) okumaktan daha fazla zarar vermek için, saldırganın önce çekirdeğin veya bazı yazılımların ikinci bir hatadan faydalanması gerekir. yükleyen kullanıcıdan ( setuid ) farklı ayrıcalıklarla çalışmak ve böylece ek ayrıcalıklar ( ayrıcalık yükseltme ) elde etmek için yüklenir .


usersKomutu göre, kullanılan , kılavuz sayfasında edilir gösterileri sadece kullanıcılar an giriş . Sistem günlüğü kullanıcısı bir sistem kullanıcısı olduğundan , hiçbir zaman giriş yapmaz, bu yüzden bu listede asla görünmez. Sisteminizdeki tüm (insan ve sistem) kullanıcıların bir listesini almak için dosyaya bakabilir /etc/passwdveya burada açıklanan diğer yöntemlerden herhangi birini kullanabilirsiniz .


7

Çünkü syslog bir dosya değildir; sistem tarafından sistem arka plan programı ve uygulama iletilerini (hata ayıklama, hata, uyarı ve bilgi) dosyalara depolamak için kullanılan bir arka plan programıdır.

Sistem günlüğünün kısa bir tarihi için burayı okuyun .

Diğer dağıtımlarda, örneğin Red Hat Linux tabanlı olanlarda, sistemin syslog çıktısı adlı bir dosyada depolanır /var/log/messages. Yapılandırmaya bağlıdır.

Rinzwind'in dediği gibi, güvenlik nedeniyle işletim sistemindeki farklı bileşenler belirli bir kullanıcıyla çalışır ve her kullanıcının kendi hakları vardır. Örneğin, syslog en azından /var/logklasör üzerinde yazma iznine sahiptir .

Bir sistemin birçok hizmeti vardır ve genellikle her bir hizmet veya küçük bir hizmet grubu için kullanıcılar vardır. Örneğin apache get www-data|httpd|apache,. Normalde bu daemon kullanıcıları güvenlik sızıntılarını önlemek için Bash erişimine sahip değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.