Tôi không thể đăng nhập bằng root bằng lệnh su, nhưng tôi có thể với SSH


17

Làm thế nào có thể tôi không thể đăng nhập bằng root su roothoặc su(tôi gặp lỗi mật khẩu không chính xác), nhưng tôi có thể đăng nhập bằng ssh root@localhosthoặc ssh root@my_local_IPvới cùng một mật khẩu?

Tôi đang sử dụng CentOS 6.4.


Cập nhật1 :

cat /etc/pam.d/su

cho:

#%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

Cập nhật2 :

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

cho:

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

lặp lại khoảng 20 lần.


1
Hãy thử xóa tệp /etc/securetty( cp /etc/securetty{,.old}; : > /etc/securetty). Nếu vẫn không được, hãy cung cấp nội dung của /etc/pam.d/su.
Patrick

2
Chắc chắn với ssh 192.168.1.218bạn chỉ là đăng nhập như chính mình? Để đăng nhập với quyền root thông sshthường sẽ cần ssh root@192.168.1.218hoặc ssh root@localhost.
Graeme

1
Lấy PID (12345) của shell của bạn ( echo $$), mở (ví dụ thông qua ssh) shell gốc (cần thiết để truy tìm các nhị phân SUID) và bắt đầu stracecho shell đó: strace -o su.strace -p 12345 -fvà tìm lỗi lạ trước thông báo lỗi. Hoặc sao chép 30 dòng cuối cùng trước thông báo lỗi vào câu hỏi của bạn nếu bạn không quen với loại đầu ra đó.
Hauke ​​Laging 23/214

1
@HaukeLaging nó nóiProcess 11736 attached - interrupt to quit
Alireza Fallah

2
OK, đó là lý do nó không hoạt động. / bin / su cần phải có bit setuid của nó để khi người dùng thông thường (không phải root) sử dụng nó, nó sẽ có quyền truy cập vào danh sách mật khẩu trong / etc / bóng. Nhập, như root, chmod 4755 /bin/suđể sửa lỗi này.
Đánh dấu Plotnick

Câu trả lời:


23

Trong bình luận của bạn, bạn nói rằng /bin/sucó chế độ / chủ sở hữu sau:

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

Có hai vấn đề ở đây.

  • nó cần phải bật bit set-uid để nó luôn chạy với quyền root, nếu không, khi người dùng thông thường (không phải root) chạy nó, nó sẽ không có quyền truy cập vào thông tin mật khẩu /etc/shadowcũng như khả năng thiết lập userid cho người dùng mới mong muốn.

  • nó nên có groupother tắt ghi bit để người dùng khác không thể thay đổi nó.

Để khắc phục điều này, hãy đăng nhập như root- bạn nói bạn có thể làm điều này vớissh - và gõ

chmod 4755 /bin/su

Hay cách khác,

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

( Tài liệu tiêu chuẩn cho chmod đi sâu vào chi tiết hơn về các loại đối số cần có.) Điều này sẽ khôi phục các bit chế độ theo cách chúng được cài đặt khi hệ điều hành được cài đặt lần đầu tiên. Khi bạn liệt kê tệp này, nó sẽ trông như thế này:

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

Như @ G-Man lưu ý, các tệp ở chế độ 777 có thể bị ghi đè bởi người dùng không đáng tin cậy và nếu đó là trường hợp, bạn có thể muốn cài đặt lại chúng từ phương tiện phân phối hoặc sao lưu.


1
Tôi thường sử dụng như : chmod 755 /bin/su, 4 thêm để làm gì?
Alireza Fallah

4vị trí đầu tiên thể hiện sự cho phép set-uid. Tôi đã chỉnh sửa câu trả lời của mình để thêm một cách khác để sử dụng chmod bằng cách sử dụng tên tượng trưng cho các bit cho phép. Hy vọng rằng sẽ rõ ràng hơn.
Đánh dấu Plotnick

cảm ơn bạn rât nhiêu. Bây giờ tôi đã nhận ra rằng tôi đã thực hiện chmod -R 777 /binsai lầm và đó là lý do tại sao tôi đã bị nguyền rủa: D
Alireza Fallah

Tôi cũng hỏi một câu hỏi khác , bạn vui lòng xem nó, có thể bạn biết câu trả lời.
Alireza Fallah

cyberciti.biz/tips/ từ mô tả cách sử dụng rpmđể khôi phục quyền truy cập tệp, nhưng tôi chưa thử.
Đánh dấu Plotnick

10

1. nhóm bánh xe?

Điều này có thể là do useid của bạn không nằm trong wheelnhóm. Trên các bản phân phối Red Hat, bạn có thể không cho phép người dùng không thuộc nhóm này chạy sulệnh.

Đây là sucấu hình PAM theo mặc định:

$ 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

Dòng này có thể giới hạn quyền truy cập vào sulệnh cho người dùng trong wheelnhóm:

auth        required    pam_wheel.so use_uid

Từ âm thanh của nó, điều này được kích hoạt và userid của bạn không được phép vận hành sulệnh.

SSH hoạt động vì nó đi qua một cơ chế PAM khác. SSH cũng có các phương tiện riêng để hạn chế quyền truy cập vào thông tin đăng nhập gốc. Thông tin đăng nhập gốc thường được cho phép theo mặc định, ít nhất là trên hầu hết các bản phân phối của Red Hat:

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

Mặc dù những điều trên được nhận xét, đó là mặc định và là cách OpenSSH hiển thị đó là cài đặt mặc định trong các cấu hình.

Làm việc với cái này?

Nếu hệ thống của bạn được cấu hình như thế này, bạn có thể thêm tên người dùng của mình vào wheelnhóm.

$ useradd -G wheel saml

Sau khi đăng xuất và đăng nhập lại:

$ groups
saml wheel

LƯU Ý: Userid của tôi là "saml" ở trên.

2. Quyền ngay trên su?

Kiểm tra xem tệp thực thi được sở hữu bởi root.

$ 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

Cũng xác nhận rằng các tệp thực thi có sbit của họ được kích hoạt. Điều này làm cho chúng trở nên thiết lập, để khi chúng được thực thi, chúng chạy như là root của chính chúng.

3. Nhật ký nói gì?

Khi bạn cố gắng thực hiện su -lệnh, bạn sẽ thấy các mục trong /var/log/securekhoảng nỗ lực.

$ 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

Tham khảo nhật ký này để xem nếu bạn nhận được bất kỳ thông tin bổ sung.

4. Bạn có chắc mật khẩu không phải là vấn đề?

Khi tôi cố gắng đăng nhập bằng cách sử dụng, su -tôi nhận được thông tin sau khi tôi cung cấp mật khẩu không chính xác:

$ su -
Password: 
su: Authentication failure
$

Tôi sẽ thử tạo một tài khoản khác và xem liệu tài khoản phụ này có thể chạy su -thành công hay không.


cảm ơn bạn bởi câu trả lời tuyệt vời của bạn, những gì tôi đã cố gắng sau khi đọc câu trả lời của bạn : usermod -a -G wheel my_username, và kết quả groupsfallah wheel. Vì vậy, kết quả cat /etc/pam.d/subây giờ là trong câu hỏi của tôi, VÀ, một lần nữa tôi không thể đăng nhập bằng root bằng lệnh su !!!
Alireza Fallah

đây là dòng cuối cùng của /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

và dòng này được lặp lại khoảng 20 lần trong/var/log/secure
Alireza Fallah

4: nhưng khi tôi thử: su: incorrect password - và mật khẩu là chính xác, vì tôi có thể đăng nhập với cùng một mật khẩu trong SSH
Alireza Fallah

Tôi cũng đã cố gắng đăng nhập bằng một tài khoản khác, như su alireza, và một lần nữa vấn đề tương tự
Alireza Fallah

0

Nếu bạn nhận được thông báo lỗi như thế này

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

Thực hiện bước này:

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

Sau đó thử su. Nó nên hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.