Làm cách nào tôi có thể áp dụng tập lệnh đầu cuối bằng ssh cho tất cả người dùng?


1

Tôi cần phải tắt tùy chọn xem trước bản in của Google chrome bằng cách sử dụng tập lệnh "mặc định ghi com.google.Chrom DisablePrintPreview -boolean true - được phân phối bởi CutMaster", cho máy mac sử dụng ssh và áp dụng điều này cho tất cả người dùng.

Kịch bản trên chỉ hoạt động khi bạn nhập nó khi đăng nhập với tư cách người dùng. Tuy nhiên, tôi không có quyền truy cập vào tài khoản của người dùng nhưng tôi có quyền truy cập vào tài khoản quản trị viên.

Sự giúp đỡ của bạn được đánh giá rất cao.


Quên đề cập rằng đây là một nhiệm vụ mà tôi cần phải áp dụng cho hơn 20 máy trạm và không muốn làm phiền họ. Thật không may, chúng tôi chưa thiết lập máy chủ nên bây giờ tất cả các cài đặt sẽ được thực hiện thủ công.
Mart Angelo Babaan

Nếu lệnh chỉ hoạt động khi người dùng đăng nhập thì bạn cần phải đăng nhập với tư cách người dùng. Bạn có thể thử vào sshtài khoản quản trị viên sau sudo defaults write /Users/foo/Preferences/com.google.Chrome DisablePrintPreview -boolean true -contributed by CutMasterđó điều chỉnh sau đó đặc quyền theo sở thích. Điều này không khó để kịch bản nếu nó hoạt động.
fd0

Câu trả lời:


0

Sử dụng sudolệnh

Lệnh là sudo -u username command

Vì vậy, sau khi bạn SSH với tư cách quản trị viên, hãy đưa ra lệnh:

sudo -u <username> defaults write  /Users/<username>/Library/Preferences/com.google.Chrome.plist D
isablePrintPreview -boolean true

Điều đó sẽ đặt giá trị tùy chọn cho người dùng cụ thể mà bạn quan tâm mà không cần phải biết mật khẩu của họ.

Cá nhân tôi đã kiểm tra điều này trên OS X 10.11.4 bằng tài khoản có tên "testguy". Tôi đã có thể SSH vào máy, thiết lập các tùy chọn bằng lệnh bạn cung cấp và xác minh rằng nó đã được đặt bằng cách ban hành lệnh:

sudo -u testguy defaults read  /Users/testguy/Library/Preferences/com.google.Chrome.plist Di
sablePrintPreview  

Câu trả lời là 1(đúng)


Đây là một gợi ý hay Allan nhưng nó vẫn liên quan đến tôi đi vào từng máy trạm và đăng nhập với tư cách người dùng. Tôi quên đề cập rằng tôi phải áp dụng điều này cho 30 máy trạm. Điều tôi muốn là kết nối với từng máy trạm thông qua SSH mà không làm phiền người dùng và áp dụng các cài đặt cho tất cả người dùng trong máy trạm đó. Kịch bản do CutMaster cung cấp thực sự lưu các cài đặt và không cần chạy mỗi khi mac khởi động.
Mart Angelo Babaan

À ... tôi nghĩ đó là nhiều người dùng trên một máy Mac. Tôi có một giải pháp cho bạn rằng nó chỉ có thể hoạt động - Tôi nhớ nó khi đang ăn trưa
Allan

Bạn có thể không kiện người dùng sau khi đăng nhập với tư cách quản trị viên không?
đại lý roadkill

Tôi chỉ thử nghiệm điều này và nó đã làm việc. Sử dụng sudo -u username commandtrên máy tính từ xa. suyêu cầu bạn phải biết mật khẩu người dùng. Ưu điểm là bạn có được môi trường và các biến của chúng, nhưng trong trường hợp này, bạn không cần những thứ đó..chỉ là tệp bạn muốn viết.
Allan

0

Đầu tiên tôi phải nói rằng hiện tại tôi không phải là nơi tôi có thể sshvào một máy Mac khác để kiểm tra điều này, tuy nhiên tôi sẽ cung cấp nó bằng mọi cách vì tôi tin rằng điều này có thể hoạt động.

Một số giả định về phía tôi ...

  • Mỗi hệ thống được chạm có nhiều hơn một Tài khoản người dùng.
  • Bạn sẽ sử dụng Thông tin quản trị viên để sửa đổi tệp .plist đích .

Ghi chú:

Để chạm vào tệp .plist đích trong mỗi Tài khoản bạn sẽ cần sử dụng sudovà do đó, nó sẽ thay đổi chủ sở hữu: nhóm tệp đích thành root: wheel và sẽ cần phải thay đổi lại sau khi defaults write ...lệnh được thực thi trên tập tin mục tiêu. Vì vậy, chủ sở hữu: thông tin nhóm của tệp sẽ cần được xác định và lưu trữ trong các biến trước khi được chạm vào.

Nếu Google Chrome đang chạy tại thời điểm .plist của nó bị chạm, các thay đổi có thể sẽ không có hiệu lực cho đến khi ứng dụng được đóng và mở lại. Ngoài ra, tùy thuộc vào phiên bản OS X, thay đổi có thể bị ghi đè khi đóng ứng dụng. Nếu đây là trường hợp bạn cần thêm mã bổ sung để kiểm tra và xem ứng dụng có đang chạy hay không và đóng nó trước khi chạm vào tệp .plist của nó .

Kịch bản bash sau đây nên làm những gì cần thiết.


#!/bin/bash

f="/Library/Preferences/com.google.Chrome.plist"

for d in /Users/*; do
    if [[ -f $d$f ]]; then
        og="$(ls -l "$d$f" | awk '{print $3":"$4}')"
        defaults write "$d$f" DisablePrintPreview -boolean true
        chown "$og" "$d$f"
    fi
done

nhập mô tả hình ảnh ở đây


Tôi không chắc mục đích của hình ảnh là gì, nhưng nếu đó là do cú pháp tô sáng tôi đã sửa nó. Tôi không muốn loại bỏ nó mặc dù.
grg

0

Tôi đánh giá cao đề nghị của bạn guys. Đề xuất của Allan và User3439894 đều đúng và thực sự đã giúp tôi rất nhiều. Tôi đã thử nghiệm điều này trong 10.11.4 và sử dụng các tập lệnh ở trên đến 10.9-10.11. Tôi có lẽ chỉ cần gửi email cho người dùng để khởi chạy lại Google chrome để các cài đặt có hiệu lực.

Lý do tại sao tôi muốn tắt tính năng xem trước bản in này trong chrome cho mac là vì khi người dùng in tới máy in Konica của chúng tôi đã bật xác thực, nó sẽ hiển thị "in" dưới dạng tên người dùng từ nhật ký. Các trình duyệt khác như firefox hoặc safari không hiển thị tên người dùng phù hợp. Tôi không thể tìm ra giải pháp cho vấn đề đó nên tôi quyết định vô hiệu hóa bản xem trước in của chrome.

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.