Oturum açma özelliği devre dışı bırakılmış bir kullanıcı nasıl çalıştırılır?

20

Bir uygulamayı başka bir kullanıcı olarak çalıştırmak için su komutunu kullanmaya çalışıyorum

Bu durumda irsi çalıştırmaya çalışıyorum

[email protected]: su - [username] irssi
(enter password)

[email protected]:
(nothing happens)

[email protected]: su - [username] -c irssi
(nothing)

Gksu'yu çalıştırıyorum ve aynı parametreleri ayarlıyorum ve çalışıyor ve bana kullanıcı şifresini sormuyor. Sorun nedir? Ve bunu nasıl çözebilirim?

Kullanıcının böyle oluşturulduğunu not etmeliyim

adduser --system --disabled-login [username]

eğer herhangi bir fark yaratırsa .... sigh.

    
sordu user123361 15.01.2013 07:53

1 cevap

27
  

Bu yanıt, düzenlemelerin   soruyu hesaba kat. Özellikle, bir hesap ile oluşturuldu    --disabled-login 'si şifre ayarına sahip değildir ve günlük kaydı yoktur    'de, ancak sudo ' yi kullanmanın hala mümkün olması gerekir (aşağıda açıklanmıştır)   komutları veya kullanıcı olarak bir kabuk çalıştırmak için. Aslında, bu nasıl   Ubuntu'da root hesabı ayarlandı.

su - irssi komutuyla birden çok sorun var.

Bu komut irssi adlı bir kullanıcıya sahip olunan bir kabuk başlat kullanmaya çalışır.

Eğer başarısız olursa:

  • irssi kullanıcısı yok.
  • irssi kullanıcı hesabı devre dışı.
  • Etkileşimli giriş için irssi kullanıcı hesabı devre dışı bırakıldı. Bazen bir hesabın FTP gibi hizmetleri kullanmasına izin verilir, ancak kabuklarını hemen koordine ederek, genellikle /bin/false gibi bir şeyden çıkarak oturum açması yasaktır. Daha sonra bir giriş, mesajsız olarak hemen biter.
  • Girdiğiniz şifre irssi kullanıcısı için doğru değil.

- bayrağı, kabuğun ilk giriş kabuğunu taklit etmesini sağlar; yani, irssi olarak giriş yapmak gerçekten çok fazladır. % Co_de% bayrağı olmadan, - komutu başarılı olursa, yine su değerine sahip bir kabuk alırsınız, ancak irssi gibi ortam değişkenleri değişmez.

Bunun yerine adlı HOME adlı bir program çalıştırmak istiyorsanız, irssi 'i farklı şekilde çağırmalısınız:

su username - -c irssi

su 'i bırakırsanız, -c username ile aynıdır - komutu root olarak çalıştırmayı dener.

Alternatif olarak bir kabuk başlatabilir ve ardından komutu çalıştırabilirsiniz :

  1. Kabuğu -c root ile başlatın.
  2. Kabukta, komutu çalıştırın ( su username - ).
  3. İşiniz bittiyse, kabuğu irssi çalıştırarak bırakın.

Komutları% co_de olarak çalıştırılıyor%

exit 'si root olarak çalıştırmak istiyorsanız, irssi bunu yapmanın yolu değildir. Kök girişler, Ubuntu'da varsayılan olarak devre dışıdır ve bunları yeniden etkinleştirmek için nadiren yalnızca bir neden vardır . % Co_de% girişini etkinleştirdiyseniz, root olmak için su değerini kullanabilmeniz gerekir. % Co_de% hesabını etkinleştirmek için gereksiz olması nedeni, yapıp yapmamanız, komutları root ile su olarak çalıştırabilmenizdir.

root ile komutları çalıştırdığınızda, kimliğini kimin komutunu çalıştırmasını istediğiniz kullanıcının parolasını sizin parola, değil koyarsınız. . Yalnızca yöneticiler, root ile rasgele komutları root olarak çalıştırabilirler (tabii ki diğerlerinin yapmasına izin vermek için sudo 'yi yeniden yapılandırmazsanız). Bu nedenle, sistemi yönetmesine izin verilmeyen bir kullanıcının komutlarını sudo olarak kendi parolalarıyla çalıştırmasına izin verilmez.

root 'si sudo olarak sudo ile çalıştırmak için:

sudo irssi

Sizden istendiğinde sizin şifrenizi gireceksiniz, root 's.

Hangi şifreyi girdiğinizden farklı olarak, bu aynı şeyi yapar:

su -c irssi

irssi sürümü dışında, root hesabının etkinleştirilmesini gerektirmediğinden başarılı olabilir.

sudo ile olduğu gibi, root komutunu komutları başka,% olmayan co_de% kullanıcısı olarak çalıştırmak için kullanabilirsiniz. % Co_de% öğesini sudo ile root olarak çalıştırmak için:

sudo -u username irssi

su 'nın sudo ile ilgili olarak% co_de gibi davranmasını istiyorsanız - yani, hedef kullanıcının root ortam değişkenlerini kullanmak istiyorsanız,% çalıştırabilirsiniz. irssi bayrağıyla co_de%:

sudo -H irssi
sudo -H -u username irssi

username ile yapabildiğiniz gibi sudo ile bir kabuk başlatabilirsiniz. Bu parolayı kimin koyduğunuz dışında, sudo ile aynı etkiye sahiptir:

sudo -s

Ve bu komut, su - ile aynı etkiye sahip:

sudo -i

( HOME , ilk giriş kabuğu anlamına gelir.)

Bir kabuğu başka bir kullanıcı olarak da başlatabilirsiniz:

sudo -u username -s
sudo -u username -i

HOME hakkında daha fazla okuma

sudo hakkında daha fazla bilgi edinmek için , bir göz atın:

su , su - neden olmadığında çalışmadı?

i , muhtemelen sudo dosyasını çalıştırarak çalıştı.

sudo , hem sudo hem de sudo için bir önyüzdür.Ubuntu'da, man sudo kullanmanın varsayılanıdır (Ubuntu'da%, gksu , genellikle su olmak için kullanılmaz ve diğer% non- gksu kullanıcıları olma).

sudo 'yi gksu dosyasını çalıştırarak ön yüzde olarak su kullanabilirsin.

sudo 'in sudo modunda veya su modunda olup olmadığını ve (isterseniz) bu ayarı root çalıştırarak değiştirip değiştiremeyeceğinizi öğrenebilirsiniz. Bu, kullanıcı başına bir ayardır.

root , gksu modunda olduğunda, su ile aynı davranır.

gksu --su-mode hakkında daha fazla okuma

Çözüm Sonrası Analizi

Nihayetinde gerekli komutu şu şekilde çalıştırabildiniz:

sudo -u username irssi

(Yukarıda listelenen tekniklerden hangisidir.)

Sonunda, diğer tekniklerin başarısız olmasının nedenini açıklamaya yetecek kadar bilgi topladığınızı, ancak bunun başarılı olduğunu bildirdiniz:

  1. gksudo hesabı, gksu bayrağıyla oluşturuldu. Bu, parola yok olmasını (ve başka hiçbir oturum açma yöntemi) içermiyor. Şifreniz olmaması, boş parola ile giriş yapabileceğiniz anlamına gelmez. Kimlik doğrulaması yapmak için şifre yok anlamına gelir. Diğer kimlik doğrulama yöntemlerinin ortadan kaldırılmasıyla birlikte, bunun anlamı sudo kimlik doğrulaması yapamaz.

    Yani man gksu tabanlı çözümlerin tümü tükendi. gksu çalışabilir, çünkü gksu ile kimliğe bürünmek üzere olduğunuz kullanıcı olarak kimliğinizi doğrulamazsınız. Bunun yerine, bunları taklit etmek için yetkili olmanız ve kendiniz olarak kimlik doğrulamanız gerekir. (yani, kendi şifrenizi girin, onlarınkini değil).

    Hesaba giriş yapmak için bu engeli kaldıran bir şifre ayarlamak mümkündür:

    sudo passwd username

    Ancak, kullanıcının giriş yapmasına izin verilmemesinin iyi bir nedeni olabilir. Örneğin, bu kullanıcının giriş yapmasına ve grafiksel olarak oturum açmasına izin verilirse, kullanıcının ortamından veya kötü niyetli olmasından kaynaklanan kötü sorunlar ortaya çıkar. X11 uygulamaları çalışıyor mu? Bu kullanıcı oturum açabiliyorsa, bu kullanıcı olarak (ağ hizmetlerine maruz kaldığınız makineler için) uzaktan oturum açmayı mümkün kılar mı?

    Bir daha yeniden devre dışı bırakmak isterseniz:

    sudo passwd -dl username

    İlgili: Geçici olarak etkinleştirdikten sonra gksu hesabının yeniden devre dışı bırakılması.

  2. gksudo hesabının giriş kovanı olarak username 'si var.

    --disabled-login gibi bir kabuk, giriş kabuğunuz olarak çalıştığında, ortamınızı ayarlar ve makineyi kontrol edebileceğiniz etkileşimli bir komut verir.

    username çalıştırıldığında, diğer bir deyişle hiçbir şey yapmaz ve başarısızlık bildirir . ( su hiçbir şey yapmaz ve başarı bildirir.)

    sudo ve sudo komutları, komut dosyası oluşturma ve çeşitli test amaçları için yararlıdır, ancak bir kullanıcının hesabını devre dışı bırakması için de, bir kullanıcı giriş yaptığında, oturum açma oturumları hemen sona erer. Bu şekilde bir şifre (veya başka bir kimlik doğrulama yöntemi) etkinleştirilebilir ve kullanıcılar giriş yapabilirler, sadece kabuk erişimi için değil. Örneğin, bir FTP sunucusu varsa, hesabına yine de FTP yoluyla erişebilirler. SSH sunucusu varsa, SSH aracılığıyla bir kabuk elde edemez, ancak dosyaları aktarmak için root ve username kullanabilirler.

    /bin/false 'in oturum açma kabuğu işlevsiz olduğundan, bash , /bin/false , /bin/true ve false gibi komutlar çalışmadı.

    Ancak, true veya sftp gibi bir kabuk vermeyen komutlar çalışmaya devam edebilir.

    komutları çalıştırılabildiğinden, kullanıcının giriş kabuğunu işlevsel bir şeye dönüştürebilirsiniz yapabilirsiniz :

    sudo chsh -s /bin/bash username
    Bununla birlikte, kullanıcı için etkileşimli girişleri devre dışı bırakmanın iyi bir nedeni olabileceğinden, bu durum da dikkatle yapılmalıdır.

Burada, scp , her ikisi de ve "devre dışı" kabuk şifresini devre dışı bırakmıştı. Çalışan bir parola yokluğu username tabanlı çözümlerin çalışmasını engellerken, çalışan bir interaktif giriş kabuğunun olmaması tüm kabuk-yumurtlama çözümlerinin çalışmasını engelledi ( su username gibi bir kabuğun elle çağrılması hariç).

su - username kaldı.

    
verilen cevap Eliah Kagan 15.01.2013 08:57

Etiketlerdeki diğer soruları oku