Làm cách nào để bắt đầu công việc với tư cách là người dùng không có đặc quyền trong Upstart?


14

Tôi đang sử dụng phiên bản mới nhất cuối cùng cho Ubuntu 10,4 LTS. upstart được khởi chạy với cờ kernel --debug.

Tôi đang tạo một cấu hình công việc tùy chỉnh cho nzbget daemon. Về cơ bản, công việc này có một kịch bản bắt đầu trước gắn kết một hệ thống tập tin, một kịch bản sau khi bắt đầu ngắt kết nối hệ thống tập tin và một exec nzbget -Ddòng.

Vấn đề là daemon nzbget cần phải chạy như một người dùng không có quyền riêng tư. Tính năng này đã được bao gồm trong nzbget. Thật vậy, khi tôi chạy từ bàn điều khiển sudo nzbget -D, quá trình sẽ chạy như một người dùng không có đặc quyền. Nhưng khi tôi bắt đầu công việc mới bắt đầu với exec nzbget -Ddòng, quá trình nzbget -D chạy như root. Như đã nói trong cuốn sách dạy nấu ăn mới nổi, tôi đã thử sử dụng người dùng su -c "nzbget -D" và cả start-stop-daemon cả mà không mong đợi như lời khuyên. Nhưng đối với cả hai lệnh, khi mới bắt đầu theo dõi sai PID tôi đoán, nó thấy quy trình chính bị giết (do bắt đầu ghi nhật ký) khi kết thúc quá trình bắt đầu và do đó, nó khởi chạy kịch bản hậu xử lý mà tôi không muốn.

=> Làm thế nào tôi có thể làm điều đó đúng? Làm thế nào mà exec nzbget -Dlệnh khởi động làm cho quá trình chạy như root trong khi sudo nzbget -Dlệnh làm cho nó chạy như người dùng không có quyền riêng tư?

Câu trả lời:


12

Có một số tiến bộ với việc phát hành phiên bản 1.4.:

New setuidvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

Bạn có thể lấy nó từ trang LaunchPad của họ nhưng (lạ thay) tôi không thể thấy PPA nên bạn có thể phải tự biên dịch nó.

Nếu không, sử dụng suhoặc sudotrong lệnh exec của bạn như vậy:

su -c "<commands>" <username>
sudo -u <username> <commands>

Cả hai đều làm khá nhiều việc giống nhau, vì vậy hãy chọn bất cứ điều gì bạn hạnh phúc nhất. Vì vậy, sử dụng lệnh ví dụ của bạn:

exec sudo -u me "nzbget -D"

tên miền upstart.at là undead
Giáo sư Falken hỗ trợ Monica

Cảm ơn vì điều đó! Không rõ ràng với tôi trong các tài liệu mới bắt đầu nếu tôi nên sử dụng Phiên khởi đầu / Công việc, v.v.
Luke Hoersten

4

Tôi đề nghị sử dụng sudo với cú pháp sau:

sudo -u foouser foocommand

Điều này chạy lệnh foocommand như người dùng foouser.

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.