2010-10-15 35 views
5

Tôi muốn thực hiện lệnh cần sudo trong máy cục bộ. Vì vậy, như các tài liệu cho thấy, tôi sử dụng lệnh địa phương, nhưng nó yêu cầu tôi nhập mật khẩu. Làm thế nào tôi có thể tránh điều này? Có một số nơi tôi có thể lưu mật khẩu máy cục bộ của mình không?Vải: Sử dụng lệnh cục bộ

local('sudo /etc/init.d/tomcat6 start',capture=True) 

Trả lời

4

Kiểm tra visudo lệnh, mà sẽ cho phép bạn chỉnh sửa các tập tin /etc/sudoers, trong đó bạn có thể xác định người sử dụng, các lệnh và mật khẩu yêu cầu trên một máy (ví dụ như sử dụng mlzboy không cần nhập mật khẩu để thực hiện /etc/init.d/tomcat6). Đừng quên điều này có thể tạo ra một vấn đề an ninh.

Sudoers manual

4

Nếu bạn không có ý định chia sẻ fabfile bạn có thể sử dụng:

echo "password\n" | sudo -S /etc/init.d/tomcat6 start 

theo trang sudo người đàn ông:

Nguyên nhân -S (stdin) tùy chọn sudo để đọc mật khẩu từ đầu vào tiêu chuẩn thay vì 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.

+0

Tuyệt vời! Làm việc như quyến rũ! – deeshank

1

Nếu bạn muốn sử dụng sudo nhưng trên ip loopback:

from fabric.api import sudo,env 
env.hosts =['127.0.0.1'] 
sudo('aptitude search fabric') 

Không cần phải chỉnh sửa sudoers, đưa cho bạn có một máy chủ ssh chạy cục bộ.

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