Neden koşamıyorum 'su'? (ve nasıl yapmalıyım?)


32

Ne zaman yayınlamaya çalışırsam şunu sualıyorum:

$ su  
Password:  
su: Sorry

Söylemeye gerek yok, birlikte çalışan doğru yönetici şifresini giriyorum sudo. İstediğim sudoher seferinde girmek zorunda kalmak değil .

Yanıtlar:


33

MacOS X'te kök kullanıcı varsayılan olarak devre dışıdır, bu nedenle suçalışmaz. Diğerlerinin de belirttiği gibi, kullanmak en iyisidir sudo.

Eğer varsa gereken kök kullanıcı etkinleştirmek, Apple'ın TechNote bkz: etkinleştirme ve Mac OS X "kök" kullanıcı kullanarak .


13
sudo suhala çalışıyor, bu yüzden gerçekten devre dışı değil. Sadece şifresi yok.
Sahte İsim

@FakeName Bu en komik arka kapı! Koşabiliyorsan sudo su, dünyada sakat bırakmanın amacı ne su?
Kolob Kanyonu

3
@KolobCanyon - Konu gerçekten "devre dışı bırakmak su" değil, kök girişini önlemek . Olarak oturum açmaya izin vermeyerek root, bir sürü olası güvenlik sorununu önlersiniz. Olabilen biri imkan vermemek sudoiçin subiraz saçma olduğunu. Temel olarak, susadece geçerli kullanıcı kimliğini değiştirir ve bir komut çalıştırır (belirtilmemişse bir kabuk). Kullanıcı kimliği zaten 0 (root) ise, örneğin çalıştırıldığında sudo, yapacak hiçbir şey yoktur, bu yüzden sadece kabuğu çalıştırır. Yaparak da benzer bir etki elde edebilirsiniz sudo bash.
Sahte İsim

1
@FakeName Hala karıştı. Root olarak giriş yapmak ve 'sudo su' çalıştırmakla arasındaki fark nedir? Etkili aynı düzeyde değil mi?
Kolob Kanyonu

2
@KolobCanyon - Hayır. Temel olarak, oturum açmayı devre dışı bırakırsanız, oturum açma işleminde bir güvenlik açığı varsa, bir hacker'ın doğrudan kök kullanmak için kullanamayacağı anlamına gelir. Temel olarak, gerekli kök uyuşmazlığını "giriş uyumu" ndan "kullanıcı hesabı + giriş uyumu için giriş uyumu" na taşır. Temel olarak derinlemesine savunma olarak yapılır.
Sahte Adı

13

İki seçeneğin var. İlki kullanmaktır sudo -s- bu size süper kullanıcı erişimi sağlayacaktır, ancak yine de 'kendiniz' olacaksınız (tabiri caizse), bu yüzden gibi şeyler ~hala ana dizininiz olacak. Alternatif olarak, sudo suMac'inizin gerçek kök kullanıcısı olarak size bir kabuk veren kullanabilirsiniz .


5
Apple Way (tm), sudobir kök kabuğuna geçmek ve ondan çalışmak için değil, ayrıcalıklar gerektiren komutları çalıştırmak için kullanılır .
Ian C

3
@ Ian C. - Hayır, aslında unix yolu. Apple sadece * nix tabanlı olduğu için kullanır.
Sahte İsim

@ Sahte Ad: Apple, kök kabuğunu asla konuşmamak veya kullanıcılara maruz bırakmak için büyük acılar çekiyor. sudoEtos'u aşırıya götürdüklerini söyleyebilirsin . Ama herneyse: anlambilim. OS X'de kök kabukları kullanmayın.
Ian C.

1
@Ian C - Apple, * nix tasarımcılarının yaptıklarından fazla bir şey yapmaz, Apple bu konuda fazla konuşmaz. Her iki durumda da, orada sadece linux gibi şeylerle, nasıl kullanılacağını kolayca söylerler. Bu daha yaygın olarak kullanılmasını sağlarsa, temelde yatan bir mimari fark göstermez.
Sahte İsim

1

Örneğin, CLI'yi kullanarak dosyaları taşımanız veya git kullanmanız gerekirse, bu durumda, en iyi çözüm sudo -skomutu kullanmak olacaktır . Bu komuttan sonra tekrar tekrar şifreyi girmeniz gerekmez.


1

Sanırım bunu "normal" bir kullanıcı olarak yapamazsın ...

Yönetici haklarına sahip başka bir kullanıcı hesabı varsa, bunu kullanmak zorundasınız.

restricted user$ su
Password:(the root password here)
Sorry!

restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now

1

Modern çözüm: sudo -u

Başka bir kullanım olarak çalıştırmak için kullanın sudo -u.

Örneğin, nano gibi bir metin editörünü çalıştırmak için :

sudo -u someuser nano

… Ve istendiğinde Mac yönetici kullanıcı şifrenizi girin. Bu noktada, kullanıcıyı davet eden Mac yönetici kullanıcınızdır sudo, someuserkullanıcıyı değil, someuserşifreyi girmezsiniz.

  • sudo Süper kullanıcı ayrıcalıklarını kullanarak bir şey çalıştırmak anlamına gelir.
  • -u "bu belirtilen kullanıcı olarak belirtilen bir komutu çalıştır" anlamına gelir.
  • someuser İstediğiniz kullanıcı adı ile değiştirilmelidir.

İlk giriş bilgilerini belirli bir kullanıcı olarak simüle etmek için başlangıç ​​komut dosyalarını çalıştırmak da dahil olmak üzere kullanın -I.

sudo -u someuser -i nano

Bu, nanouygulamayı kullanıcı olarak çalıştırır, someuserancak yalnızca bu kullanıcı için başlangıç ​​komut dosyalarını çalıştırdıktan sonra.

Çalıştırılacak bir komut veya uygulama belirtmemeyi tercih edersek, bu kullanıcı olarak çalışan etkileşimli bir kabuk elde ederiz.

sudo -u someuser -i

Eski okul: sudo su someuser

Başka bir yaklaşım da sukomutu ile birlikte kullanır sudo. suKomut “anahtar kullanıcı” anlamına gelmektedir.

sudo su someuser

Veya, kullanıcının başlangıç ​​komut dosyalarını çalıştırmayı dahil etmek için kısa çizgi ekleyin.

sudo su - someuser

root kullanıcı

rootUnix gibi işletim sistemlerinde kullanıcı bir şey yapmak için mutlak güce sahiptir.

Apple, rootmacOS'ta hesabı devre dışı bırakmayı, güvenlik açığı istismarlarından kaçınmayı ve kendinizi ayağınızdan vurmanızı önlemeyi seçti . Apple , Standart kullanıcı hesabından daha fazla güce sahip , ancak sahip olduğu gibi mutlak bir güce sahip olmayan Yönetici kullanıcı hesapları fikrini yarattı . Tartışma için bu Apple Destek notuna bakın .root

Eğer gerekirse, sen yapabilirsiniz etkinleştirmek rootMacOS kullanıcıyı ve sonra bu kullanıcıya geçiş. Bu kesinlikle tavsiye edilmez. Bu yolda sadece umutsuz son çare olarak giderdim.


Bunu MacOS'ta Postgres veritabanı sistemini postgresçalıştıran kullanıcı bağlamında tartışmak için kardeş sitedeki DBA Yığın Değişimi sitesinde bu soruya bakın .

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.