Sử dụng -S
man sudo
:
-S, --stdin Viết lời nhắc đến lỗi tiêu chuẩn và đọc mật khẩu từ đầu vào tiêu chuẩn thay vì sử dụng thiết bị đầu cuối. Mật khẩu phải được theo sau bởi một ký tự dòng mới.
để bạn có thể sử dụng:
echo <myPassword> | sudo -S su <someuser>
Chỉnh sửa: Điều này ở trên không hoạt động trên Ubuntu thử nghiệm. Có vẻ như lệnh thứ hai "su" là nhanh sau khi nhắc truy vấn mật khẩu.
Tôi đã làm một cách giải quyết để đợi một giây để mật khẩu được lặp lại có thể được điền vào, và sau đó sudo thứ hai sẽ có thể chạy được sudo su - foobar
:
echo "password" | sudo -S sleep 1 && sudo su - foobar
su
lối thoát Debian của tôi . Tuy nhiên,sudo su -
được gọi ngay sau khi hoạt động nhờ thông tin lưu trữ. Nó có thể là một cách giải quyết nếu bạn có thể dựa vào hành vi này.