Cevapları zor anlamak (kendime) ve bunu anlamak biraz düşünmemi gerektirdi ( bu yorum beni anlamamı sağladı), umarım daha iyi bir açıklama yapacağım.
1. Sahte olarak neler olur?
Kendi kullanıcılarına olanlardan daha fazlası değil Kesinlikle daha fazla bir şey yok. Siz fakeroot
(ki dendiğinde size yeni bir kabuk verir sudo
) izin için ihtiyacınız olan şeyleri yapıyormuş gibi yapar ve çıkmazsanız kesinlikle hiçbir şey olmaz.
Eğer düşünürseniz, bu tamamen zaman kaybıdır. Neden gerçekleşmeyecek şeyler yapıyorsun? Bu delilik. Bunların hiçbirini yapmamış olabilirdiniz ve hiçbir iz kalmayacağından hiçbir fark olmazdı.
Bir dakika bekle...
2. Sahte kök izi
Kalan bir iz olabilirfakeroot
. MortenSickel'in cevabındaki komutlara bir bakalım ki bu oldukça hoş ve bir artığı hak ediyor:
$ fakeroot
# echo "Wow I have root access" > root.tst
# ls -l root.tst
-rw-rw-r-- 1 root root 23 Oct 25 12:13 root.tst
# ls -l /root
ls: cannot open directory /root: Permission denied
# exit
$ ls -l root.tst
-rw-rw-r-- 1 ubuntu ubuntu 23 Oct 25 12:13 root.tst
İlk bakışta, kullanılmış olması fakeroot
tam bir zaman kaybı gibi görünüyor . Sonunda, eğer kullanmasaydın fakeroot
, aynı şeyi elde ederdin.
Buradaki ince şey şudur:
$ cat root.tst
Wow I have root access
Bu, dosyanın içeriğinin hala bir kök olduğunu hatırlıyor demektir. Kullanmamanın fakeroot
aynı sonuçları vereceğini söyleyebilirsiniz . Haklısın, bu örnek çok basit.
Başka bir örnek alalım:
$ fakeroot
# touch x
# touch y
# chown myuser:myuser x
# ls -l > listing
# exit
$ ls -l
total 4
-rw-rw-r-- 1 myuser myuser 152 Jan 7 21:39 listing
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 x
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 y
$ cat listing
total 0
-rw-rw-r-- 1 root root 0 Jan 7 21:39 listing
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 x
-rw-rw-r-- 1 root root 0 Jan 7 21:39 y
Ne olduğunu görelim. Ben gibi davrandı root
tamamen etkisiz olan ve oluşturulan x
ve y
. Ben davrandı x
ait olduğu myuser
ve y
ait olduğu root
. Aslında ikisi de myuser
(sonunda görebildiğimiz gibi), ama ben böyle davrandım .
Sonra bir liste oluşturdum ve hayal gücümü bir dosyaya kaydettim. Daha sonra dosyaya geri baktığımda, dosyaların kime ait olduğunu hayal ettiğimi görebiliyorum. Yine, aslında hayal ettiklerime ait değiller, sadece hayal ettim.
3. Peki ... Neden bunu tekrar istiyorsun?
Bu listeyi oluşturmak için root olmama gerekmediğini söyleyebilirsin. Girişi basitçe oluşturabilir, hayal gücümü yansıtacak şekilde düzenleyebilirdim. Haklısın, buna ihtiyacın yoktu fakeroot
. Aslında, fakeroot
bunun aslında hiçbir şey yapmadığını bilmek, daha önce sahip olamadığınız bir yeteneğe sahip olamazsınız.
Ancak , ve fakeroot
bununla ilgili olan şey, girişi düzenlemek önemsiz olabilir. Sisteminize kurulabilen bir pakette olduğu gibi , dosyalarınızı bir arada tutan ve izinlerini ve sahiplerini hatırlayan bir tar
ed, gzip
ed, xz
ed, bzip2
ed veya başka bir formatınız vardır. Sıkıştırılmış dosyayı kolayca değiştirebilir ve bir dosyanın sahipliğini düzenleyebilir misiniz? Seni bilmiyorum ama bir yol düşünemiyorum.
Her şey sıkıştırıldığında sıkıştırılmış dosyayı değiştiren ve sahiplik ve izinleri programlı olarak düzenleyen bir araç olabilir mi? Evet olabilirdi. Böylece, ya mülkiyeti sıkıştırmadan önce taklit edebilir ya da sonradan değiştirebilirsiniz. Debian halkı eskilerin daha kolay olduğuna karar verdi.
4. Neden sadece kullanmıyorsunuz sudo
?
Her şeyden önce, yazılım oluşturmak için kök ayrıcalıklarına ve bunları sıkıştırmak için kök ayrıcalıklarına ihtiyacınız yoktur. Bu yüzden, ihtiyacınız yoksa, bu izni almayı düşünmek için bile gerçekten bir Windows kullanıcısı olmanız gerekir. Ama alaycı bir yana, root şifreniz bile olmayabilir.
Ayrıca diyelim ki kök izinleriniz var. Ve diyelim ki bir dosyanın sadece root'a okuma erişimi olması gerektiği gibi davranmak istediğinizi varsayalım. Böylece sudo
, aslında dosya sahibini ve izinlerini değiştiriyor root
, kök kabuğundan çıkıp her şeyi paketlemeye çalışıyorsunuz. Başarısızsınız çünkü artık root erişiminiz olmadığı için dosyayı artık okuyamıyorsunuz. Bu yüzden sudo
paketi kök olarak sıkıştırmanız ve sıkıştırmanız gerekir . Etkili, her şeyi kök olarak yapmanız gerekiyor.
Bu Kötü TM .
Paketleyici olarak kök izinlerine ihtiyacınız yoktur ve alamazsınız. Bir paketi kurduğunuzda, A
root ( ) olarak bir dosya ( ) kurmanız gerekebilir ve o zaman root izinlerine ihtiyacınız olacaktır. Bunların hepsi fakeroot
bunu mümkün kılmaktır. Paketleyici listesinin A
, arşivleyici için kök tarafından sahip olduğu şekilde olmasını sağlar, böylece paket kullanıcı tarafından açıldığında, arşivleyici kök izni ister ve root'un A
sahip olduğu şekilde oluşturur .
sudo
veyasu
makineniz olduğu için , normal kullanıcı olarak yapılabilecek her şeyi root olarak yapmaktan kaçınmak iyi bir fikirdir .fakeroot
iki kullanımı vardır 1) programları, sizin gerçekten kötüye kullandığınıza inanmanızı sağlar, bazı kötü yazılmış mülk yazılımlara ihtiyaç duyulmasa bile (genellikle Windows geliştiricisi Linux yaptı) ve 2) ihtiyaç duyacağınız dosya modunu ve mülkiyet değişikliklerini taklit etmeyi gerektirebilir. t Aksi haldetar
, örneğin yazılımı paketlerken yararlı olan doğru izinlere ve sahipliğe sahip bir dosya oluşturmak için yapabileceklerdir .