İçindeki dosyaların /bin
(veya çalıştırılabilirlerin tutulduğu başka bir standart dizinin) kök tarafından yazılabilir olması gerçekten önemli değildir. Kullandığım bir Linux sunucusunda, kök tarafından yazılabilir, ancak OpenBSD makinemde değil.
Grup tarafından veya "öteki" tarafından yazılabilir olmadıkları sürece!
Örneğin güvenlik sorunu yoktur.
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Biri üzerine yazmak istiyorsa, kök olmak zorunda kalacak ve eğer root
ve üzerine yazmaksa, o zaman
- yeni bir sürüm yüklemek veya
- sakar
- Kök izinleri zaten olan bir saldırgan .
Dikkate alınması gereken bir başka şey de, root korumalı olup olmadığına bakmaksızın dosyaya yazabilmesidir, çünkü ... root.
Bir "script" in bir ikili dosya kadar çalıştırılabilir olduğuna dikkat edin. Bir komut dosyasının yazılabilir olması gerekmez "çünkü bu bir metin dosyasıdır". Bir şey varsa, muhtemelen sadece aynı dizindeki diğer çalıştırılabilirlerle aynı izne sahip olmalıdır.
Artık her şeyin izinlerini değiştirmeyin! Bu, her türlü tahribata yol açabilir ve izinlerin doğru şekilde ayarlandığını doğrulayabilecek paket yöneticilerinin potansiyel olarak kafasını karıştırabilir. Güvenlik açısından kritik bir uygulamada izinleri yanlış şekilde yanlış bir şekilde değiştirirseniz, sistemi savunmasız hale getirebilir.
Yalnızca çok tuhaf görünen bir şey bulamazsanız, çalıştırılabilir dosyalar üzerindeki izinlerin doğru ayarlandığını varsayalım; bu durumda, işleri değiştirmeye başlamak yerine muhtemelen doğrulamak için ilgili paket bakımcısına başvurmalısınız.
Yorumlar ve sohbet sırasında , bazı tarihler için bir çağrı yapıldı.
Linux'ta ikili dosyalar üzerindeki izinlerin geçmişi hakkında hiçbir şey bilmediğim bir şey değil. Dizinin izinlerini veya yalnızca umask
Linux'un varsayılan değerlerinden devraldıklarını iddia edebilirler , ancak gerçekten bilmiyorum.
Bildiğim şey, OpenBSD’nin binary’leri varsayılan olarak 555 izin moduyla ana sisteme 1 kurmasıdır ( -r-xr-xr-x
). Bu Makefile fragmanı belirtilen yılında /usr/share/mk/bsd.own.mk
hangi setleri BINMODE
sırasıyla 555 (zaten ayarlanmış olmaması durumunda). Bu daha sonra make build
içinde çalıştırılabilir dosyaları yüklerken kullanılır /usr/src
.
Bu dosya için eklenmiş CVS günlüğüne bir göz attım ve dosyadaki bu satırın 1995'te NetBSD'den alındığından beri değişmediğini gördüm .
NetBSD'de, dosya ilk olarak 1993'te 555'eBINMODE
ayarlanmış CVS'ye yerleştirildi.
FreeBSD projesi NetBSD ile aynı dosyayı en az 1994'ten beri kullanmış gibi görünüyor ve daha sonraki bir taahhütte eski dosyaların Berkeley Yazılım Dağıtımı'nın 4.4BSD sürümünden alındığına dair bir ipucu ekliyor.
Bunun ötesinde , Berkeley'deki CSRG , kaynakları SCCS'de tuttu, ancak depoları GitHub 2'deki Git formunda mevcut . Buradaki adli tedaviyi verdiğimiz dosya, 1990'da Keith Bostic (veya ona yakın olan biri) tarafından yapılmış gibi görünüyor .
Demek bu hikaye. Sebebini istiyorsan, sanırım Keith'a sormamız gerekecek. " Bunun 555 olması gerektiği için ... " diyen bir değişikliğe bağlılık mesajı görmeyi umuyordum , ama hayır.
1 BSD sistemleri, Linux'tan daha "temel sistem" ve "3. parti paketler" (portlar / paketler) olarak daha katı bir bölüme sahiptir. Temel sistem, işletim sistemi çalıştırmak için komple bir tesis seti sağlarken, portlar veya paketler "yerel yazılım" olarak görülür ve altına kurulur /usr/local
.
2 70'lerden sonraki Unix sürümlerinin daha kapsamlı bir GitHub deposu da mevcuttur .
root
bir ikili dosyaya yazma izni olduğunu merak ediyor musunuz? Başka bir şey değilse, bu paketi yükseltirken yardımcı olacaktır.