Chạy lệnh với tư cách là người dùng hệ thống Linux Linux (shell = / bin / false)


29

Tôi đã tạo một người dùng "hệ thống" trong Ubuntu 11.04 ( adduser --system) để chạy các công việc định kỳ nhất định, nhưng đôi khi tôi muốn kiểm tra mọi thứ bằng cách chạy các lệnh thủ công như người dùng đó. Cách dễ nhất để làm điều này là gì?

sukhông hoạt động, bởi vì người dùng có /bin/falsevỏ của nó (điều này tốt cho cron). Tôi đã tự thay đổi vỏ để /bin/bashthực hiện kiểm tra và sau đó thay đổi lại, nhưng tôi tự hỏi có cách nào dễ hơn không?

Câu trả lời:


41

Tôi sử dụng su - targetuser -s /bin/bashtừ một vỏ gốc.

Để thực hiện lệnh trực tiếp sử dụng -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 

Đó là công việc, cảm ơn! Làm thế nào tôi bỏ lỡ tùy chọn -s?
EMP

3
bạn cũng có thể giải quyết tùy chọn -c "your_command_here" để truyền lệnh bạn muốn chạy so với chờ shell và sau đó nhập vào dấu nhắc mới.
dmourati

2

Sử dụng sudo. Điều này sẽ hoạt động ngay cả khi người dùng không có vỏ thực sự.

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.