Làm thế nào để bạn chạy một lệnh như một người dùng khác trên Linux?


3

Tôi có quyền truy cập vào máy chủ linux nơi tôi có thể sudo để 'foo' như thế này mà không cần mật khẩu:

sudo su - foo

Khi tôi là người dùng 'foo', tôi có thể chạy một tập lệnh như thế này:

/dir/foo_user_script.sh

'Foo_user_script' chỉ được thực thi bởi người dùng foo chứ không phải bởi người dùng của tôi. Do đó, tôi có thể chạy tập lệnh bằng cách trước tiên thay đổi thành người dùng 'foo' và sau đó chạy tập lệnh.

Tuy nhiên, tôi đang cố gắng để tự động hóa một số quá trình sử dụng máy khách SSH Java ganymed . Faq của Ganymed gợi ý rằng để chạy nhiều lệnh, tôi nên sử dụng một lệnh như:

Session.execCommand("echo Hello && echo again")

Tôi đã thử một cái gì đó như thế này, nhưng lệnh thứ hai (foo_user_script) đã không thực thi:

Session.execCommand("sudo su - foo && /dir/foo_user_script.sh")

Tôi nghĩ rằng điều này không hoạt động bởi vì su ra mắt một vỏ mới.

Có cách nào để tôi chạy tập lệnh /dir/foo_user_script.sh trong một lệnh không?

Lưu ý:
"sudo -l" cho tôi thấy điều này:

(root) NOPASSWD: /bin/su - foo

Cảm ơn đã giúp đỡ!


Bạn nên yêu cầu nhà cung cấp máy chủ cung cấp cấu hình sudo ít bị hỏng hơn. IMHO, sự kết hợp sudo su bị phá vỡ và đánh bại mục đích sử dụng sudo ngay từ đầu (hạn chế quyền truy cập, cung cấp các bản kiểm toán và trách nhiệm giải trình).
Slartibartfast

Sau khi loay hoay với điều này một lúc, tôi nhận ra rằng vì tôi có thể sudo cho người dùng nên tôi có thể tạo và sử dụng các khóa SSH của riêng mình. Tôi đã tạo một khóa mới và bây giờ tôi có thể SSH trực tiếp đến máy chủ dưới dạng 'foo'.
George

2
Hy vọng rằng minh họa tại sao 'sudo su' không phải là một biện pháp bảo mật.
Slartibartfast

Câu trả lời:


5

sudo -u foo /dir/foo_user_script.sh


1
Đáng buồn thay, mặc dù đây là câu trả lời tốt hơn trong nhiều ý nghĩa, hệ thống của người dùng đã bị hỏng (xem đầu ra của sudo -l) để giảm bảo mật.
Slartibartfast
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.