2012-05-15 26 views

Trả lời

24

Tạo một phiên expect trong tập lệnh bash của bạn thường là cách bạn tự động hóa lời nhắc tương tác.

ví dụ:

expect -c " 
spawn sudo setpci -s 00:02.0 F4.B=00 
expect -nocase \"password:\" {send \"$PASS\r\"; interact} 
" 

Lưu ý rằng đây không phải là cách tiếp cận đề nghị trong trường hợp này vì nó là một khổng lồ lỗ an ninh để lưu trữ mật khẩu gốc của bạn trong một kịch bản bash.

Giải pháp đúng là chỉnh sửa /etc/sudoers/ để không nhắc bạn nhập mật khẩu cho nhị phân đó.

#in /etc/sudoers 
neohexane ALL=(ALL) NOPASSWD : /usr/bin/setpci 
+1

Có lý do nào bạn không thể sử dụng phương pháp '/ etc/sudoers /' hay không. Đó sẽ là lời khuyên của tôi. – cmh

+3

"không được khuyến nghị" có vẻ giống như một cách nói. Tôi muốn loại bỏ các giải pháp mong đợi hoàn toàn. Trừ khi đây là hộp cá nhân của riêng mình, anh ta hoàn toàn không nên để lại mật khẩu gốc nằm xung quanh trong một tệp văn bản thuần túy. – chepner

+2

Tôi nghĩ rằng nó đáng giá như là một ví dụ về cách sử dụng kỳ vọng. Tôi sẽ nhấn mạnh như thế nào không được khuyến khích nó được. – cmh

Các vấn đề liên quan