su không thay đổi người dùng nhưng cũng không phản hồi với lỗi


56

Trong khi đăng nhập như roottôi muốn sucho một người dùng thông thường cụ thể. Tôi chạy su usernamevà ngay lập tức nhận được lời nhắc trở lại, vẫn là root. Không có lỗi được đưa ra. Tôi nhận thức được vấn đề "người dùng mà bạn đang cố gắng không có quyền đối với thư mục mà bạn hiện đang gặp phải" và đó không phải là trường hợp trong kịch bản này. Hơn nữa, không có lỗi nào được hiển thị, đó luôn là trường hợp (theo như tôi biết) khi gặp phải vấn đề về quyền cụ thể đó.

Tôi đã thử su - usernamevới hiệu quả tương tự. Lệnh được xử lý, không thấy lỗi và tôi nhận được lời nhắc lại ngay lập tức.

Điều gì có thể gây ra hành vi này? Làm thế nào tôi có thể khắc phục sự cố này?


8
Người dùng có vỏ gì? Phải /bin/falsekhông
camh

4
Bạn thực sự nên sử dụng sudo -u username -s(hoặc -i) BTW.
mgorven

2
@camh facepalm Thế thôi. Tôi thề tôi đã kiểm tra /etc/passwdtối qua và nó không phải như thế! =) Bạn có thể đặt nó như một câu trả lời? Tôi sẽ chấp nhận nó.
Wesley

Câu trả lời:


68

Kiểm tra xem người dùng có vỏ gì /etc/passwd. Nếu shell là /bin/false(một shell phổ biến để không cho phép đăng nhập), thì bạn sẽ thấy hành vi bạn mô tả. Ngoài ra, nó có thể là một số chương trình chấm dứt ngay lập tức khác cho kết quả hiệu quả tương tự.


2
Điều đó là vậy đó. Tôi thề tôi đã nhìn đầu tiên! =)
Wesley

25
Và nếu bạn cần gỡ lỗi một cái gì đó theo người dùng có /bin/falsevỏ của nó, bạn có thể làm điều đó với su - user -s /bin/sh.
Marki555

6

Tôi khuyên bạn nên sử dụng strace trên quy trình su để xem quy trình thất bại ở đâu.

strace su donaldduck

Sẽ cung cấp cho bạn RẤT NHIỀU đầu ra để sắp xếp, nhưng một cái gì đó trong đó sẽ chỉ ra nơi xảy ra sự cố.


1
Đánh dấu ngu ngốc ....
Magellan

4

Bạn nên kiểm tra shell trong /etc/passwd, và, không muốn bảo trợ, kiểm tra đầu ra whoamisau khi chạy su.


1
Không chắc chắn tại sao điều đó sẽ được coi là bảo trợ, vì tôi chắc chắn sẽ không làm theo cách đó. Ý tôi là tôi có thể nếu bạn muốn, nhưng đó không phải là thiên hướng đầu tiên của tôi. =) Dù sao, vâng, tôi đã quên nói rằng tôi đã làm điều đó chỉ để đảm bảo tôi là người mà tôi nghĩ tôi là, và tôi vẫn rootlà người dùng mà tôi đang cố gắng chuyển sang.
Wesley

0

Kiểm tra nhật ký hệ thống của bạn: sử dụng sudo sẽ ghi lại tất cả các hành động. Vì vậy, nếu có một vấn đề, nó nên được viết.

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.