Root / superuser, okuma korumalı dosyalarımı okuyabilir mi?


34

Paylaşılan unix barındırmada, eğer bir dosya-duyarlı.t.t.tk varsa ve yayınlarım:

chmod 600 sensitive-data.txt

Kök kullanıcı hala dosyamı okuyabilir mi? Özellikle, şifremi mercurial hgrc dosyasında saklamanın güvenli olup olmadığını merak ediyorum.

GÜNCELLEME

Kurulumu çok kolay olduğu için sabit anahtarlık uzantısını kullanmaya karar verdi:

pip install mercurial_keyring

ve sonra hgrc'ye ekleyin:

[extensions]
mercurial_keyring =

Ancak bu sorunun cevabını hala merak ediyorum.

Yanıtlar:


61

Evet, kök olabilir:

$ echo Hello you\! > file
$ chmod 600 file
$ ls -l file
-rw------- 1 terdon terdon 11 Feb 27 02:14 file
$ sudo -i
# cat file
Hello you!

Her durumda, root dosyalarınızı root olarak okuyamasa bile, parolanız olmadan her zaman sizin gibi giriş yapabilir:

$ whoami
terdon
$ sudo -i
[sudo] password for terdon: 
# whoami 
root
# su - terdon
$ whoami
terdon

Böylece, (veya ) rootkullanarak başka bir kullanıcı adına geçebilir ve daha sonra sizmiş gibi bir şey yapabilirsiniz.susudo -iu username


23

Her zaman farz root(ve başka herhangi bir kullanıcı / süreç CAP_DAC_OVERRIDEve CAP_DAC_READ_SEARCH) yapabileceği her şeyi yapıyor bir LSM sürece (SELinux'un, AppArmoru veya benzeri) önler onu.

Bu, aynı zamanda, tüm tuş vuruşlarınızın okunabileceğini varsaymanız gerektiği anlamına gelir. Şifreler gerçekten güvenli değil. Ciddi bir güvenlik düzeyi istiyorsanız, tamamen sizin tarafınızdan kontrol edilen bir sistemi kullanmanız gerekir (ve başkaları tarafından bile kullanılmaz).


Bu aslında şu anda uygulandıkları gibi yeteneklerle ilgili sorunum. Hedef belirlemediklerinden, bunun olmasını engellemek için yeteneklerin yerini alan (SELinux gibi) tür uygulamalara ihtiyacınız vardır. Bir kullanıcıya CAP_DAC_OVERRIDEvermek onlara bir faul verir, sistemdeki diğer tüm güvenlik mekanizmalarını geçersiz kılmak için ihtiyaç duydukları tüm imtiyazı ellerinden alır. CAP_DAC_OVERRIDEtemelde öyle CAP_DO_WHATEVER_YOU_WANT.
Bratchley

10

Evet kök her şeyi yapmak için tüm ayrıcalıklara sahip

Burada bir Dizin adı testi oluşturduğumu ve lonston.txt dosyasına dokunduğumu ve dosyaları listelediğimi görebilirsiniz.

root@system99:/tmp# mkdir test && touch lonston.txt && ls -l
total 4
-rw-r--r-- 1 root root    0 Feb 27 16:35 lonston.txt
drwxr-xr-x 2 root root 4096 Feb 27 16:35 test

Sonra 000 kullanarak ve izin görmek için dosya ve dizin izni null olarak değiştirdim ve listelenen

root@system99:/tmp# chmod 000 lonston.txt && chmod 000 test && ls -l
total 4
---------- 1 root root    0 Feb 27 16:35 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Sonra bile dosyaya yazabilirim ve dosyayı kullanarak kediyi okuyabilirim

root@system99:/tmp# echo "Yes root have all Privileges than other user's, let we see the permission of user's too" > lonston.txt 

root@system99:/tmp# cat lonston.txt 
Yes root have all Privilages than other user's, let we see the permission of user's too

Hatta d --------- (null) 000 iznine sahip dizine girebilirim, hatta kök bile okuma ya da Yazma İzni yoktur.

root@system99:/tmp# cd test/
root@system99:/tmp/test# pwd
/tmp/test

Hatta herhangi birinden izin değişikliğinden sonra dosyaları ve klasörleri oluşturabilirim.

root@system99:/tmp/test# touch /tmp/test/lonston/testdir/babin.txt

root@system99:/tmp/test# ls -l /tmp/test/lonston/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 27 16:39 babin.txt

Şimdi burada 400 ile İzin görebilirsiniz

root@system99:/tmp/test# chmod 400 babin.txt

Dosya iznini görmek için liste

root@system99:/tmp/test# ls -l
total 8
-r-------- 1 root root   34 Feb 27 16:42 babin.txt
drwxr-xr-x 3 root root 4096 Feb 27 16:38 lonston

Vim im kullanarak babin.txt dosyasına 1 satır ekledim

root@system99:/tmp/test# vim babin.txt

Fakat vim modundayken bizi görecekler W10: Uyarı: Salt okunur bir dosyayı değiştirme Ama yine de Yazılabilir

Şimdi çıktı için dosyayı yakalayabiliriz.

root@system99:/tmp/test# cat babin.txt 
hi this is the write persmission 
this is added while the file have 400 permission

Daha sonra root kullanıcıdan normal kullanıcıya çıkış yaptım ve null permisson'a sahip olan dosyada root içinde ne var

root@system99:/tmp# exit
exit

/ Tmp Dizinine Git

sysadmin@system99:~$ cd /tmp/
sysadmin@system99:/tmp$ ls -l
total 8
---------- 1 root root   88 Feb 27 16:36 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Ancak dosyayı normal kullanıcıdan okurken

sysadmin@system99:/tmp$ cat lonston.txt 
cat: lonston.txt: Permission denied

sysadmin@system99:/tmp$ cd test/
cat: test/: Permission denied

İşte bu, kök Kullanıcının gücüne sahip olduğunuzu umuyorum

Normal Kullanıcı'daysanız, kök ayrıcalıklara ihtiyacınız varsa, sudo kullanmamız gerekir, sudo şifresini sorar

örnek :

sysadmin@system99:/tmp$ sudo cat lonston.txt 
[sudo] password for sysadmin: 
Yes root have all Privilages than other user's, let we see the permission of user's too

Sudo kullanıcısı root kullanıcı grubuyla işbirliği içindedir, bu nedenle hangi sudo root ayrıcalığına sahip olur.

Sudo hakkında daha fazla bilgi için

# man sudoers

Burada normal kullanıcı olarak tanımladıklarını görebiliyoruz. Sudo hakları var. Burada bahsettiğim sadece daha az satır var.

sysadmin@system99:/tmp$ sudo cat /etc/sudoers

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Tamamen okuyabilir, düzenleyebilir veya dosyaları kökten bile silebiliriz Okuma izni yok.


2
Bu cevap neden bu kadar az öneme sahip? Örneklerle oluşabilecek hemen hemen tüm vakaları kapsar.
Foo Bar

8

Geleneksel Unix'te kök tamamen güçlüdür. Özellikle, kök herhangi bir dosyayı okuyabilir ve hatta programlarınızın dahili olarak yaptıklarını merak edebilir. Veriler gerçekten hassassa, yalnızca şifrelenmiş kopyaları saklayın (örneğin bunun için GNU Privacy guard'ı düşünün , ancak daha önce belgelerini dikkatlice okuyun) ve hiçbir zaman tam kontrolünüz altında olmayan bir makinede şifresini çözün.

(Paranoya harika, hiçbir zaman yetmeyecek ;-)

Cidden, verilerin sızmasının neden olabileceği maliyetleri ve bu nedenle güvenlik için ne kadar para almaya hazır olacağınızı dikkatlice düşünün. Mükemmel güvenlik mümkün değildir, biraz daha fazla güvenlik elde etmek için maliyet hızla artmaya başlar. Ancak, gerçekten güvenliği artırmayan pahalı bir önlem tuzağına düşmemeye dikkat edin ...


3

Ayrıca, donanım ile aynı odada bulunma fırsatı bulabilen herkesin istediği her şeyi okuyabileceği veya yazabileceği varsayılmalıdır. Çok sabırlı olmaları durumunda, sonunda şifrelenmiş verileri anlayabilirler. Şifreleme yazılımını değiştirebiliyorlarsa, yan kanal yöntemlerine ihtiyaçları yoktur.


2

Evet, kök sahip olmasa bile korunan dosyayı okuyabilir (sahip açıkça korumayı kaldırabilir ve ardından içeriği okuyabilir):

echo "123" > abc.txt
chmod 000 abc.txt
cat abc.txt

cat: abc.txt: İzin reddedildi

su
cat abc.txt

123

Ancak normal kurulumda, kök NFS ("kök kabağı") gibi uzak dosya sistemlerinde korunan dosyalara erişemez.


NFS kök kabuğundan bahsettiği için +1. Bununla birlikte, root NFS'ye monte edilmiş bir dizine sahip olan kullanıcıya dava açabildiği sürece, root squash hala korumaz.
Jenny D,

2

Kök veya herhangi birinin dosyalarınızı okuyabilmesini önlemek için, onları şifrelemeniz gerekir. Dosya Şifreleme, karmaşık dosya sistemi işlemleriyle uğraşmaktan kaçınmak istemeniz durumunda aramak için çok uygun bir seçenektir.

Şifreleme Seçenekleri:

  1. Sıradan dosyaları şifreleyin ve kendiniz dışındaki herkesin bu dosyaları görmesini önleyin
  2. Shell Script'leri şifreleyin ve şifreli sürümleri çalıştırılabilir hale getirin, ancak aynı zamanda herkesin onları değiştirmesini veya görüntülemesini önleyin

Seçenek 1'i seçerseniz, dosyalarınızı şifrelemenizin bir yolu:

cat (your-file) | openssl aes-128-cbc -a -salt -k "(specify-a-password)" > (your-file).enc

Yukarıdaki dosyanın şifresini çözmek için şuna benzer bir komut çalıştırın:

cat (your-file).enc | openssl aes-128-cbc -a -d -salt -k "(specify-the-password)" > (your-file).dec

- Yukarıdakileri bir komut dosyasına koymak isteyebilirsiniz, böylece tarihinizde görünmez. Ya da, sadece -sk parametresini kaldırabilirsiniz , ki bu sizden bir şifre sormanızı sağlar.

Seçenek 2'yi seçerseniz, komut dosyanızı kopyalayıp aşağıdaki siteye yapıştırmanız yeterlidir:

http://www.kinglazy.com/shell-script-encryption-kinglazy-shieldx.htm

Komut dosyanızı o siteye gönderdikten sonra, anında sizin için bir zip dosyası oluşturulur. Bağlantıyı zip dosyasına kopyalayın, ardından UNIX kutunuza gidin ve aşağıdaki adımları izleyin:

  1. zip-link-zip dosyasına yaz
  2. yeni indirilen zip dosyasını aç
  3. cd / tmp / KingLazySHIELD
  4. ./install.sh / var / tmp / KINGLAZY / SHIELDX- (betiğinizin adı) / ana sayfa / (kullanıcı adınız)

Önceki adımları tamamladığınızda, şifrelenmiş komut dosyanızı 4. adımda kurmanız için belirttiğiniz yerden çalıştırabilirsiniz. sh

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.