1. Neden bir root şifreniz yok
Eğer iken edebilirsiniz sizinle root olarak giriş yapmak için izin süper hesabı için bir parola oluşturun su
, 's değerinde bu Ubuntu (ya giderek, diğer dağılımlar yanı) işlerin gerçekleştirilmesi için olağan bir yol değildir söz. Ubuntu , bir nedenden dolayı varsayılan olarak root girişi ve şifre vermemeyi seçti . Bunun yerine, varsayılan bir Ubuntu kurulumu sudo
süper kullanıcı ayrıcalıkları vermek için kullanacaktır . Varsayılan bir Ubuntu'da işletim sistemini yükleyen kişiye varsayılan olarak "sudo" izni verilir.
Tam "sudo" iznine sahip olan herkes sudo
, emirlerini beklemeden "üst kullanıcı olarak" bir şey yapabilir . Örneğin, apt-get dist-upgrade
bir süper kullanıcı olarak çalıştırmak için şunları kullanabilirsiniz:
sudo apt-get dist-upgrade
Web'de Ubuntu hakkında bir öğretici okuduğunuz her yerde sudo kullanımını hemen hemen göreceksiniz. Bunu yapmanın bir alternatifi.
su
apt-get dist-upgrade
exit
Sudo ile, hangi kullanıcıların sudo erişimine sahip olacağını önceden seçersiniz. Kendi şifresini kullandıkları için bir root şifresini hatırlamalarına gerek yoktur. Birden fazla kullanıcınız varsa, root şifresini değiştirmek ve herkese yeni bir şifre bildirmek zorunda kalmadan, kullanıcının sudo izinlerini kaldırarak süper kullanıcı erişimini iptal edebilirsiniz. Bir kullanıcının sudo kullanarak gerçekleştirebileceği komutları ve bu kullanıcı için hangi komutların yasak olduğunu bile seçebilirsiniz. Son olarak, eğer bir güvenlik ihlali varsa, bazı durumlarda hangi kullanıcı hesabının tehlikeye girdiğini gösteren daha iyi bir denetim izi bırakabilir.
Sudo, süper kullanıcı ayrıcalıklarına sahip tek bir komut gerçekleştirmeyi kolaylaştırır. İle su
kalıcı olarak exit
veya ile çıkılması gereken bir süper kullanıcı kabuğuna düşersiniz logout
. Bu, insanların süper kullanıcı kabuğunda gerekenden daha uzun süre kalmasına neden olabilir, çünkü oturumu kapatıp tekrar açmaktan daha uygundur.
Sudo ile, şu komutla kalıcı (etkileşimli) bir süper kullanıcı kabuğu açma seçeneğine sahipsiniz:
sudo su
... ve bu hala herhangi bir root şifresi olmadan yapılabilir, çünkü komuta sudo
süper kullanıcı ayrıcalıkları verir su
.
Ve benzer şekilde, su -
bir giriş kabuğu yerine kullanabilirsiniz sudo su -
veya kısayolu sudo -i
.
Ancak bunu yaparken, sadece her komut için bir süper kullanıcı olarak davrandığınızı bilmeniz gerekir. Kazara yanlışlıkla sisteme bir miktar zarar vermeme ihtimalini azaltmak için (gereğinden fazla, sadece kullanıcınızın sahip olduğu dosyalara zarar verebilirsiniz), süper kullanıcı olarak kalmaktan kaçınmak iyi bir güvenlik ilkesidir.
Sadece açıklığa kavuşturmak için , eğer isterseniz, özellikle de bunun yerine bu şekilde yapmak istiyorsanız, kök kullanıcıya @ Oli'nin cevabında açıklandığı şekilde rootlara izin veren bir şifre verebilirsiniz. Sadece Ubuntu'nun tercih etme konvansiyonu hakkında bilgi sudo
vermek ve bunun bir alternatifi olduğunu bildirmek istedim.
2. chmod 777 -R komutunuzla ilgili sorunlar
Sorunuzun ikinci bir kısmı da var: Komuta ile ilgili sorunlarınız sudo chmod 777 -R foobs
.
İlk olarak, aşağıdaki uyarı makinenizde potansiyel olarak ciddi bir güvenlik sorununu gösterir:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Bu, bir aşamada, /var/lib/sudo
dünyaya yazılabilir olmaya başladığınız anlamına gelir . Bunu bir aşamada böyle bir komut kullanarak yaptığınızı hayal ediyorum sudo chmod 777 -R /
. Ne yazık ki, bunu yaparak sisteminizdeki tüm dosya izinlerini büyük olasılıkla kırdınız. Bunun izinleri dünyaca yazılabilir olarak değiştirilmiş tek önemli sistem dosyası olması muhtemel değildir. Temelde şimdi kolayca kırılabilir bir sisteme sahipsiniz ve onu geri almanın tek kolay yolu yeniden yüklemek olacaktır.
İkincisi, kullandığınız komut:
sudo chmod 777 -R foobs
Ana dizininizdeki dosyaları değiştirirken, bu durumda ~/Desktop
, kullanmak zorunda kalmamalısınız sudo
. Ana dizininizde yarattığınız tüm dosyalar yine de sizin tarafınızdan değiştirilebilir olmalıdır (eğer değilse, komik bir şeyler oluyor).
Ayrıca, yinelemeli olarak veya çok sayıda dosyada olduğu gibi, toplu olarak dosya izinlerini değiştirmenin sonuçlarının tamamen farkında olmanız gerekir. Bu durumda, dikkatli bir şekilde değiştiriyorsunuz, dünyadaki yazılabilir olması için dosya izinlerini ayarlayın. Makinedeki herhangi bir başka kullanıcı veya buggy sunucu yazılımı, bu dosyaların ve dizinlerin üzerine yazmak için kolay erişebilir.
Bu neredeyse kesin olduğunu chmod 777 -R [dir]
öyle değil diğer bir sürü farz olursa olsun sorun çözmeye çalışıyorlardı (ve yukarıda da belirtildiği gibi, orada da / var / lib sistem dosyalarına yapmış dair kanıtlar olduğunu ve uygun bir çözüm yerler).
Birkaç temel kural:
Ana dizininizdeki, masaüstünüzdeki, vb. Kendi dosyalarınızla uğraşıyorsanız, asla kullanmanıza sudo
veya süper kullanıcı haklarına ihtiyacınız yoktur . Yaparsanız, yanlış bir şey yaptığınıza dair bir uyarı işaretidir.
Paketlere ait sistem dosyalarını asla manuel olarak değiştirmemelisiniz. İstisna: Özel olarak bu paketleri tarafından belgelenen şekillerde yapılmadıkça, konfigürasyonlarını değiştirmek gibi /etc
. Bu, değişen dosya izinleri için de geçerlidir. Bir öğretici veya sorunu çözme girişimi sudo
veya süper kullanıcı hakları gerektiriyorsa ve / etc / içindeki bir yapılandırma değişikliği değildir, yanlış bir şey yaptığınıza dair bir uyarı işaretidir.
chmod -R 777 whatever
Büyük bir güvenlik riskine neden olmak istemiyorsanız, neredeyse asla yapmamalısınız .