lệnh sudo tùy chỉnh


1

Làm thế nào tôi có thể làm cho các chức năng tùy chỉnh có thể truy cập vào lệnh sudo?

Tôi đã cài đặt Mac OS X với Bootcamp, nhưng cũng có VirtualBox để tôi có thể chạy Windows để thử nghiệm các trang web trong IE. Tôi phải chạy chuỗi lệnh này để có thể khởi động Windows trong VirtualBox:

sudo chmod 777 /dev/disk0s4
sudo chown myUserAccount bootcamp.vmdk bootcamp-pt.vmdk
sudo umount /Volumes/BOOTCAMP
VBoxManage list vms
VBoxManage startvm <uid>

Đó là một nỗi đau ở mông phải làm điều này, vì vậy tôi muốn tự động hóa nó. Tôi đã tạo một tệp có tên bootcamp.sh trong thư mục phát triển cá nhân mà tôi giữ. Tôi đã cố gắng bao gồm những điều sau đây trong một số tập tin:

. /Users/myUserAccount/Development/Bash/bootcamp.sh

Tôi đã thử bao gồm nó trong:

  • .Bash_profile cá nhân của tôi (sẽ không hoạt động rõ ràng)
  • / etc / bashrc
  • / riêng tư / etc / bashrc
  • / riêng tư / etc / hồ sơ.

Tôi cũng đã cố gắng tạo một symlink trong / usr / bin / được gọi là bootcamp (không có phần mở rộng) và nó đã hoạt động một phần, cho phép tôi làm:

sudo sh bootcamp

Nhưng nó vẫn làm phiền tôi khi phải viết sh trong đó. Tôi đã thử bao gồm một shebang (#! / Usr / bin / sh) trong đầu tệp bootcamp.sh , nhưng không gặp may.

Cảm ơn trước!

Câu trả lời:


1

Nếu shebang là đường dẫn chính xác, thì bạn chỉ cần làm cho tập lệnh thực thi để tránh cần sh.

chmod + x /Users/myUserAccount/Development/Bash/bootcamp.sh

Và được cung cấp /Users/myUserAccount/Development/Bash/là trong đường dẫn, bạn chỉ có thể làm

sudo bootcamp.sh

Bạn cũng không thực sự cần hậu tố .sh, bạn có thể đổi tên nó thành bootcamp.

Nhược điểm của việc này là bạn sẽ chạy VBoxManage với quyền root. Vì vậy, tôi sẽ đặt các lệnh

sudo chmod 777 /dev/disk0s4
sudo chown myUserAccount bootcamp.vmdk bootcamp-pt.vmdk
sudo umount /Volumes/BOOTCAMP
VBoxManage list vms
VBoxManage startvm <uid>

vào tập tin bootcamp.sh. Sau đó chạy nó như

bootcamp.sh

Bạn sẽ được nhắc cho sudo đầu tiên cung cấp mật khẩu, nhưng điều này có nghĩa là các lệnh VBox sẽ được chạy như một người dùng bình thường.


Tuyệt vời, làm việc như một lá bùa! Nếu tôi chỉ biết về chmod + x <file>! Tôi cũng không nghĩ đến việc giữ sudo trong kịch bản. Cảm ơn!
Tixz

0

Bạn phải làm cho tập tin thực thi với

chmod +x bootcamp.sh

Ngoài ra, bạn không cần sudo bên trong tập lệnh, nếu bạn sử dụng sudo để gọi tập lệnh.

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.