Esiste un modo per proteggere con password le singole app?


27

È possibile proteggere con password una specifica applicazione Mac?

Ad esempio, sono interessato a proteggere Mail perché anche se non riesci a recuperare nuove e-mail, puoi comunque leggere tutte le e-mail già ricevute.

Questa non è una domanda sulla sicurezza. Si tratta di condividere un dispositivo all'interno di una famiglia. Non ho informazioni cruciali. Voglio solo evitare a mia figlia o mio figlio di inviare e-mail accidentalmente dal mio account o impedire loro di leggerne alcune.


30
Sembra un esempio del problema XY . Vuoi impedire alle persone di curiosare nella tua e-mail (X), quindi stai chiedendo come proteggere il tuo programma di posta elettronica (Y). Ciò che potresti voler veramente chiedere è What's the best way to protect my email from snooping? E la risposta a ciò sarebbe che è meglio impedire completamente agli utenti non autorizzati di utilizzare il tuo account, ad esempio richiedere una password per disattivare lo screensaver o dopo aver riattivato il sistema dalla modalità di sospensione.
Austin,

3
Voto per il commento di @ Austin. Anche se interrompi l'apertura di Mail.app, non hai impedito a qualcuno di accedere alla tua e-mail. Mail.app mantiene la tua e-mail in chiaro sul disco ~/Library/Application Support- se qualcuno vuole la tua e-mail, saprà semplicemente prendere i file da lì e farcela.
Ian C.

4
@Tutti: questa non è una domanda sulla sicurezza. Si tratta di condividere un dispositivo all'interno di una famiglia. Non ho informazioni cruciali. Voglio solo evitare a mia figlia o mio figlio di inviare e-mail accidentalmente dal mio account o impedire loro di leggerne alcune.
Pierre Watelet,

1
Ciò lo rende molto più chiaro - solo leggendo le parole spoglie, questo ha assunto molte ramificazioni che semplicemente non hai con i bambini e gli incidenti. Sono curioso di sapere se, in questo caso, hai appena impostato i propri account o utilizzato il mio suggerimento per il controllo parentale di alcune app sul tuo account ... (O rispondi a te stesso: puoi dire ciò che hai scelto e le persone probabilmente non continuerò a cercare di contribuire a rendere le risposte migliori supponendo che stavi ancora cercando una soluzione)
bmike

4
→ Rabskatran: il tuo problema è un problema di sicurezza di base. Il tuo bisogno è fondamentale: controlla chi legge i tuoi file (che include la tua e-mail memorizzata). Se avessi giustamente indovinato il tuo problema vote, voterei per il consiglio di Mike: un account per tutti ! È gratis :).
dan

Risposte:


27

Per quanto riguarda il tuo commento sulla risposta di Paul, voglio lasciare il tuo computer per un momento: devi bloccare il tuo computer. Periodo.

Apri Preferenze di Sistema, fai clic su Sicurezza (riga in alto, dall'ultima all'ultima opzione), nella scheda "Generale", seleziona la casella "Richiedi password [immediatamente] dopo l'inizio della sospensione o dello screen saver".

Quindi, quando vai ad allontanarti dal tuo computer;

Ctrl ⌃+ Shift ⇧+Eject ⏏

(Note aggiuntive: fare clic sulla riga sopra.)

Blocca il tuo Mac. Andarsene. Torna indietro, inserisci la password per sbloccarla. Console protetta.


3
+1 Paul è stato il primo a menzionarlo in un commento sotto la sua stessa risposta, ma dal momento che non l'ha ancora integrato nella sua risposta, voterò questo. Vorrei poter dare questo +3 peryou have to lock your computer. Period.
Austin,

-1 poiché questa è ora la risposta alla domanda posta. OP chiede esplicitamente la password per proteggere le singole app su un account multiutente. Un altro scenario: c'è un altro amministratore che può facilmente reimpostare la password e tramite quel login come te e accedere a tutte le tue app.
leymannx,

L'ho affrontato nella mia prima frase. Inoltre, se esiste un altro account amministratore locale, non è possibile proteggere con password un'app lontana da essi. Non è proprio possibile.
Jason Salaz,

10

Puoi semplicemente impostare il controllo genitori sull'account e quindi determinare quali app possono essere utilizzate.

In alternativa, è possibile impostare una password sul salvaschermo e anche definire un "angolo attivo" adatto per attivare il salvaschermo; in questo modo quando ci si allontana dal computer è sufficiente spostare il mouse nell'angolo caldo per bloccare efficacemente lo schermo che richiede una password per ottenere l'accesso.


No, voglio essere in grado di lasciare il mio computer registrato per qualche istante ed essere sicuro che nessuno può leggere le mie e-mail ricevute (se Mail non è già stata avviata), ad esempio. Ma più in generale, che nessuno sarebbe in grado di avviare un'app, creare alcune cose e uscire durante la mia assenza.
Pierre Watelet,

10
In tal caso basta impostare un "angolo attivo" nel salvaschermo e richiedere una password per uscire dal salvaschermo. Quando lasci il tuo Mac, premi il mouse nell'angolo caldo per bloccare lo schermo.
Paolo R,

o imposta il timeout per lo screen saver su breve - Mail non sarà necessariamente l'unica app che vuoi nascondere
user151019

Quindi non è possibile impostare una passoword su un'app ...
Pierre Watelet,

1
@Paul +1 Consiglierei di modificare quel grande suggerimento sull'impostazione dello screensaver protetto da password direttamente nella tua risposta.
Austin,

9

È possibile usare gli script.

Innanzitutto, è necessario abilitare il menu degli script nella barra dei menu di OS X. Leggi la sezione "Menu Script" qui: Abilita il menu Script

Ora apri la tua cartella Library / Scripts e crea un file chiamato "run_with_password.rb" con questi contenuti (cambia "johndoe" con il tuo nome utente):

#!/usr/bin/env ruby
# run an app at lower privilege

require 'etc'
require 'find'

# Note: anyone with sudo access will be able to run as this user. But they could do that anyway.
# run 'id' at the terminal to find out what your username is.
RUN_USER = 'johndoe'

def get_root_info
  root_entry = Etc.getpwnam('root')
  return root_entry.uid, root_entry.gid
end

ROOT_UID, ROOT_GID = get_root_info

def ensure_root
  Process.uid = ROOT_UID
  Process.gid = ROOT_GID
end

def print_user_info
  [
   [:uid, Process.uid],
   [:gid, Process.gid],
   [:euid, Process.euid],
   [:egid, Process.egid],
  ].each do |arr|
    $stderr.puts arr.inspect
  end
end

def set_effective(euid, egid)
  $stderr.puts "setting effective to #{[euid, egid].inspect}"  if $DEBUG
  # must set group first
  Process.egid = egid
  Process.euid = euid
end

def do_privileged(&block)
  orig_euid = Process.euid
  orig_egid = Process.egid
  begin
    $stderr.puts "raising privileges"  if $DEBUG
    set_effective(ROOT_UID, ROOT_GID)
    yield orig_euid, orig_egid
  ensure
    $stderr.puts "lowering privileges"  if $DEBUG
    set_effective(orig_euid, orig_egid)
  end
end

# must be called after ROOT_UID, ROOT_GID are set
def chmod_files_in_dir(mode, dir)
  mode_str = nil
  case mode
  when Integer
    mode_str = '%o' % mode
  when String
    mode_str = mode
  else
    raise TypeError
  end
  chmod_proc = proc do
    Find.find(dir) {|entry|
      if File.directory?(entry) and entry != dir
        Find.prune  # don't recurse into subdirs
      elsif File.file?(entry)
        $stderr.puts "chmod #{mode_str} #{entry}"  if $DEBUG
        system 'chmod', mode_str, entry
      end
    }
  end
  # assume that if dir is owned by root, the executables are also.
  if File.stat(dir).uid == ROOT_UID
    do_privileged(&chmod_proc)
  else
    chmod_proc.call
  end
end

def main(argv)
  # Important: this is to abort if we're not running as root.
  ensure_root

  app_path = argv.shift or raise "Need path to .app file, e.g. /Applications/Mail.app"
  app_macos_dir = File.join(app_path, 'Contents/MacOS')
  File.directory?(app_path) or raise "#{app_path} is not an app bundle"
  File.directory?(app_macos_dir) or raise "#{app_path} bundle doesn't have expected MacOS structure"

  pw_entry = Etc.getpwnam(RUN_USER)
  run_uid = pw_entry.uid
  run_gid = pw_entry.gid


  if $DEBUG
    $stderr.puts [:run_uid, run_uid].inspect
    $stderr.puts [:run_gid, run_gid].inspect
    print_user_info
  end

  # Effectively become RUN_USER
  set_effective(run_uid, run_gid)

  if $DEBUG
    print_user_info
  end

  begin
    chmod_files_in_dir('+x', app_macos_dir)
    # 'open' is asynchronous, so the ensure will run immediately after, and before the app exits.
    $stderr.puts "Running app: #{app_path}"  if $DEBUG
    system 'open', app_path
  ensure
    chmod_files_in_dir('-x', app_macos_dir)
  end
end

if __FILE__ == $0
  $DEBUG = false
  main(ARGV)
end

Quindi, avvia Script Editor e incolla questo codice (cambiando di nuovo johndoe con il tuo nome utente):

do shell script "ruby /Users/johndoe/Library/Scripts/run_with_password.rb /Applications/Mail.app" with administrator privileges

Salvare il file in Libreria / Script come "mail_with_password", assicurandosi che il formato del file sia "Script".

Ora "mail_with_password" apparirà nel menu dello script. Ogni volta che lo esegui, ti chiederà la password (proprio come fanno alcuni installatori). Al termine della sua esecuzione, disabiliterà l'accesso alla normale applicazione Mail. Quindi esegui lo script una volta, quindi prova a eseguire l'app Mail. Non funzionerà. Tieni presente che a TUTTI gli utenti del tuo computer verrà impedito di eseguire Mail direttamente, non solo il tuo utente.

Se mai vuoi consentire a Mail di funzionare normalmente, esegui questo comando sul Terminale:

sudo chmod +x /Applications/Mail.app/Contents/MacOS/Mail

Potresti essere in grado di omettere il "sudo". Usa sudo se ottieni "Operazione non consentita". Nota che sudo ti chiederà la password per consentire operazioni privilegiate.

Avvertenze

  1. Se non hai bisogno del comando "sudo" sopra per eseguire il chmod, ciò significa che un utente esperto potrebbe essere in grado di capire come abilitare nuovamente l'app Mail. Puoi rafforzare la sicurezza cambiando il proprietario del file MacOS / Mail in root. Questo è lasciato come esercizio per il lettore.
  2. Se qualcuno è in grado di copiare l'app Mail sul tuo computer (ad esempio tramite un'unità USB), può comunque accedere alla tua posta.
  3. Lo script ruby ​​funziona per la maggior parte dei bundle di applicazioni OS X. Non ho raccomandato di modificare lo script ruby ​​a meno che tu non sappia davvero cosa stai facendo perché sta facendo determinate cose come root (l'utente privilegiato). Modificare il codice di applecript dovrebbe essere innocuo; ma dovresti sapere come regolare il comando chmod per rendere nuovamente eseguibile la tua app direttamente.
  4. Se il percorso dell'app nel file applecript contiene spazi o altri caratteri speciali, dovrai fare qualcosa come mettere le virgolette singole in tutto il percorso.
  5. Modifica: l'utente Austin ha suggerito che questa procedura non protegge i file .emlx. In realtà non uso l'app Mail, quindi non ho familiarità con l'archiviazione dei dati. Problemi simili si applicano a tutte le app, poiché questa soluzione non nasconde i dati dell'utente.

Paranoia

Se qualcuno che conosce ruby ​​ha accesso al tuo utente che ha effettuato l'accesso, potrebbe modificare lo script ruby ​​in un modo che provoca ogni sorta di caos quando esegui lo script, poiché viene eseguito come root per una parte del tempo. Se pensi che ciò possa accadere, dovresti rendere lo script scrivibile solo da root. Dovrai anche assicurarti che qualcuno non sostituisca lo script con il proprio: possono farlo se la cartella è scrivibile da te. Se stai iniziando a spaventarti con questi avvisi e non sai come proteggerti, probabilmente dovresti dimenticare questa soluzione e ricordarti di bloccare lo schermo quando lasci il computer.


Wow, 3 voti positivi in ​​4 ore? Non mi aspettavo che troppe persone usassero un tale hack, soprattutto perché devi creare un motto per ogni app che vuoi proteggere. Mi piacerebbe sapere come le persone usano la mia soluzione, anche solo per imparare nuovi trucchi.
Kelvin,

8
-1, ma spero che questo non sia preso sul personale. Mi piace molto il livello di dettaglio qui, ed è chiaro che ci sono stati molti pensieri su questo, ma penso che questa soluzione dia un pericoloso falso senso di sicurezza. Un enorme avvertimento che non hai menzionato è che non impedisce l'accesso ai .emlxfile di posta in testo normale memorizzati ~/Library/Mail.
Austin,

3
@Austin hai diritto al tuo voto ovviamente, ma non capisco la tua ragione. Penso che le mie avvertenze e sezioni di paranoia dovrebbero essere sufficienti per indicare che questa non è pensata per essere una soluzione sicura - è solo un deterrente. Ho aggiunto il tuo avvertimento, ma è essenzialmente la stessa idea dietro l'avvertimento n. 2. Inoltre, l'OP ha affermato che non gli importava che un'altra persona leggesse "e-mail già recuperate".
Kelvin,

3
Sono ammirato da molte cose complicate che non userò mai nella vita reale. Questo è uno - ben fatto Kelvin - hai guadagnato un +1 da me su questo. :-) Dubito che finirà per la "migliore" risposta possibile per questa domanda, ma spero che ottenga una menzione d'onore.
bmike

Penso che tu abbia frainteso quella parte della domanda (scontato, probabilmente potrebbe essere formulata meglio). @Rabskatran - per favore, correggimi se sbaglio, ma sono abbastanza sicuro che l'OP stesse cercando di spiegare il motivo per voler proteggere con password l'app. Per parafrasare, anche se uno snoop non sarebbe in grado di recuperare la nuova posta (presumibilmente perché la password dell'account non è stata archiviata in Mail), sarebbe in grado di leggere la posta scaricata esistente , ed è per questo che un OP voleva la protezione della password .
Austin,

5

Sì: diversi modi per proteggere con password la tua posta sono pratici. Dato che sei preoccupato per i bambini / i familiari, il modo più semplice potrebbe essere quello di limitare quelle app usando il Controllo genitori sul tuo account. Ad un certo punto possono avere i propri account e puoi bloccare l'intero account.


Ecco le opzioni che ritengo realizzabili nel caso generale di blocco delle app o alle quali possono accedere le app di dati.

  1. Trasforma il tuo account in un account parent protetto e nella white list delle app che desideri consentire. Conoscerai l'utente / password amministratore separato per consentire l'avvio di app vietate. Voila: qualsiasi app che desideri è ora protetta da password.

  2. Spostare l'app in un'immagine del disco protetta da password e quindi creare un alias da archiviare nella cartella Applicazioni. (eliminando prima l'app originale) Quando un programma tenta di accedere all'app, hai la possibilità di inserire una password e il finder monterà l'immagine del disco. Puoi anche modificare le autorizzazioni di script e altri trucchi tecnici per richiedere una password prima di eseguire lo script per rendere di nuovo eseguibile l'app.

  3. Archivia i dati dell'applicazione in un'immagine disco crittografata protetta da password . Ecco alcune app comuni e le cartelle in cui archiviano i dati dell'utente .

  4. Memorizza la tua app di posta su un'unità rimovibile: esiste un settore industriale per la creazione di pacchetti di app autonomi per eseguire app da unità USB.

Tieni a mente cose come spotlight e altre app che usano i framework all'interno delle app non funzioneranno così bene fino al montaggio delle immagini. Se la password dell'utente è protetta (dalle persone che non si desidera visualizzare i dati), è possibile archiviare le password delle immagini del disco nel portachiavi.

Inoltre, a meno che tu non protegga i file di dati, è solo sicurezza per oscurità e qualcuno potrebbe copiare i tuoi dati altrove o semplicemente guardarli da riflettori o altre app come la modifica del testo. Potrebbero anche portare una copia della posta (o qualunque altra) app da un altro computer. Le app possono essere eseguite ovunque e non solo nella cartella Applicazioni quando un utente amministratore le benedice per la prima esecuzione su quel sistema.

Pertanto, il n. 3 è l'unica strada da percorrere. Blocca i tuoi dati e non preoccuparti delle app.


5

Ecco un'utilità per Mac che farà ciò che stai chiedendo. Può proteggere con password le singole app. Inoltre, puoi impostare un valore di timeout che uscirà dall'applicazione dopo essere stato inattivo per il tempo selezionato.

Mac App Blocker


1
Mac App Blocker è esattamente quello che sta cercando. Come tecnologia Apple, abbiamo ricevuto questa richiesta per questa capacità per anni (ricordi Oulook 2001?). Gli utenti non sono preoccupati che i loro figli o colleghi andranno a scavare nelle cartelle della Libreria per estrarre i file .emlx e leggerli. Non è questo il punto: a loro non importa che gli altri possano usare il loro Mac, semplicemente non vogliono che leggano le loro e-mail. Chiaro e semplice. Mac App Blocker fa quello che fa e questo è tutto ciò di cui hanno bisogno.

2

È un vecchio thread che conosco, ma ho avuto lo stesso problema come te ... Ecco la soluzione: un'applicazione chiamata iLock. Protegge le singole app con una password dopo la tua scelta. Semplice, efficiente e completamente gratuito! https://www.macupdate.com/app/mac/49881/ilock


1

Hmm. Volevo farlo da un po 'ormai. Facciamo un altro esempio che non conserva i file locali a meno che non venga detto, ad esempio programmi di chat come Skype o Trillian. Il problema con i controlli genitori è che non puoi essere un utente amministratore sulla macchina E avere i controlli genitori sul tuo account utente amministratore.

Il mio suggerimento sarebbe semplicemente di fare quanto segue:

chmod 600 /Applications/Trillian.app ; chown `whoami`:staff /Applications/Trillian.app

Questo impedisce a chiunque di eseguirlo, ma lo contrassegna come tuo

Quindi per eseguirlo,

sudo /Applications/Trillian.app/Contents/MacOS/Trillian

In questo modo si superano le autorizzazioni di accesso 600 (rw- --- ---) sopra e sarà necessario immettere una password amministratore per eseguirla.

Puoi anche esaminare il bit setuid e vedere se questo aiuta (far funzionare l'app come un altro utente, in altre parole).


a proposito, il "whoami" sopra deve avere accenti gravi o contraccolpi su entrambi i lati. Le cose anti-hacking su questo sito web hanno messo a nudo quei segni.
Giovanni,

2
Fisso. Sentiti libero di premere Modifica e vedere come l'ho risolto.
Jason Salaz,

1

Che dire di configurare account utente separati con il proprio ID Apple, e-mail con restrizioni dei genitori o nessuna e-mail. Le app possono essere condivise da diversi account. A seconda dell'età dei tuoi figli, se hanno le capacità di amministratore, ad esempio il tuo account, potrebbero essere in grado di danneggiare il tuo account senza volerlo. Con te come amministratore puoi controllare cosa possono fare con il loro account.


1

Conti separati è la soluzione a questo problema.

L'email potrebbe essere quella ovvia, ma ci saranno alcuni file importanti, segnalibri o schede bancarie aperte, ecc. Che potrebbero essere ugualmente dannosi per un bambino da eliminare / aprire / pasticciare in modo casuale.

Account separati (con solo genitori come amministratori) significa che puoi tenere separati i file, le e-mail, le impostazioni, ecc. Di tutti, anche se le applicazioni sono accessibili a tutti.

Se l'utente X utilizza l'applicazione Mail, le sue e-mail e le impostazioni dell'account sono accessibili solo quando hanno effettuato l'accesso. Quando l'utente Y apre Mail, avranno i propri account / posta, sebbene entrambi utilizzino la stessa applicazione Mail.

Potresti avere un account condiviso per gli adulti e un altro per i bambini o account individuali per ogni persona. Con account separati, ti consigliamo di bloccare il computer (tramite screensaver o tornare alla schermata di accesso) quando lo lasci. Ma anche se dimentichi, i tuoi figli vorranno utilizzare il proprio account (con i propri segnalibri, o salvare file di gioco, punteggi più alti, o documenti, ecc.) Anziché i tuoi, il che aiuterà a prevenire accessi / danni accidentali. Anche qualcosa di semplice come non dover uscire da Facebook da chiunque abbia utilizzato il browser per l'ultima volta (ogni account ha le proprie impostazioni del browser, che ricordano chi è connesso a Gmail, Facebook, Icloud, ecc.).

Puoi anche impedire ad alcuni utenti di accedere a particolari applicazioni, siti Web, ecc. Tramite il Controllo genitori in Preferenze di Sistema.


0

Mac App Blocker

Fa esattamente quello che stai chiedendo. Dal loro sito Web:

Con Mac App Blocker, puoi proteggere con password OGNI applicazione sul tuo Mac. Mantieni le tue app e il tuo Mac al sicuro. Imposta un valore di timeout per uscire automaticamente dall'applicazione protetta, quindi anche quando lasci il tuo computer incustodito, sei comunque protetto.


Risposte su Ask Diverso deve essere più di un semplice link. Va bene includere un link, ma per favore riassumilo o estrailo nella risposta. L'idea è di rendere la risposta indipendente.
Nohillside

Grazie a @Ian C. per aver fatto cadere una frase di questo link da una copia-incolla.
dan

0

Veloce e sporco: apri le utilità del disco, crea un'immagine del disco protetta da password nella cartella delle applicazioni, sposta tutte le app che desideri siano protette. Dovrai inserire la password una volta per usarli nel tempo di accesso, quindi puoi semplicemente smontare l'immagine del disco in modo che le persone sullo stesso account possano comunque utilizzare il tuo computer senza accedere a tali app.


0

Se si desidera utilizzare un'app per raggiungere questo obiettivo, sembra che non ci sia molta scelta sulla gamma "gratuita". AppLocker e AppCrypt consentono di bloccare solo 1 app nella versione gratuita e ci sono alcune altre app che offrono prove gratuite per circa 15 giorni. Altrimenti ci sono le opzioni a pagamento. Immagino che la strada da percorrere per una soluzione gratuita (per più di 1 app) sia quella di utilizzare il metodo di script di Kelvin .

Ecco le app che sono riuscito a trovare:

Gratis (mium):

AppLocker

AppCrypt

Prove gratuite:

iLocker

MacAppBlocker

Pagato:

iLock

Lock Pro

Personalmente, ho appena provato e utilizzo ancora AppLocker. Ne ho bisogno solo per un'app, quindi per me la versione gratuita va bene. È molto facile da usare e solido come una roccia. Consigliato!


Alcuni ulteriori dettagli sulle applicazioni che trovi aumenterebbero il valore della tua risposta.
Nohillside

ok grazie @nohillside :)
illustribe il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.