Bir komutu sistem yöneticisi olarak nasıl çalıştırırım (root)


66

Yönetici ayrıcalıklarına sahip bir komut çalıştırmam gerekiyor. Birisi root komutunu çalıştırmam gerektiğini söyledi. Bunu nasıl yaparım?


2
Lütfen bu soru hakkındaki meta tartışmaya bakınız
Stefan

Yanıtlar:


94

Ana iki komut satırı olasılığı:

  • suİstendiğinde kök şifresini kullanın ve girin.
  • sudoKomutun önüne koyun ve istendiğinde şifrenizi girin.

Shell komutunu root olarak çalıştırma

sudo (grafiksel bir ekran çalıştırılmadığında tercih edilir)

Ubuntu, Linux Mint, (tartışmalı) Debian ve diğerleri de dahil olmak üzere çoğu sistemde tercih edilen yöntem budur. Ayrı bir kök şifre bilmiyorsanız, bu yöntemi kullanın.

Sudo, kendi şifrenizi yazmanızı gerektirir. (Amaç size sağlamak için ayrıca klavye gözetimsiz ve kilidi ve bırakırsanız zararı sınırlamak için ise gerçekten bu komutu çalıştırmak isteyen ve bir yazım hatası örneğin değildi.) Genellikle birkaç için tekrar sorma biçimde yapılandırılmıştır dakikalar sudo, art arda birkaç komutu çalıştırabilirsin .

Örnek:

sudo service apache restart

Kök olarak birkaç komut çalıştırmanız gerekirse, her birini ile önekleyin sudo. Bazen etkileşimli bir kabuğu kök olarak çalıştırmak daha uygundur. Bunun için kullanabilirsiniz sudo -i:

$ sudo -i
# command 1
# command 2
...
# exit

Bunun yerine sudo -ikullanabilirsiniz sudo -s. Fark yani -iyeniden ı oysa, aklı başında varsayılan çevreyi nitializes -sdaha iyi ya da kötü yapılandırma dosyalarını kullanır.

Daha fazla bilgi için sudo web sitesine bakın veya man sudosisteminizi yazın. Sudo çok yapılandırılabilir; örneğin, belirli bir kullanıcının yalnızca belirli komutları root olarak yürütmesine izin verecek şekilde yapılandırılabilir. Daha fazla bilgi için sudoersman sayfasını okuyun ; sudo visudosudoers dosyasını düzenlemek için kullanın .

su

suKomut çoğu Unix benzeri sistemler üzerinde var. Bu kullanıcının şifresini bilmeniz şartıyla, başka bir kullanıcı olarak komut çalıştırmanıza izin verir. Belirtilen kullanıcı olmadan çalıştırıldığında su, varsayılan olarak kök hesap olacaktır.

Örnek:

su -c 'service apache restart'

Çalıştırılacak komut, -cseçenek kullanılarak iletilmelidir . Komutun kabuğunuz tarafından ayrıştırılmaması, ancak suçalışan kök kabuğuna tam olarak iletilmesi için tırnaklara ihtiyacınız olduğunu unutmayın .

Birden çok komutu kök olarak çalıştırmak için etkileşimli bir kabuk başlatmak daha uygundur.

$ su
# command 1
# command 2
...
# exit

Bazı sistemlerde, kullanmak için grup numarası 0 (denilen wheel) olmanız gerekir su. (Önemli olan, root şifresi yanlışlıkla birine sızdırılmışsa hasarı sınırlamaktır.)

Kök olarak giriş yapma

Ayarlanmış bir root şifresi varsa ve sizde bunlara sahipseniz, sadece rootgiriş istemine yazıp root şifresini girebilirsiniz. Çok dikkatli olun ve karmaşık uygulamaları, istemediğiniz bir şeyi yapabilecekleri kök kadar çalıştırmaktan kaçının. Doğrudan kök olarak oturum açmak, genellikle disk arızası gibi acil durumlarda veya kendinizi hesabınızdan kilitlediğinizde kullanışlıdır.

Tek kullanıcı modu

Tek kullanıcı modu veya çalışma seviyesi 1, ayrıca size kök ayrıcalıkları verir. Bu, öncelikle çok kullanıcılı bir çalışma seviyesine geçmenin mümkün olmadığı acil bakım durumları için tasarlanmıştır. Çekirdek komut satırından geçerek singleveya çekerek tek kullanıcı moduna geçebilirsiniz emergency. Tek kullanıcılı moda geçmenin sistemi normal şekilde başlatmak ve root olarak giriş yapmakla aynı olmadığını unutmayın. Aksine, sistem yalnızca çalışma düzeyi 1 için tanımlanan hizmetleri başlatır. Genellikle, kullanılabilir bir sisteme sahip olmak için gereken en az sayıda hizmet budur.

Telinit komutunu kullanarak tek kullanıcı moduna da erişebilirsiniz telinit 1:; Ancak, bu komut çalıştırmak için zaten başka bir yöntemle kök ayrıcalıkları almış olmanızı gerektirir.

Tek bir kullanıcı kipinde başlatılan birçok sistemde, kullanıcının bir şifre sormadan bir kök kabuğuna erişmesi sağlanır. Özellikle, systemdtabanlı sistemler bu şekilde önyükleme yaparken sizden kök parolayı soracaktır.

Diğer programlar

Calife

Calife , yetki verilmişse, kendi şifrenizi yazarak komutları başka bir kullanıcı olarak çalıştırmanıza izin verir. Çok daha yaygın sudoya benzer (yukarı bakın). Calife, sudo'dan daha hafif fakat aynı zamanda daha az yapılandırılabilir.

Op

Op, komutları root da dahil olmak üzere başka bir kullanıcı olarak çalıştırmanızı sağlar. Bu, isteğe bağlı komutları çalıştırmak için tam gelişmiş bir araç değildir: siz yazıpop ardından sistem yöneticisi tarafından belirli bir komutu çalıştıracak şekilde yapılandırılmış bir anımsatıcı yazın.

Süper

Süper, komutları root da dahil olmak üzere başka bir kullanıcı olarak çalıştırmanızı sağlar. Komuta sistem yöneticisi tarafından izin verilmiş olmalı.

Grafik bir komutu root olarak çalıştırma

Ayrıca bakınız Vikipedi .

PolicyKit (GNOME kullanırken tercih edilir)

İstediğiniz komutu sadece komut ile önekleyin pkexec. Bu, çoğu durumda çalışırken, evrensel olarak çalışmadığını unutmayın.

Daha man pkexecfazla bilgi için bkz .

KdeSu, KdeSudo (KDE kullanırken tercih edilir)

kdesuve kdesudografik ön ucu vardır suve sudosırasıyla. X Window programlarını hiçbir güçlük olmadan root olarak çalıştırmanıza izin veriyorlar. Onlar KDE'nin bir parçası . tip

kdesu -c 'command --option argument'

ve root şifresini girin veya

kdesudo -c 'command --option argument'

ve şifrenizi girin (çalıştırmaya izin verilirse sudo). KdeSu'da “şifreyi sakla” seçeneğini işaretlerseniz, her oturum açma oturumu için yalnızca bir kez root şifresi yazmanız gerekir.

Diğer programlar

Ktsuss

Ktsuss (“basit, aptalca tut”) su grafiksel bir versiyonudur.

Beesu

Beesu , Red Hat tabanlı işletim sistemlerinde Gksu'nun yerini alan su komutunun grafiksel bir ön yüzüdür. Özellikle RHEL ve Fedora için geliştirilmiştir.

Eski yöntemler

gksu ve gksudo

gksuve gksudografik ön ucu vardır suve sudosırasıyla. X Window programlarını hiçbir güçlük olmadan root olarak çalıştırmanıza izin veriyorlar. Onlar Gnome'un bir parçası . tip

gksu command --option argument

ve root şifresini girin veya

gksudo command --option argument

ve şifrenizi girin (çalıştırmaya izin verilirse sudo).

gksuve gksudoeskidir. GNOME'da PolicyKit ile değiştirildiler ve çoğu dağıtım (Ubuntu gibi) artık varsayılan olarak yüklemiyorlar. Uygun olmalarına veya uygun çalışmalarına bağlı olmamanız gerekir.

Kabuk tabanlı yöntemlerden biriyle manuel olarak

"Bir kabuk komutunun kök bölüm olarak çalıştırılması" bölümündeki yöntemlerden birini kullanın. Sen ne olmasını sağlamak gerekecektir DISPLAYortam değişkeni ne de XAUTHORITYçevre köküne geçiş sırasında reset olsun. Bu, bu sorunun kapsamı dışında kalan yöntemlerin ek yapılandırılmasını gerektirebilir.

Genel olarak, bu kötü bir fikir çünkü çoğunlukla grafiksel uygulamalar konfigürasyon dosyalarını root olarak okuyup yazacak ve bu uygulamaları tekrar normal kullanıcınız olarak kullanmaya çalıştığınızda, bu uygulamaların kendi konfigürasyonlarını okuma iznine sahip olmayacak.

Bir dosyayı kök olarak düzenleme

Bkz. Bir dosyayı kök olarak nasıl düzenlerim?


2
sudoYalnızca (1) kuruluysa ve (2) kullanımınız sudoers dosyasındaysa ve işlemi yapmasına izin veriyorsa çalışacağına dikkat edilmelidir .
n0pe

2
bunun güncellenmesi gerekiyor. pkexecyerini almaktadır gksu/ gksudogünümüzde dağılımları bir çok.
Strugee

1
@strugee - bunu güncellemeye çalışacak mısın? Redhat altındakiler de doğru değil.
slm


3

Soru Linux'a özel olmadığı için, Solaris 9+ (veya Trusted Solaris 8) ile aynı hedefe nasıl ulaştığınızı işte burada bulabilirsiniz:

Solaris, sürüm 9'dan bu yana, RBAC veya Rol Tabanlı Erişim Kontrolü olarak adlandırılan bir araç takımı içermiştir.

RBAC'in özü, Yetkiler ve Haklar verilmesi, Kullanıcılara ve / veya Rol verilmesi veya Kullanıcılara Roller verilmesiyle, hangi ayrıcalıklara sahip olanları çalıştırabilecekleri için inanılmaz derecede ince taneli modeller oluşturabilmenizdir.

Temel olarak, / etc / security / auth_attr içindeki yetkilendirmeyi tanımlarsınız, daha sonra bunları / etc / user_attr içindeki kullanıcılara veya rollere verirsiniz.

/ Etc / security / prof_attr içindeki profilleri tanımlarsınız. Daha sonra komutları / etc / security / exec_attr içindeki profillerle ilişkilendirirsiniz, ardından bu profilleri / etc / user_attr dosyasındaki kullanıcılara atarsınız.

Bu şeyler yapıldıktan sonra pfexec <command>, komutu gerçekten o kullanıcıya bu komut için verilen yetki veya yetkilerle yürütmek için koşarsınız .

RBAC ile ilgili güzel şey, komutun kendisine veya kullanıcıya yalnızca kullanıcı + komutunun birleşimine verilen hiçbir ayrıcalık olmamasıdır. Yani bir ikili + yapmaktan ya da bir kullanıcının hemen hemen her şeyi çalıştırabilmesi için sudo kullanmaktan daha güvenlidir. (Sudo'yu kilitleyebileceğinizi biliyorum, ama deneyimlerime göre çoğu insan yok)

RBAC'ın bir başka avantajı da root rol hesabı yapabilir ve bu rolü 'su' komutu ve root şifresi ile root olabilen kullanıcılara atayabilirsiniz. Kök kullanıcı, Tek Parola Modunda oturum açabilir; bu da (benim görüşüme göre), kök parolayı devre dışı bırakabileceğiniz Linux modelinden daha iyidir passwd -d rootveya passwd -l roother ikisi de kök olarak oturum açmayı sağlayan kök hesabını kilitleyebilir. bir şeyler ters gittiğinde zor.

Ben Rockwood, RBAC hakkında (Open) Solaris'teki RBAC Kullanımı bölümünde okunabilecek harika bir blog yazısına sahip .


3

Veya bazı komutlara süper güç verebilirsiniz. Komutların sahibinin izniyle yerine getirildiği özel izinlerden bahsediyorum.

Komut yolunu alın ve #which <command>bu yol için SUID veya SGID değerini ayarlayın.

PS - SUID ve SGID bitlerine özen gösterilmelidir. Sisteminizi güvensiz yapabilirler.

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.