Su komutuyla root olarak giriş yapamıyorum, ancak SSH ile giriş yapabiliyorum


17

Kök olarak su rootveya su(yanlış şifre hatası alıyorum) olarak giriş yapamıyorum , ancak aynı şifre ile ssh root@localhostveya ssh root@my_local_IPaynı şifre ile giriş yapabilir miyim ?

CentOS 6.4 kullanıyorum.


Güncelleme1 :

cat /etc/pam.d/su

verir:

#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

Güncelleme2 :

$ sudo grep su /var/log/secure | grep -v sudo

verir:

Feb 23 13:12:17 fallah su: pam_unix(su:auth): authentication failure;
logname=fallah uid=501 euid=501 tty=pts/0 ruser=fallah rhost=  user=root

yaklaşık 20 kez tekrarlanır.


1
Dosyayı /etc/securetty( cp /etc/securetty{,.old}; : > /etc/securetty) temizlemeyi deneyin . Bu hala işe yaramazsa, içeriğini sağlayın /etc/pam.d/su.
Patrick

2
Elbette ssh 192.168.1.218sadece kendiniz gibi giriş yapıyorsunuz? Üzerinden root olarak giriş yapmak için sshnormalde ssh root@192.168.1.218veya gerekir ssh root@localhost.
Graeme

1
Kabuğunuzun PID'sini (12345) alın, bir kök kabuğunu echo $$açın (örn. Aracılığıyla ssh) (SUID ikili dosyalarını izlemek için gereklidir) ve stracebu kabuğa başlayın : strace -o su.strace -p 12345 -fve hata mesajından önce garip hataları arayın. Veya bu tür bir çıktıya aşina değilseniz, hata mesajından önceki son 30 satırı sorunuza kopyalayın.
Hauke ​​Laging

1
@HaukeLaging it saysProcess 11736 attached - interrupt to quit
Alireza Fallah

2
Tamam, bu yüzden çalışmıyor. / bin / su için setuid bitinin açık olması gerekir, böylece sıradan (root olmayan) kullanıcılar bunu kullandığında / etc / shadow içindeki parola listesine erişebilir. chmod 4755 /bin/suBunu düzeltmek için kök olarak yazın .
Mark Plotnick

Yanıtlar:


23

Yorumunuzda /bin/su, aşağıdaki mod / sahip olduğunu söylediniz :

-rwxrwxrwx. 1 root root 30092 Jun 22 2012 /bin/su

Burada iki problem mevcut.

  • set-uid bit'inin açık olması gerekir, böylece her zaman kök izinleriyle çalışır, aksi takdirde sıradan (root olmayan) bir kullanıcı çalıştırdığında, parola bilgisine erişemez /etc/shadowve userid istenilen yeni kullanıcıya.

  • o sahip olmak gerektiğini groupve otheryazma bit diğer kullanıcıların gerçeği değiştirmeme sebep olamaz böylece, kapalı.

Bunu düzeltmek için şu şekilde giriş yapın root- bunu yapabileceğinizi söylediniz ssh- ve yazın

chmod 4755 /bin/su

Veya alternatif olarak,

chmod u+s,g-w,o-w /bin/su

( Chmod için standartlar belgesi, ne tür argümanlar aldığını daha ayrıntılı olarak ele alır.) Bu, mod bitlerini işletim sistemi ilk kurulduğunda olduğu gibi geri yükler. Bu dosyayı listelediğinizde, şöyle görünmelidir:

-rwsr-xr-x. 1 root root 30092 Jun 22 2012 /bin/su

@ G-Man'ın belirttiği gibi, 777 modu olan dosyaların üzerine güvenilmeyen kullanıcılar tarafından yazılabilir ve bu durumda dağıtım ortamından veya yedeklemelerinden yeniden yüklemek isteyebilirsiniz.


1
Genellikle şöyle kullanıyorum:, chmod 755 /bin/suekstra 4 ne için?
Alireza Fallah

4İlk pozisyonda set uid izni temsil eder. Cevabımı, izin bitleri için sembolik isimler kullanarak chmod'u kullanmanın alternatif bir yolunu eklemek için düzenledim. Umarım bu daha açık olacaktır.
Mark Plotnick

Çok çok teşekkür ederim. Şimdi chmod -R 777 /binyanlışlıkla yaptığımı anladım ve bu yüzden lanetlendim: D
Alireza Fallah

Ayrıca başka bir soru sordum , lütfen görür müsünüz, belki cevabı biliyorsunuzdur.
Alireza Fallah

cyberciti.biz/tips/…rpm dosya izinlerini geri yüklemek için nasıl kullanılacağını açıklar , ancak denemedim.
Mark Plotnick

10

1. tekerlek grubu?

Bunun nedeni, kullanım kılavuzunuzun wheelgrupta olmamasıdır . Red Hat dağıtımlarında, bu grupta olmayan kullanıcıların sukomutu çalıştırmasına açıkça izin veremezsiniz .

İşte ne suPAM yapılandırma varsayılan olarak şöyle görünür:

$ more /etc/pam.d/su
#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required    pam_wheel.so use_uid
auth        include     system-auth
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     optional    pam_xauth.so

Bu satır, sukomuta erişimi wheelgruptaki kullanıcılarla sınırlayabilir :

auth        required    pam_wheel.so use_uid

Bu sesden etkinleştirilir ve kullanıcı kimliğinizin sukomutu kullanmasına izin verilmez .

SSH, farklı bir PAM mekanizmasından geçtiği için çalışır. SSH'nin ayrıca kök oturumlarına erişimi sınırlamak için kendi tesisleri de vardır. Kök oturumlarına genellikle varsayılan olarak, en azından Red Hat dağıtımlarının çoğunda izin verilir:

$ sudo grep PermitRoot /etc/ssh/sshd_config 
#PermitRootLogin yes
# the setting of "PermitRootLogin without-password".

Yukarıdakiler yorumlanmış olsa bile, bu varsayılan değerdir ve OpenSSH'nin yapılandırmalarda varsayılan ayarını nasıl gösterdiğini gösterir.

Bununla mı çalışıyorsunuz?

Sisteminiz bu şekilde yapılandırıldıysa, kullanıcı adınızı wheelgruba ekleyebilirsiniz .

$ useradd -G wheel saml

Oturumu kapatıp tekrar açtıktan sonra:

$ groups
saml wheel

NOT: Kullanıcı kimliğim yukarıdaki "saml".

2. su üzerinde izinler doğru mu?

Yürütülebilir dosyanın kök sahibi olup olmadığını kontrol edin.

$ type -a su
su is /usr/bin/su
su is /bin/su

$ ls -l /usr/bin/su /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /bin/su
-rwsr-xr-x. 1 root root 32064 Jan 13 06:31 /usr/bin/su

Ayrıca yürütülebilir dosyaların sbitlerinin etkin olduğunu doğrulayın . Bu onları setuid yapar, böylece yürütüldüklerinde kendi kökleri olarak çalışırlar.

3. Günlükler ne diyor?

Tek yapmanız çalıştığınızda su -komutu içeri girdiler görmelisiniz /var/log/securegirişimi ile ilgili.

$ sudo grep su /var/log/secure | grep -v sudo
Feb 23 23:31:26 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=0)
Feb 24 00:27:32 greeneggs su: pam_unix(su-l:session): session closed for user root
Feb 24 01:34:12 greeneggs su: pam_unix(su-l:session): session opened for user root by saml(uid=1000)
Feb 24 01:34:26 greeneggs su: pam_unix(su-l:session): session closed for user root

Başka bilgi alıp almadığınızı görmek için bu günlüğe bakın.

4. Parolanın sorun olmadığından emin misiniz?

Kullanarak giriş yapmaya çalıştığımda, su -yanlış bir şifre verdiğimde aşağıdakileri alıyorum:

$ su -
Password: 
su: Authentication failure
$

Başka bir hesap oluşturmayı ve bu ikincil hesabın su -başarılı bir şekilde çalışıp çalışmadığını görmeyi denerdim .


: senin büyük Cevabını okuduktan sonra çalıştığı şey cevap, tarafından teşekkür usermod -a -G wheel my_usernameve sonucu groupsDİR fallah wheel. Yani sonucu cat /etc/pam.d/suşimdi sorum, AND, yine su komutu ile root olarak giriş yapamıyorum !!!
Alireza Fallah

Bu son satır /var/log/secure:Feb 24 10:19:45 fallah su: pam_unix(su:auth): authentication failure; logname=fallah uid=501 euid=501 tty=pts/2 ruser=fallah rhost= user=root
Alireza Fallah

ve bu çizgi yaklaşık 20 kez tekrarlanır/var/log/secure
Alireza Fallah

4: ama denediğimde: su: incorrect password - ve şifre doğru, çünkü
SSH'de

Ayrıca başka bir hesapla giriş yapmaya çalıştım su alireza, ve yine aynı sorun
Alireza Fallah

0

Böyle bir hata mesajı alıyorsanız

su: PAM adding faulty module: /lib64/security/pam_tally.so
su: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory

Bu adımı uygulayın:

ln -s /lib64/security/pam_tally2.so /lib64/security/pam_tally.so

Sonra su deneyin. İşe yaramalı.

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.