Come posso applicare uno script terminale usando ssh a tutti gli utenti?

1

Devo disattivare l'opzione di anteprima di stampa di Google Chrome utilizzando lo script "default usa com.google.Chrome DisablePrintPreview -boolean true -contribuito da CutMaster", in un mac usando ssh e applicalo a tutti gli utenti.

Lo script sopra funziona solo quando lo inserisci quando accedi come utente. Tuttavia, non ho accesso all'account dell'utente, ma ho accesso all'account amministratore.

Il tuo aiuto è molto apprezzato.

    
posta Mart Angelo Babaan 17.05.2016 - 17:58
fonte

3 risposte

0

Utilizza il comando sudo

Il comando è sudo -u username command

Quindi, dopo aver inserito SSH come amministratore, invia il comando:

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

Questo imposterà il valore delle preferenze per l'utente in particolare a cui sei interessato senza dover conoscere la loro password.

L'ho verificato personalmente su OS X 10.11.4 utilizzando un account chiamato "testguy". Sono stato in grado di accedere a SSH nella macchina, impostare le preferenze utilizzando il comando che hai fornito e verificare che fosse stato impostato immettendo il comando:

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

La risposta era 1 (true)

    
risposta data 17.05.2016 - 18:47
fonte
0

Per prima cosa devo dire che al momento non sono in grado di ssh in un altro Mac per testarlo, tuttavia lo offrirò comunque perché credo che funzioni.

Alcune supposizioni da parte mia ...

  • Ciascuno dei sistemi da toccare ha più di un account utente.
  • Utilizzerai le credenziali amministratore per modificare il file .plist di destinazione.

Note:

Per poter toccare il file .plist di destinazione in ciascun account, dovrai utilizzare sudo e in tal modo cambierà il proprietario: gruppo del file di destinazione su root: wheel e dovrà essere cambiato dopo che il comando defaults write ... è stato eseguito sul file di destinazione. Quindi le informazioni sul proprietario: gruppo del file dovranno essere accertate e memorizzate in variabili prima di essere toccate.

Se Google Chrome è in esecuzione nel momento in cui viene toccato .plist , le modifiche probabilmente non avranno effetto fino a quando l'app non verrà chiusa e riaperta. Inoltre, a seconda della versione di OS X, la modifica potrebbe essere sovrascritta quando l'app viene chiusa. Se questo è il caso, devi aggiungere altro codice per verificare se l'app è in esecuzione e chiuderla prima di toccare il suo file .plist .

Il seguente script bash dovrebbe fare ciò che è necessario.

#!/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

    
risposta data 17.05.2016 - 20:35
fonte
0

Apprezzo i tuoi suggerimenti ragazzi. Il suggerimento di Allan e User3439894 è corretto e mi ha davvero aiutato molto. Ho provato questo in 10.11.4 e ho usato gli script sopra al 10.9-10.11. Probabilmente ho solo bisogno di inviare un'email agli utenti per riavviare Google Chrome affinché le impostazioni abbiano effetto.

Il motivo per cui voglio disabilitare questa anteprima di stampa in chrome per Mac è perché quando gli utenti stampano sulla nostra stampante Konica, che ha l'autenticazione abilitata, mostra "print" come nome utente dai log. Altri browser come Firefox o Safari mostrano il nome utente appropriato. Non sono riuscito a trovare una soluzione, quindi ho deciso di disabilitare l'anteprima di stampa di Chrome.

    
risposta data 17.05.2016 - 22:15
fonte

Leggi altre domande sui tag