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 đỡ!