Neden root ayrıcalıklarına sahip bir kullanıcı artık ~ değil?


20

Merak ettim, neden root olarak giriş yaptığımda, artık / home / user içinde olmadığımı bilmek istiyorum . Sebep nedir ve / root dizini tam olarak ne işe yarar?

Ben gelişmiş bir kullanıcı değilim. Lütfen basit kelimelerle cevap verin veya net, basit açıklamalar sağlayan bir link verin. Ubuntu 16.04 kullanıyorum ve root olarak giriş yapıyorum sudo -i. O en açıklandığı gibi burada , sudo -isahip / root ev olarak. Sebebinin ne olduğunu bilmek istiyorum; orada olmanın bir avantajı var mı? Ve içinde ~ gibi kullanıcı değil sudo -s.


11
root aynı zamanda bir kullanıcıdır, o yüzden kişisel bir homedizini vardır, fakat bu ismini adlandırırroot
damadam

3
sudo -sAynı kullanıcı dizininde olmak için kullanabilirsiniz .
Pilot6,

3
@ Pilot6 üzgünüm ben de yorumunuzu gördüm aynı zamanda ekledi: D umursamıyorum :)
Rinzwind

2
@ Unbesiegbarkeit man sudosoruyu cevaplayacaktır. Basit olmak user -iiçin root kullanıcı ayarlarını kullanmak, fakat sudo -sgeçerli kullanıcı ayarlarını kullanmak.
Pilot6,

Yanıtlar:


28

Bir sudokomut çalıştırarak root olarak giriş yapmıyorsunuz . Kök ayrıcalıklarına sahip bir kabuk başlatıyorsunuz.

Geçerli kullanıcı giriş dizininde kalmak istiyorsanız sudo -s, sudo -ikomut yerine kullanabilirsiniz .

cd ~sizi kök ayrıcalıklarına sahip bir kabukta yokmuş gibi aynı dizine götürür. Kelimenin tam anlamıyla /home/$USER.

Kullandığınızda sudo -i, sistem rootkullanıcı olarak giriş yapmışsınız gibi davranır . Bu nedenle

cd ~ 

sizi kök kullanıcı ev dizinine getirir /root.

/rootdizin, rootkullanıcı için bir giriş dizinidir .

Temel fark kabuk ayarları dosyaları sever olmasıdır .bashrcitibaren kullanılmaktadır /rootdurumunda sudo -ive normal bir kullanıcıdan durumunda sudo -s.


3
Evde ne gibi avantajların / kökün var ?
Codito ergo

2
Gibi dosyalar .bashrcoradan belirli bir kabukta kullanılır. Çoğu durumda fazla fark yoktur.
Pilot6,

11
@Beğişik pazar / ev belirli koşullar altında monte edilemez, örneğin, tek kullanıcı modu, ağ erişimi yok, vb. Kökün hala bu durumlarda oturum açabilmesi gerekir.
doneal24

2
@ DougO'Neal Mevcut değilse /home, sorun mevcut değildir. O zaman gerçekten root olarak giriş yaptınız.
Pilot6,

4
@ Pilot6: Farklılıklar var ya da olması gerekiyor. Örneğin, makinelerimde root's. * Shrc dosyasını, root olarak çalıştığımı görsel olarak görünür kılmak için ayarladım - örneğin farklı bir formatta ve kırmızı renkli komut istemi. Ayrıca takma adlar, kök olarak yapıldığında zararlı olabilecek bazı şeyleri yapmamaya ayarlanır, & c.
jamesqf

29

rootKullanıcının evinin /rootolmamasının /home/rootnedeni, genellikle /homeayrı bir bölüm / birim / disk için bir bağlantı noktasıdır ... (disk alanı ya da uzak gibi çeşitli nedenlerden dolayı ...)

Herhangi bir nedenden ötürü montaj /homebaşarısız olursa, hala araştırmak ve düzeltmek rootiçin /rootev dizininize bağlanabilir ve

Dahası, bakım için, ilk kurulum, yeniden boyutlandırma, ... gibi bağlanmanız rootgerekirdi/home


7
+1, Bu kabul edilen cevap olmalıdır. Kökün evini herhangi bir yer olacak şekilde değiştirebilirsiniz, ancak kurtarma nedenlerinden dolayı / kökün açık / evde olmayacağız.
ntg

16

Sebep nedir ve / root dizini tam olarak ne işe yarar?

root'un evi / root'u vardır ve root'a geçtiğinizde kendi evinizde kalmanızı sağlar. Bu doğasıdır sudo -i. sudo -saynısını yapar ancak dizinleri değiştirmez. Sudo için el kitabı :

-s [command]

-S (kabuk) seçeneği, ayarlanmışsa SHELL ortam değişkeni tarafından belirtilen kabuğu veya parola veritabanında belirtilen kabuğu çalıştırır. Bir komut belirtilirse, kabuğun -c seçeneği ile yürütülmek üzere kabuğa geçirilir. Hiçbir komut belirtilmezse, etkileşimli bir kabuk yürütülür.

-i [command]

-İ (ilk girişi simüle et) seçeneği , hedef kullanıcının şifre veritabanı girişi tarafından belirtilen bir giriş kabuğu olarak belirtilen kabuğu çalıştırır . Bu, .profile veya .login gibi girişe özgü kaynak dosyalarının kabuk tarafından okunacağı anlamına gelir. Bir komut belirtilirse, kabuğun -c seçeneği ile yürütülmek üzere kabuğa geçirilir. Hiçbir komut belirtilmezse, etkileşimli bir kabuk yürütülür. sudo, kabuğu çalıştırmadan önce bu kullanıcının ana dizinine geçmeye çalışır. Güvenlik politikası, çevreyi, kullanıcı oturum açtığında mevcut olana benzer şekilde, bir değişken grubuna başlatacaktır. sudoers politikası kullanımdayken çalıştır.

Kök kullanıcının sistemin bir parçası olması gerekir. Farklı bir bölüme / eve koyduğunuzda ve kök, / evin bir parçası olduğunda, bölüm kurulmadıysa, ciddi bir sorunla karşılaşırsınız. Aynı sebepten dolayı

/bin
/sbin 

ve

/usr/bin
/usr/sbin

/ Usr'yı bir bölüme yerleştirip / usr takmadığınızda hala çalışan bir sisteme sahipsiniz.


2
Bu soruya nasıl cevap veriyor? Bir yorum mu?
Pilot6,

2
Sudo

2
sudo -iVs hakkında bir soru cevap var sudo -smı?
Pilot6,

2
Hmm yapabiliriz. Bir arama yapacağım. düzenlemek Bir bulamadık ama gördüğümü ama bizim Hollandalı ubuntu forumlarında olduğunu: D
Rinzwind

2
Görünüşe göre burada bir tane gördüm ama bulamadım.
Pilot6,

15

Linux dosya sistemi belirli bir şekilde yapılandırılmıştır. Temel ikili dosyalar içeride /bin/, önyükleyici dosyaları içeride /boot/, çoğu cihaz dosyası /dev/içeride, çıkarılabilir medya için bağlantı noktaları içeride /media/, vb ...

Bkz. Https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard .

Bazı küçük detaylar dağıtımdan dağıtıma kadar (örneğin /usr/bin/vs. /usr/local/bin/) farklılık gösterebilir , ancak genel olarak hemen hemen tüm Linux dağıtımları aynı dizin yapısını izler.

Soruna cevap vermek için:

Kullanıcıların giriş dizinleri /home/. Prensip olarak, Linux çok kullanıcılı bir işletim sistemidir. Dizüstü bilgisayarınızda ana dizini açıkken yalnızca bir kullanıcı hesabınız olabilir /home/<username>/, ancak /home/paylaşılan bir Linux sunucusuna bakarsanız , birçok ev dizinini göreceksiniz: her kullanıcı hesabı için bir tane. Buradaki fikir, sistemin her kullanıcısının yalnızca kendi giriş dizininde yazma izinlerine sahip olmasıdır. Kullanıcı adınız ise, bobiçindeki dosyaları okuyabilir ve yazabilir ve silebilirsiniz /home/bob/ancak içinde /home/alice/veya içinde hiçbir şeye dokunamazsınız /var/log/.

rootolsa farklı. rootyönetim kullanıcısıdır ve sistemin her yerinde yazılı ayrıcalıklara sahiptir (ve sistemin herhangi bir kullanıcısı olarak hareket edebilir). Bu nedenle root, özel bir giriş dizininin /root/olması mantıklı geliyor çünkü rootnormal bir kullanıcı değil. Bunun dışında, /root/özel bir sihir içermeyen normal bir dizin olsa da, sistem yardımcı programlarının /root/kullanıcının evi olmasına bağlı olarak sessiz olması muhtemeldir (muhtemelen) root.

Bir sudo -iterminalde çalıştırdığınızda , örneğin normal kullanıcı bobolmaktan geçersiniz root. Bu anahtarın yalnızca yazdığınız terminal penceresini etkilediğini unutmayın sudo -i. Dosya yöneticiniz için hala devam edersiniz bobve başka bir terminal penceresi açarsanız hala boboradasınız demektir. Bu bağlamda, sembol ~mevcut kullanıcının ana dizini için bir kestirme şeklidir. İçin bob ~araçlar /home/bob/ama için root ~araçlar /root/.

Umarım bu sizin için işleri açıklığa kavuşturur.


3
Bu mükemmel bir cevap!
Pilot6,

5
Muhtemelen Root'un ana dizininin başlangıçta olduğunu belirtmekte fayda var /. Standart konum güvenlik nedeniyle değişmiştir (herkes dosya listeleyebilmelidir /, bu yüzden herhangi bir kullanıcı kök kullanıcının sahip olduğu herhangi bir noktayı görebilirdi.
Austin Hemmelgarn

14

Görüyorum ki herkes root olarak oturum açtığınızda neler olacağına cevap veriyor (/ dizininde olmayan bir ~ dizini alırsınız) ama kimse nedenini söylemiyor . İşte nedeni:

Eğer tüm / ev yapısı kullanılamaz hale gelirse ve onu düzeltmek zorunda kalırsanız ya da alanın tükenmesi nedeniyle yeniden yerleştirmeniz gerekiyorsa, bunu bir şekilde yapmanız gerekir. Herhangi bir giriş yapmış olursanız, içinde / home'u olan herhangi bir kullanıcı olarak oturum açamazsınız. Böylece kök kullanıcı başka bir yerde sakladı.


3
Deneyin ve normal bir kullanıcı olarak dağıtım ve güvenlik ayarlarına bağlı olarak, giriş yapmazsınız veya erişilemez olarak / as cwd ve $ HOME ile bitirdiniz. Mesele şu ki, kök, diğerleri, örneğin oradaki özel ihtiyaçlar dosyaları nedeniyle, örneğin istemediklerinde, ana dizine erişmek isteyecektir. Çoğu fss'a benzer şekilde, root için yer
ayırdınız

2
Alexf ve arp'ın daha sonra yayınlanan cevapları temelde aynı şeyi söylüyor. Kimse kendi cevaplarını eklemeden önce mevcut yayınları okumuyor mu?
Jennifer,

@Dan - Değişikliklerinizi geri aldım. Görmek için:
Jennifer

(1) Sanırım, ev / kutulara ve onay kutularına koymanın bir gelişme olduğunu düşünüyorum, ancak bunu yapmak için çok önemli değil, çünkü herkes zaten ne demek istediğimi biliyor. Ne demek istediğimi biliyordun. (2) “denediğiniz anda çarpışırsınız” zamanla tutarsız. "sen" "sen" olurdun "ve" olur "geçmiş zamandır, bu yüzden şimdiki zaman olan" dene "den ziyade" denenmiş "olanlarla gitmek zorundadır. (3) "hir", Kate Bornstein tarafından icat edilen yeni bir zamirdir; "onu" ve "onu" kapsar ve cinsiyeti bilmediğinizde kullanışlıdır. ("Ze", "o" ve "o"
Jennifer

@Jennifer Endişelenme. Her gün yeni bir şey öğreniyorsun. hirBir yazım hatası olduğunu düşündüm . Tüm bilgi için teşekkürler! Kod biçimlendirmesini sağlam tutmanızı tavsiye ederim, ancak bu size kalmış.
Dan

8

Gelişmiş bir kullanıcı olmadığını söylüyorsun, bu yüzden adım adım cevap yazmaya çalışacağım.

Linux kullanırken, bazı önemli şeyleri hatırlamanız gerekir:

  • Linux çok kullanıcılı bir sistemdir. Unix felsefesini izleyerek başından beri böyle düşünülmüştü (Windows tarafından tek bir kullanıcı sistemi olarak algılanan farklı yaklaşımlara dikkat edin).

  • Çok kullanıcılı bir sistem olarak Linux, sistemdeki her bir kullanıcıya ait dosyaları ayırma yeteneğine sahiptir. Linux bunu başarmanın yolu, her kullanıcıya /home/dizinde bir alt klasör atamaktır . Her kullanıcı dosyası kendisine aittir ve yalnızca açabilir, değiştirebilir veya diğer kullanıcıların kullanmasına izin verebilir. Buna karşılık, dosya sistemindeki her dosya bir kullanıcıya aittir ve o kullanıcının bu dosyayı görebilecek veya kullanabilecek gücü kimdedir. Başka bir cevapta da belirtildiği gibi, başlangıçta kullanıcılar sistemlerini herhangi bir yere koyabilirler, ancak bir noktada işlerin daha iyi organize edilmesi gerektiği ve /home/("slash-home") kullanıcının dosyalarının olması gerektiği yer olduğu ortaya çıktı.

  • Bununla birlikte, sistemin kendisi ve / veya sistemdeki her kullanıcının ihtiyacı olan dosyalar vardır: ikili dosyalar, cihaz dosyaları, sistem dosyaları, vb. (Unutmayın: Linux'ta ve diğer tüm unix benzeri sistemlerde her şey bir dosyadır) . Bu küresel gerekli dosyaları içinde çeşitli klasörlerde organize dosya sistemi boyunca çeşitli yerlerde saklanır dosya sisteminin köküne : /. Ayrıca, küresel olarak ihtiyaç duyulan bu dosyalar sistemin belirli bir kullanıcısına ait değil, sistemin kendisine ait ... ama bu kafa karıştırıcı olabilir: ikili dosyaların sahibi kim? Global olarak ihtiyaç duyulan bu dosyalara kim izin veriyor?

  • Sistemdeki her dosya "bir sahibine" ihtiyaç duyduğundan, global olarak ihtiyaç duyulan dosyaları yönetebilen "özel bir kullanıcı" olmalıdır. Dahası, bu "özel kullanıcı", sistemdeki başka hiçbir kullanıcının yapamayacağı şeyleri yapabilir: sistem için başka kullanıcılar yaratabilir. Bu kullanıcıya "süper kullanıcı" (bizim için ölümlüler) ya da "root" (sistem için) denir.

  • Şimdi, bu süper kullanıcı sistemin başka bir kullanıcısı olmakla birlikte, diğer kullanıcılarınkinden çok daha fazla yetki ve sorumluluklara sahiptir: mesela bakım. Bu nedenle, "kök" ünün eşyalarını koymak için bir yere ihtiyacı olduğunu düşünmek doğaldır, ancak diğer kullanıcılara ait eşyalarla karıştırılmaması gerekir. Bu nedenle, aşağıdaki alt klasöre sahip olmak yerine /home/, "root" dosya sisteminde kendine ait ayrılmış bir alana sahiptir: /root/("slash-root" olarak adlandırılır). Unutmayın: "root" çok özel bir kullanıcıdır, bu yüzden eşyalarını koymak için özel ve ayrıcalıklı bir yere ihtiyaç duyar.

  • Şimdi, Ubuntu varsayılan olarak etkin bir root hesabına sahip değil, bu yüzden "normal" bir kullanıcının bir bütün olarak sistem üzerinde yetkiye sahip olması gerekiyor. sudo("Switch user and do") komutunun devreye girdiği yer burasıdır : normal bir kullanıcının (önceden "sudoers" listesine dahil edilmiştir) komutları başka bir kullanıcımış gibi (örneğin "root") kullanıyordu.

  • Son olarak, bu -iseçenekler "ilk girişi simüle et" anlamına geliyor. Bu sudo, verilen komutu çalıştırmadan önce "hedef kullanıcı profilinin" verilerini okuyacağı anlamına gelir . Komut sağlamazsanız sudo, hedef kullanıcının (kök) profili olan bir kabuk örneği başlatacak ... ve bu, "hedef kullanıcı" nın "ana" klasörüne taşınmaya başlayacaktır. Bu yüzden sudo -isizi root'un home klasörüne ( /root/) götüreceksiniz .

Umarım bu, neler olduğunu anlamanıza yardımcı olur sudo -i.


DÜZENLE

Sanırım açıklanamayan şeyler bıraktım, o yüzden buraya ekleyeceğim:

  • Yukarıda söyledim: "Linux'ta her şey bir dosyadır". Ve tam anlamıyla demek istiyorum! Belgeleriniz ve resimleriniz dosyalardır, fakat aynı zamanda terminaller ([CTRL] + [ALT] + [Fn] tuşlarına basarak erişebileceğinizler) ve fiziksel sürücüler ve örneğin klavyenizdir. Unix benzeri bir sistem, dosyalardan / dosyalara veri okuyarak veya yazarak, ve üzerinde çalıştığınız dosyayı ve yazdığınız anahtarların girişini gösteren sistemdeki uygun dosyalara veri akışını yönlendirerek çalışır. ve ekranda gördüğünüz çıktı. Bu dosyaların bazıları doğrudan kullanıcılar tarafından kullanılabilir, ancak bazıları kullanamaz; örneğin, doğrudan bir sabit sürücüye okuyamaz veya yazamazsınız, ancak Linux'un normal, göz atılabilir bir klasörü, /dev/sabit sürücünüzü temsil eden aygıt dosyasına (altında ) bağlamasına izin vermelisiniz .

  • Bir Linux dosya sistemi birden fazla fiziksel sürücüyü kapsayabilir . Basit bir örnek bir USB kalem sürücüyü taktığınız zaman olabilir: Linux bu sürücüyü takabilir (montaj, sistemin bir kabuk veya dosya gezgini içindeki dosyaları bir aygıt dosyasına bağlayabildiği standart bir klasöre bağlanma işlemidir /dev/) ve onunla çalışabilirsiniz ve işiniz bitince, Linux'tan sürücünün bağlantısını kesmesini ve ardından USB bağlantı noktasından çıkarmasını isteyin. Buradaki önemli şey, bu "mount - unmount" döngüsünün her gün kullandığınız * aynı dosya sistemini "etkilediğidir: her fiziksel sürücü eklediğinizde veya kaldırdığınızda yeni bir dosya sistemi oluşturmazsınız, ancak bu fiziksel sürücüyü dosya sistemine eklersiniz ( tekrar, bu felsefeyi Wndows'un yaklaşımıyla karşılaştırın).

  • Dosya sistemi birden çok fiziksel sürücüyü kapsayabildiğinden, sistemin farklı dosyalarının farklı fiziksel sürücülere yazılabileceği açıktır. Bir sürücü sistem ikili dosyalarını ( /bin/) depolayabilir ve diğeri kullanıcının dosyalarını ( /home/ve torunlarını) depolayabilir . Çoklu sürücü kurulumunda, sistemden /home/farklı bir fiziksel sürücüde yazılması yaygındır /root/, bu nedenle, eğer sistem bozulursa ve kullanıcılar oturumunu durduramazsa, çünkü sürücünün /home/çalışmayı durdurduğu yerde kök olabilir. (Bu basittir ... başka hiçbir kullanıcı yapamazsa, kökün oturum açmasına izin vermek için her fiziksel sürücüye birçok şeyin kopyalanması gerekir, ancak bu size genel bir fikir verebilir).

  • Ve bu tilde ( ~) karakteri ... geçerli kullanıcının giriş dizinini gösterir . Eğer "bob" olarak oturum, o zaman cd ~götürecektir /home/bob/, ancak "root" olarak giriş yaptıysanız, o zaman cd ~götürecektir/root/

tl; dr Yani şimdi herşeyin söylendiğini düşünüyorum:

  • "root", diğer kullanıcıların çok üzerinde bir yetki ve sorumluluk alan özel bir kullanıcıdır

  • "/ root /", "root" öğesinin normal kullanıcılara ait diğer şeyler ile karıştırılma riski olmadan eşyalarını saklayabileceği yerdir. Bu klasör, ondan farklı bir fiziksel sürücüye yazılabilir /home/.

  • sudo -ikök girişini simüle eden bir kabuk başlatır ve bu kök dizininin klasörüne taşınmayı gerektirir. Diğer kullanıcılarda olduğu gibi, cd ~sizi ana dizininize götürür, ancak kök iseniz,/root/

  • Sistem farklı fiziksel sürücülere kurulursa, root sistemdeki başka bir sürücü arızalansa bile oturum açabilir ve bir şeyleri düzeltmeyi deneyebilir.


1
Mükemmel cevap !
Kemer

7

Kökün ana dizininin farklı şekilde ele alınmasının temel nedeni:

İşler ters gittiğinde, / filesystem'ı bağlamayı en kısa sürede sistem kurtarma görevlerini gerçekleştirebilmeniz gerekir.

Kurulumunuza bağlı olarak, kullanıcı giriş dizinleri farklı bir dosya sisteminde olabilir veya hatta ağa bağlanmış olabilir.

Kök olarak giriş yapmak için (örneğin, bir giriş isteminde kök adı ve kök şifresini girin) konsoldan sadece bir tane sisteme bağlı olmanız gerekir.

(Çekirdek hizmetlerinin / usr / bin veya / usr / sbin yerine / bin ve / sbin içinde olmasının nedeni de budur - / usr içindeki her şey harcanabilir.)

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.