Làm thế nào tôi có thể có được một vỏ tương tác như một người dùng không root khác?


14

Tôi đang sử dụng máy chủ Ubuntu 10.04 LTS, với mô hình bảo mật mặc định (khóa gốc, sử dụng sudođể nâng cao đặc quyền). Thỉnh thoảng tôi thích sử dụng sudo -ikhi tôi cần chạy một loạt các lệnh với các đặc quyền nâng cao hoặc khi tôi cần lục lọi trong các thư mục với các đặc quyền chỉ dành cho root.

Đôi khi, khi thiết lập phần mềm sẽ chạy như tài khoản hệ thống không có đặc quyền của riêng nó ( adduser --system --group --no-create-home --disabled-login some-daemon-user) tôi thấy rằng tôi cần chạy một chuỗi các lệnh như người dùng đó , thay vì chính tôi hoặc root. Tôi đã thử sử dụng sudo -i -u some-daemon-user, nhưng nó chỉ trả về 1trạng thái mà không có bất kỳ thông báo lỗi nào.

Tôi đã kiểm tra syslog, messages, auth, và debugcác file log trong /var/logvà không ai trong số họ bao gồm bất kỳ thông điệp mà tài liệu tham khảo sudohoặc tài khoản trong câu hỏi.

Vì vậy, có thể trở thành một người dùng không root khác, theo kiểu sudo mà không cần đặt mật khẩu và đăng nhập (như họ) không? Hệ thống của tôi bị 'hỏng' theo một cách nào đó hay tôi chỉ đang làm sai?

Câu trả lời:


14

Ahmm .. vấn đề là lớp vỏ tiêu chuẩn của những người dùng đó thường được đặt thành /bin/falsevà vì lý do bảo mật, bạn không nên thay đổi điều này. Nhưng bạn vẫn có thể chạy ví dụ:sudo -u www-data /bin/sh


1
Bạn có thể cho biết thêm chi tiết về "lý do bảo mật" không? Có khác gì không nếu tôi sử dụng sudođể chạy shell như người dùng, như gợi ý ở trên?
Calrion

1
Lý do là, bất kỳ kẻ tấn công nào thực hiện đăng nhập với tư cách là người dùng hệ thống, tức là bằng cách khai thác lỗi trong chương trình đăng nhập, sẽ ít có khả năng kết thúc với trình bao hợp lệ. Vì vậy, bạn nên để lại cài đặt như trong tệp / etc / passwd, ngay cả khi đó chỉ là vì thiện nghiệp. Gọi shell trực tiếp qua sudo không liên quan đến điều này.
Paul Hänsch

Vì vậy, vấn đề là thiết lập một shell trong passwdtệp, không thực sự chạy shell như người dùng. Gotcha!
Calrion

9

sudo -ichạy shell được chỉ định bởi mục nhập cơ sở dữ liệu mật khẩu của người dùng đích, /bin/falsedành cho người dùng hệ thống của bạn.

Sử dụng

 sudo -u some-daemon-user bash

hoặc là

sudo -u some-daemon-user -H bash

nếu bạn muốn đặt biến môi trường $ HOME được đặt cho người dùng đích.

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.