Existe-t-il un moyen de protéger par mot de passe des applications individuelles?

27

Est-il possible de protéger par mot de passe une application Mac spécifique?

Par exemple, je souhaite protéger Mail car même si vous ne pouvez pas récupérer de nouveaux e-mails, vous pouvez toujours lire tous les e-mails déjà reçus.

Ce n'est pas une question de sécurité. Il s'agit de partager un appareil au sein d'une famille. Je n'ai pas d'informations cruciales. Je veux simplement éviter que ma fille ou mon fils n'envoie accidentellement des e-mails depuis mon compte ou les empêche d'en lire certains.

Pierre Watelet
la source
30
Cela ressemble à un exemple du problème XY . Vous voulez empêcher les gens de fouiner dans votre e-mail (X), vous demandez donc comment protéger votre programme de messagerie (Y). Ce que vous voudrez peut-être vraiment demander, c'est What's the best way to protect my email from snooping? que la meilleure solution consiste à empêcher complètement les utilisateurs non autorisés d'utiliser votre compte - par exemple, exiger un mot de passe pour désactiver l'économiseur d'écran ou après avoir réveillé le système du sommeil.
Austin
3
Upvote pour le commentaire de @ Austin. Même si vous empêchez Mail.app de s'ouvrir, vous n'avez pas empêché quelqu'un d'accéder à votre messagerie. Mail.app conserve vos e-mails en texte brut sur le disque ~/Library/Application Support- si quelqu'un veut votre e-mail, il saura simplement récupérer les fichiers à partir de là et faire avec.
Ian C.
4
@Tout le monde: Ce n'est pas une question de sécurité. Il s'agit de partager un appareil au sein d'une famille. Je n'ai pas d'informations cruciales. Je veux simplement éviter que ma fille ou mon fils n'envoie accidentellement des e-mails depuis mon compte ou les empêche d'en lire certains.
Pierre Watelet
1
Cela le rend tellement plus clair - à la simple lecture des mots, cela a pris beaucoup de ramifications que vous n'avez tout simplement pas avec les enfants et les accidents. Je suis curieux de savoir si dans ce cas, vous venez de leur créer leurs propres comptes ou d'utiliser ma suggestion pour contrôler parentalement certaines des applications de votre compte ... (Ou répondez simplement vous-même - vous pouvez dire ce que vous avez choisi, et les gens ne continuera probablement pas à essayer d'améliorer les réponses en supposant que vous cherchiez toujours une solution)
bmike
4
→ Rabskatran: votre problème est un problème de sécurité basique. Votre besoin est fondamental: contrôler qui lit vos fichiers (ce qui inclut votre e-mail stocké). Si j'ai bien deviné votre problème ☂, je voterais pour le conseil de Mike: un compte pour tout le monde ! C'est gratuit :).
dan

Réponses:

27

Concernant votre commentaire sur la réponse de Paul, vouloir quitter votre ordinateur un instant: vous devez verrouiller votre ordinateur. Période.

Ouvrez les Préférences Système, cliquez sur Sécurité (ligne du haut, avant-dernière option), sous l'onglet "Général", cochez la case "Exiger le mot de passe [immédiatement] après le sommeil ou l'économiseur d'écran commence".

Ensuite, lorsque vous allez vous éloigner de votre ordinateur;

Ctrl ⌃+ Shift ⇧+Eject ⏏

(Notes supplémentaires: cliquez sur la ligne ci-dessus.)

Verrouillez votre Mac. Éloignez-vous. Revenez, entrez votre mot de passe pour le déverrouiller. Console sécurisée.

Jason Salaz
la source
3
+1 Paul a été le premier à le mentionner dans un commentaire sous sa propre réponse, mais comme il ne l'a pas encore intégré dans sa propre réponse, je voterai pour. J'aimerais pouvoir donner ce +3 pouryou have to lock your computer. Period.
Austin
-1 car c'est maintenant la réponse à la question posée. OP demande explicitement un mot de passe pour protéger les applications individuelles sur un compte multi-utilisateurs. Un autre scénario: il y a un autre administrateur qui peut facilement réinitialiser votre mot de passe et se connecter en tant que vous et accéder à toutes vos applications.
leymannx
J'en ai parlé dans ma première phrase. De plus, s'il existe un autre compte d'administrateur local, vous ne pouvez pas protéger par mot de passe une application loin d'eux. Ce n'est tout simplement pas possible.
Jason Salaz
10

Vous pouvez simplement définir le contrôle parental sur le compte, puis déterminer quelles applications peuvent être utilisées.

Alternativement, vous pouvez définir un mot de passe sur votre économiseur d'écran et également définir un "coin chaud" approprié pour activer l'économiseur d'écran - de cette façon, lorsque vous vous éloignez de votre ordinateur, vous pouvez simplement déplacer la souris dans le coin chaud pour verrouiller efficacement l'écran tel qu'il nécessite un mot de passe pour y accéder.

Paul R
la source
Non, je veux pouvoir laisser mon ordinateur connecté pendant quelques instants et être sûr que personne ne peut lire mes emails reçus (si Mail n'est pas déjà démarré) par exemple. Mais plus généralement, que personne ne pourrait lancer une application, faire des trucs et quitter pendant mon absence.
Pierre Watelet
10
Dans ce cas, il suffit de définir un "coin chaud" dans l'économiseur d'écran et de demander un mot de passe pour quitter l'économiseur d'écran. Lorsque vous quittez votre Mac, poussez la souris dans le coin chaud pour verrouiller l'écran.
Paul R
ou définissez le délai d'expiration de l'économiseur d'écran - Mail ne sera pas nécessairement la seule application que vous souhaitez masquer
user151019
Il n'est donc pas possible de définir un mot de passe sur une appli ...
Pierre Watelet
1
@Paul +1 Je recommanderais de modifier cette excellente suggestion sur la configuration de l'économiseur d'écran protégé par mot de passe directement dans votre réponse.
Austin
9

C'est possible en utilisant des scripts.

Tout d'abord, vous devez activer le menu de script dans la barre de menus OS X. Lisez la section "Menu Script" ici: Activez le menu Script

Ouvrez maintenant votre dossier Library / Scripts et créez un fichier appelé "run_with_password.rb" avec ces contenus (changez "johndoe" en votre nom d'utilisateur):

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

Ensuite, démarrez l'éditeur de script et collez ce code (en changeant à nouveau johndoe en votre nom d'utilisateur):

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

Enregistrez le fichier dans Library / Scripts sous "mail_with_password", en vous assurant que le format de fichier est "Script".

Maintenant "mail_with_password" apparaîtra dans votre menu de script. Chaque fois que vous l'exécutez, il vous demandera votre mot de passe (comme le font certains installateurs). Une fois l'exécution terminée, il désactivera l'accès à l'application Mail standard. Exécutez donc le script une fois, puis essayez d'exécuter l'application Mail. Cela ne fonctionnera pas. Notez que cela signifie que TOUS les utilisateurs de votre ordinateur ne pourront pas exécuter Mail directement, pas seulement votre utilisateur.

Si jamais vous souhaitez autoriser Mail à s'exécuter à nouveau normalement, exécutez cette commande sur le terminal:

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

Vous pourrez peut-être omettre le "sudo". Utilisez sudo si vous obtenez "Opération non autorisée". Notez que sudo vous demandera votre mot de passe pour permettre un fonctionnement privilégié.

Avertissements

  1. Si vous n'avez pas eu besoin de la commande "sudo" ci-dessus pour faire le chmod, cela signifie qu'un utilisateur averti pourrait être en mesure de comprendre comment réactiver l'application Mail. Vous pouvez renforcer la sécurité en changeant le propriétaire du fichier MacOS / Mail en root. Cela reste un exercice pour le lecteur.
  2. Si quelqu'un est en mesure de copier l'application Mail sur votre ordinateur (par exemple via une clé USB), il peut toujours accéder à votre messagerie.
  3. Le script ruby ​​est censé fonctionner pour la plupart des ensembles d'applications OS X. Je ne recommande pas de modifier le script ruby ​​à moins que vous ne sachiez vraiment ce que vous faites parce qu'il fait certaines choses en tant que root (l'utilisateur privilégié). Ajuster le code applescript devrait être inoffensif; mais vous devez savoir comment ajuster la commande chmod pour rendre votre application directement exécutable à nouveau.
  4. Si le chemin d'accès à l'application dans le fichier applescript comporte des espaces ou d'autres caractères spéciaux, vous devrez faire quelque chose comme mettre des guillemets simples tout au long du chemin.
  5. Edit: l'utilisateur Austin a suggéré que cette procédure ne protège pas les fichiers .emlx. En fait, je n'utilise pas l'application Mail, donc je ne connais pas le stockage de données. Des problèmes similaires s'appliquent à toutes les applications, car cette solution ne masque pas les données utilisateur.

Paranoïa

Si quelqu'un qui connaît ruby ​​a accès à votre utilisateur connecté, il peut modifier le script ruby ​​d'une manière qui provoque toutes sortes de ravages lorsque vous exécutez le script, car il s'exécute en tant que root pendant une partie du temps. Si vous pensez que cela peut arriver, vous devez rendre le script accessible en écriture uniquement par root. Vous devrez également vous assurer que quelqu'un ne remplace pas le script par le sien - il peut le faire si le dossier est accessible en écriture par vous. Si vous commencez à avoir peur de ces avertissements et ne savez pas comment vous protéger, vous devriez probablement oublier cette solution et n'oubliez pas de verrouiller votre écran lorsque vous quittez l'ordinateur.

Kelvin
la source
Wow, 3 votes positifs en 4 heures? Je ne m'attendais pas à ce que trop de gens utilisent un tel hack, d'autant plus que vous devez créer un script Apple pour chaque application que vous souhaitez protéger. J'aimerais savoir comment les gens utilisent ma solution, ne serait-ce que pour apprendre de nouvelles astuces.
Kelvin
8
-1, mais j'espère que ce n'est pas pris personnellement. J'aime vraiment le niveau de détail ici, et il est clair que beaucoup de réflexion a été consacrée à cela, mais je pense que cette solution donne un faux sentiment de sécurité dangereux. Une énorme mise en garde que vous n'avez pas mentionnée est qu'elle n'empêche pas l'accès aux .emlxfichiers de messagerie en texte brut stockés dans ~/Library/Mail.
Austin
3
@Austin, vous avez bien sûr droit à votre downvote, mais je ne comprends pas votre raison. Je pense que mes mises en garde et mes sections sur la paranoïa devraient suffire à indiquer que ce n'est pas censé être une solution sûre - c'est seulement un moyen de dissuasion. J'ai ajouté votre mise en garde, mais c'est essentiellement la même idée derrière la mise en garde # 2. De plus, le PO a déclaré qu'il ne se souciait pas qu'une autre personne lise "des e-mails déjà récupérés".
Kelvin
3
Je suis impressionné par de nombreuses choses compliquées que je n'utiliserai jamais dans la vraie vie. C'est un - bravo Kelvin - vous avez gagné un +1 de moi à ce sujet. :-) Je doute que cela finira par la "meilleure" réponse possible à cette question, mais j'espère qu'elle obtiendra une mention honorable.
bmike
Je pense que vous comprenez mal cette partie de la question (d'accord, elle pourrait probablement être mieux formulée). @Rabskatran - veuillez me corriger si je me trompe, mais je suis assez confiant que le PO tentait d'expliquer la raison pour laquelle il voulait protéger par mot de passe l'application. Pour paraphraser, même si un espion ne serait pas en mesure de récupérer de nouveaux messages (probablement parce que le mot de passe du compte n'était pas stocké dans Mail), il serait en mesure de lire les messages téléchargés existants , et c'est pourquoi un OP voulait la protection par mot de passe .
Austin
5

Oui - plusieurs façons de protéger votre courrier par mot de passe sont pratiques. Étant donné que vous êtes préoccupé par les enfants / membres de la famille, le plus simple pourrait être de restreindre ces applications à l'aide du contrôle parental sur votre compte. À un moment donné, ils peuvent avoir leurs propres comptes et vous pouvez verrouiller l'ensemble de votre compte.


Voici les options que je considère comme réalisables pour le cas général de verrouillage des applications ou les applications de données peuvent accéder.

  1. Faites de votre compte un compte parental protégé et liste blanche les applications que vous souhaitez autoriser. Vous connaîtrez l'utilisateur / mot de passe administrateur distinct pour permettre le lancement d'applications interdites. Voila - toute application que vous voulez est maintenant protégée par mot de passe.

  2. Déplacez l'application dans une image disque protégée par mot de passe, puis créez un alias à stocker dans le dossier Applications. (en supprimant d'abord l'application d'origine) Lorsqu'un programme essaie d'accéder à l'application, vous avez la possibilité d'entrer un mot de passe et le viseur montera l'image disque. Vous pouvez également modifier les autorisations de script et autres astuces techniques pour exiger un mot de passe avant d'exécuter le script pour rendre l'application exécutable à nouveau.

  3. Stockez les données d'application dans une image disque chiffrée protégée par mot de passe . Voici quelques applications courantes et les dossiers où elles stockent les données utilisateur .

  4. Stockez votre application de messagerie sur un lecteur amovible - il existe une industrie artisanale qui consiste à créer des packages d'applications autonomes pour exécuter des applications à partir de lecteurs USB.

Gardez à l'esprit que des choses comme Spotlight et d'autres applications utilisant des frameworks dans les applications ne fonctionneront pas si bien tant que les images ne seront pas montées. Si votre mot de passe utilisateur est sécurisé (des personnes dont vous ne voulez pas voir les données), vous pouvez stocker les mots de passe d'image disque dans le trousseau.

De plus - à moins que vous ne protégiez les fichiers de données - ce n'est que la sécurité par l'obscurité et quelqu'un pourrait copier vos données ailleurs ou simplement les regarder sous les projecteurs ou d'autres applications comme la modification de texte. Ils peuvent également apporter une copie de l'application de messagerie (ou autre) à partir d'un autre ordinateur. Les applications peuvent s'exécuter de n'importe où et pas seulement du dossier Applications une fois qu'un utilisateur administrateur les bénit pour la première exécution sur ce système.

Par conséquent, # 3 est la seule voie à suivre. Verrouillez vos données et ne vous inquiétez pas des applications.

bmike
la source
5

Voici un utilitaire Mac qui fera ce que vous demandez. Il peut protéger par mot de passe des applications individuelles. En outre, vous pouvez définir une valeur de délai d'expiration qui quittera l'application après avoir été inactive pendant la durée sélectionnée.

Bloqueur d'applications Mac

Ken
la source
1
Mac App Blocker est exactement ce qu'il recherche. En tant que technicien Apple, nous recevons cette demande pour cette capacité depuis des années (rappelez-vous Oulook 2001?). Les utilisateurs ne craignent pas que leurs enfants ou leurs collègues creusent dans les dossiers de la bibliothèque pour extraire les fichiers .emlx et les lire. Ce n'est pas le problème - cela ne les dérange pas de laisser les autres utiliser leur Mac, ils ne veulent tout simplement pas qu'ils lisent leurs e-mails. Clair et simple. Le Mac App Blocker fait ce qu'il fait et c'est tout ce dont ils ont besoin pour faire.
2

C'est un vieux fil que je connais, mais j'ai eu le même problème que vous… Voici la solution: une application appelée iLock. Protège les applications uniques avec un mot de passe après votre choix. Simple, efficace et totalement gratuit! https://www.macupdate.com/app/mac/49881/ilock

user75894
la source
1

Hmm. Je veux faire ça depuis un moment maintenant. Prenons un autre exemple qui ne conserve pas les fichiers locaux à moins qu'on ne le lui dise - des programmes de discussion comme Skype ou Trillian, par exemple. Le problème avec le contrôle parental est que vous ne pouvez pas être un utilisateur administrateur sur la machine ET avoir un contrôle parental sur votre compte d'utilisateur administrateur.

Ma suggestion serait de simplement faire ce qui suit:

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

Cela empêche quiconque de l'exécuter, mais le marque comme le vôtre

Ensuite, pour l'exécuter,

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

Cela dépasse les 600 autorisations d'accès (rw- --- ---) ci-dessus, et vous devrez entrer un mot de passe administrateur pour l'exécuter.

Vous pouvez également examiner le bit setuid et voir si cela aide (faire fonctionner l'application en tant qu'autre utilisateur, en d'autres termes).

John
la source
soit dit en passant, le "whoami" ci-dessus doit avoir des accents graves ou des contre-coups de chaque côté. Les éléments anti-piratage de ce site Web ont effacé ces marques.
John
2
Fixé. N'hésitez pas à cliquer sur modifier et à voir comment je l'ai corrigé.
Jason Salaz du
1

Qu'en est-il de la configuration de comptes d'utilisateurs distincts avec leur propre identifiant Apple, un e-mail avec des restrictions parentales ou aucun e-mail? Les applications peuvent être partagées par différents comptes. Selon l'âge de vos enfants, s'ils ont la capacité d'administrateur, c'est-à-dire votre compte, ils pourraient être en mesure de nuire à votre compte sans le vouloir. Avec vous étant l'administrateur, vous pouvez contrôler ce qu'ils peuvent faire avec leur compte.

rclyde
la source
1

Des comptes séparés sont la solution à ce problème.

Le courrier électronique peut être évident, mais il y aura des fichiers importants, ou des signets, ou des onglets bancaires ouverts, etc. qui pourraient être tout aussi mauvais pour un enfant à supprimer / ouvrir / salir au hasard.

Des comptes séparés (avec uniquement des parents comme administrateurs) signifient que vous pouvez garder les fichiers, les e-mails, les paramètres, etc. de tout le monde séparés, même si les applications sont accessibles à tous.

Si l'utilisateur X utilise l'application Mail, ses e-mails et les paramètres de compte ne sont accessibles que lorsqu'ils sont connectés. Lorsque l'utilisateur Y ouvre Mail, il aura ses propres comptes / messages, même si les deux utilisent la même application Mail.

Vous pouvez avoir un compte partagé pour les adultes et un autre pour les enfants, ou des comptes individuels pour chaque personne. Avec des comptes séparés, vous souhaiterez verrouiller l'ordinateur (via l'économiseur d'écran ou revenir à l'écran de connexion) lorsque vous le quitterez. Mais même si vous oubliez, vos enfants voudront utiliser leur propre compte (avec leurs propres signets, ou enregistrer des fichiers de jeu, ou des scores élevés, ou des documents, etc.) plutôt que le vôtre, ce qui aidera à prévenir tout accès / dommage accidentel. Même quelque chose d'aussi simple que de ne pas devoir se déconnecter de Facebook de la dernière personne qui a utilisé le navigateur (chaque compte a ses propres paramètres de navigateur, qui se souviennent de qui est connecté à Gmail, Facebook, Icloud, etc.).

Vous pouvez également empêcher certains utilisateurs d'accéder à des applications, sites Web, etc. via le contrôle parental dans les Préférences Système.

drfrogsplat
la source
0

Bloqueur d'applications Mac

Fait exactement ce que vous demandez. Depuis leur site Web:

Avec Mac App Blocker, vous pouvez protéger CHAQUE application par mot de passe sur votre Mac. Gardez vos applications et votre Mac en sécurité. Définissez un délai d'expiration pour quitter automatiquement l'application protégée de sorte que même lorsque vous laissez votre ordinateur sans surveillance, vous êtes toujours protégé.

Sherif
la source
Les réponses à Ask Different doivent être plus qu'un simple lien. Vous pouvez inclure un lien, mais veuillez le résumer ou l'extraire dans la réponse. L'idée est de rendre la réponse autonome.
nohillside
Merci à @Ian C. d'avoir fait une phrase de ce lien tombé d'un copier-coller.
dan
0

Rapide et sale: ouvrez les utilitaires de disque, créez une image disque protégée par mot de passe dans votre dossier d'applications, déplacez-y toutes les applications que vous souhaitez protéger. Vous devrez entrer le mot de passe une fois pour les utiliser à chaque fois que vous vous connecterez, puis vous pourrez simplement démonter l'image disque afin que les personnes sur le même compte puissent toujours utiliser votre ordinateur sans accès à ces applications.

superjonbot
la source
0

Si vous souhaitez utiliser une application pour y parvenir, il semble qu'il n'y ait pas vraiment beaucoup de choix sur la gamme "gratuite". AppLocker et AppCrypt ne permettent de verrouiller qu'une seule application dans la version gratuite, et il y a quelques autres applications qui offrent des essais gratuits pendant environ 15 jours. Sinon, il y a les options payantes. Je suppose que la voie à suivre pour une solution gratuite (pour plus d'une application) est d'opter pour la méthode de script de Kelvin .

Voici les applications que j'ai réussi à trouver:

Gratuit (mium):

AppLocker

AppCrypt

Essais gratuits:

iLocker

MacAppBlocker

Payé:

iLock

Lock Pro

Personnellement, je viens d'essayer et d'utiliser encore AppLocker. Je n'en ai besoin que pour une seule application, donc pour moi la version gratuite est très bien. Est très facile à utiliser et solide comme le roc. Conseillé!

illustribe
la source
Quelques détails supplémentaires sur les applications que vous trouverez augmenteraient la valeur de votre réponse.
nohillside
ok merci @nohillside :)
illustribe