¿Hay alguna forma de proteger con contraseña las aplicaciones individuales?

¿Es posible proteger con contraseña una aplicación específica de Mac?

Por ejemplo, estoy interesado en proteger Mail porque incluso si no puede recuperar nuevos correos electrónicos, aún puede leer todos los correos electrónicos ya recibidos.

Esta no es una pregunta sobre seguridad. Se trata de compartir un dispositivo dentro de una familia. No tengo información crucial. Solo quiero evitar que mi niña o hijo envíe accidentalmente correos electrónicos desde mi cuenta o que lea algunos de ellos.

Esto suena como un ejemplo del problema XY . Desea evitar que las personas husmeen en su correo electrónico (X), por lo que está preguntando cómo proteger su programa de correo electrónico (Y). Lo que realmente podría querer preguntar es What's the best way to protect my email from snooping?Y la respuesta a eso sería que es mejor evitar por completo que usuarios no autorizados usen su cuenta; por ejemplo, solicitar una contraseña para desactivar el protector de pantalla o después de despertar el sistema del modo de suspensión.
Vote a favor por el comentario de @Austin. Incluso si detiene la apertura de Mail.app, no ha impedido que alguien acceda a su correo electrónico. Mail.app mantiene su correo electrónico en texto sin formato en el disco ~/Library/Application Support; si alguien quiere su correo electrónico, sabrá que simplemente debe tomar los archivos de allí y irse con ellos.
@Ian, creo que los .emlxarchivos de texto sin formato están realmente ubicados en ~/Library/Mail, pero su punto está bien entendido.
Esto también es como la parábola de enviar un camión blindado para entregar dinero en efectivo a una persona sin hogar que duerme en una caja de cartón. Sí, el dinero en efectivo es más seguro en tránsito, pero es evidente que pronto estará desprotegido y será fácil de tomar.
@Everybody: Esta no es una pregunta sobre seguridad. Se trata de compartir un dispositivo dentro de una familia. No tengo información crucial. Solo quiero evitar que mi niña o hijo envíe accidentalmente correos electrónicos desde mi cuenta o que lea algunos de ellos.
Eso lo hace mucho más claro: solo leyendo las palabras, esto adquirió muchas ramificaciones que simplemente no tiene con los niños y los accidentes. Tengo curiosidad si, en este caso, simplemente configuraste sus propias cuentas o usaste mi sugerencia para controlar a los padres algunas de las aplicaciones en tu cuenta... (O simplemente responde esto tú mismo; puedes decir lo que elijas, y la gente probablemente no seguirá tratando de ayudar a mejorar las respuestas suponiendo que todavía estaba buscando una solución)
→ Rabskatran: su problema es un problema básico de seguridad. Su necesidad es básica: controlar quién lee sus archivos (que incluye su correo electrónico almacenado). Si adivinara correctamente tu problema ☂, votaría por el consejo de Mike: ¡ una cuenta para todos ! Es gratis :).

Respuestas (12)

Con respecto a su comentario sobre la respuesta de Paul, querer dejar su computadora por un momento: debe bloquear su computadora. Período.

Abra Preferencias del sistema, haga clic en Seguridad (fila superior, penúltima opción), en la pestaña "General", marque la casilla "Requerir contraseña [inmediatamente] después de que comience la suspensión o el protector de pantalla".

Luego, cuando vayas a alejarte de tu computadora;

Ctrl ⌃+ Shift ⇧+Eject ⏏

(Notas adicionales: haga clic en la línea anterior).

Bloquea tu Mac. Alejarse. Vuelve, ingresa tu contraseña para desbloquearlo. Consola asegurada.

+1 Paul fue el primero en mencionar esto en un comentario debajo de su propia respuesta, pero como aún no lo ha integrado en su propia respuesta, lo votaré. Ojalá pudiera dar este +3 parayou have to lock your computer. Period.
-1 ya que esta es ahora la respuesta a la pregunta formulada. OP solicita explícitamente una contraseña para proteger aplicaciones individuales en una cuenta multiusuario. Otro escenario: hay otro administrador que puede restablecer fácilmente su contraseña e iniciar sesión como usted y acceder a todas sus aplicaciones.
Me dirigí a eso en mi primera oración. Además, si hay otra cuenta de administrador local, no puede proteger con contraseña una aplicación lejos de ellos. Simplemente no es posible.

Es posible usando scripts.

Primero, debe habilitar el menú de secuencias de comandos en la barra de menús de OS X. Lea la sección "Menú de secuencias de comandos" aquí: Habilitar el menú de secuencias de comandos

Ahora abra su carpeta Library/Scripts y cree un archivo llamado "run_with_password.rb" con estos contenidos (cambie "johndoe" por su nombre de usuario):

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

A continuación, inicie el Editor de secuencias de comandos y pegue este código (nuevamente cambiando johndoe a su nombre de usuario):

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

Guarde el archivo en Biblioteca/Scripts como "mail_with_password", asegurándose de que el formato de archivo sea "Script".

Ahora aparecerá "mail_with_password" en su menú de secuencias de comandos. Cada vez que lo ejecute, le pedirá su contraseña (tal como lo hacen algunos instaladores). Una vez que termine de ejecutarse, deshabilitará el acceso a la aplicación de correo normal. Así que ejecute el script una vez, luego intente ejecutar la aplicación Mail. No se ejecutará. Tenga en cuenta que significa que TODOS los usuarios de su máquina no podrán ejecutar Mail directamente, no solo su usuario.

Si alguna vez desea permitir que Mail vuelva a ejecutarse normalmente, ejecute este comando en la Terminal:

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

Es posible que pueda omitir el "sudo". Use sudo si obtiene "Operación no permitida". Tenga en cuenta que sudo le pedirá su contraseña para permitir la operación privilegiada.

Advertencias

  1. Si no necesitaba el comando "sudo" anterior para hacer chmod, eso significa que un usuario inteligente podría descubrir cómo habilitar la aplicación de correo nuevamente. Puede reforzar la seguridad cambiando el propietario del archivo MacOS/Mail a raíz. Queda como ejercicio para el lector.
  2. Si alguien puede copiar la aplicación Mail a su computadora (por ejemplo, a través de una unidad USB), aún puede obtener acceso a su correo.
  3. El script Ruby está diseñado para funcionar con la mayoría de los paquetes de aplicaciones de OS X. No recomiendo ajustar el script Ruby a menos que realmente sepa lo que está haciendo porque está haciendo ciertas cosas como root (el usuario privilegiado). Ajustar el código de applescript debería ser inofensivo; pero debe saber cómo ajustar el comando chmod para que su aplicación vuelva a ejecutarse directamente.
  4. Si la ruta a la aplicación en el archivo applescript tiene espacios u otros caracteres especiales, tendrá que hacer algo como poner comillas simples alrededor de toda la ruta.
  5. Editar: el usuario Austin sugirió que este procedimiento no protege los archivos .emlx. De hecho, no uso la aplicación Mail, así que no estoy familiarizado con el almacenamiento de datos. Se aplican problemas similares a todas las aplicaciones, porque esta solución no oculta los datos del usuario.

Paranoia

Si alguien que conoce Ruby obtiene acceso a su usuario registrado, podría modificar el script de Ruby de una manera que causa todo tipo de estragos cuando ejecuta el script, ya que se ejecuta como root durante parte del tiempo. Si cree que esto podría suceder, debe hacer que el script solo pueda ser escrito por root. También deberá asegurarse de que alguien no reemplace el script con el suyo propio; puede hacerlo si usted puede escribir en la carpeta. Si estás empezando a asustarte con estas advertencias y no sabes cómo protegerte, probablemente deberías olvidarte de esta solución y recordar bloquear la pantalla cuando salgas de la computadora.

Wow, ¿3 votos a favor en 4 horas? No esperaba que mucha gente usara un truco así, especialmente porque tienes que crear un applescript para cada aplicación que quieras proteger. Me gustaría saber cómo la gente usa mi solución, aunque solo sea para aprender nuevos trucos.
-1, pero espero que esto no se tome como algo personal. Realmente me gusta el nivel de detalle aquí, y está claro que se pensó mucho en esto, pero creo que esta solución da una falsa y peligrosa sensación de seguridad. Una gran advertencia que no mencionó es que no impide el acceso a los .emlxarchivos de correo de texto sin formato almacenados en ~/Library/Mail.
@Austin, por supuesto, tiene derecho a su voto negativo, pero no entiendo su razón. Creo que mis secciones de advertencias y paranoia deberían ser suficientes para indicar que esto no pretende ser una solución segura, es solo un elemento disuasorio. Agregué su advertencia, pero es esencialmente la misma idea detrás de la advertencia #2. Además, el OP dijo que no le importaba que otra persona leyera "correos electrónicos ya recuperados".
Me asombran muchas cosas complicadas que nunca usaré en la vida real. Este es uno - bien hecho Kelvin - te has ganado un +1 de mi parte en esto. :-) Dudo que termine siendo la "mejor" respuesta posible para esta pregunta, pero espero que obtenga una mención de honor.
Creo que está malinterpretando esa parte de la pregunta (por supuesto, probablemente podría redactarse mejor). @Rabskatran: corríjame si me equivoco, pero estoy bastante seguro de que el OP estaba tratando de explicar el motivo por el que desea proteger la aplicación con contraseña. Parafraseando, a pesar de que un fisgón no podría recuperar el correo nuevo (presumiblemente porque la contraseña de la cuenta no estaba almacenada en Mail), podría leer el correo descargado existente , y es por eso que un OP quería la protección de contraseña .
Buena habilidad con el guión, pero el problema está al lado. Es un alto riesgo jugar con la secuencia de comandos sudo para solucionar un problema del usuario A. Si el usuario A no está protegido, cualquier acceso al teclado le permitirá chmodeludir esta secuencia de comandos Ruby. Como correctamente diagnosticado por Austin, el problema es mucho más serio y aparte.

Simplemente puede establecer controles parentales en la cuenta y luego determinar qué aplicaciones se pueden usar.

Alternativamente, puede establecer una contraseña en su protector de pantalla y también definir una "esquina activa" adecuada para activar el protector de pantalla; de esa manera, cuando se aleje de su computadora, puede mover el mouse hacia la esquina activa para bloquear efectivamente la pantalla como que requiere una contraseña para acceder.

No, quiero poder dejar mi computadora conectada por un momento y asegurarme de que nadie pueda leer mis correos electrónicos recibidos (si Mail aún no está iniciado), por ejemplo. Pero, en términos más generales, nadie podría iniciar una aplicación, hacer algunas cosas y salir durante mi ausencia.
En ese caso, simplemente establezca una "esquina caliente" en el protector de pantalla y solicite una contraseña para salir del protector de pantalla. Cuando deje su Mac, empuje el mouse hacia la esquina activa para bloquear la pantalla.
o configure el tiempo de espera para que el protector de pantalla sea corto: Mail no será necesariamente la única aplicación que desee ocultar
Entonces no es posible establecer una contraseña en una aplicación ...
Estoy seguro de que hay una aplicación que hace esto por ti. También puede elegir la aplicación para un usuario diferente en la máquina, y si configura los permisos de la manera correcta, no podrá ejecutar esa aplicación sin autenticarse primero. Pienso.
@Paul +1 Recomendaría editar esa gran sugerencia sobre la configuración del protector de pantalla protegido con contraseña directamente en su respuesta.

Sí, varias formas de proteger su correo con contraseña son prácticas. Dado que le preocupan los niños/miembros de la familia, lo más fácil podría ser simplemente restringir esas aplicaciones usando Controles parentales en su cuenta. En algún momento, pueden tener sus propias cuentas y usted puede bloquear toda su cuenta.


Estas son las opciones que veo viables para el caso general de bloqueo de aplicaciones o los datos a los que pueden acceder las aplicaciones.

  1. Haga que su cuenta sea una cuenta parental protegida y haga una lista blanca de las aplicaciones que desea permitir. Conocerá el usuario/contraseña de administrador por separado para permitir el lanzamiento de aplicaciones prohibidas. Voila: cualquier aplicación que desee ahora está protegida con contraseña.

  2. Mueva la aplicación a una imagen de disco protegida con contraseña y luego cree un alias para almacenar en la carpeta Aplicaciones. (borrando primero la aplicación original) Cuando cualquier programa intenta acceder a la aplicación, tiene la oportunidad de ingresar una contraseña y el buscador montará la imagen del disco. También puede escribir cambios de permisos y otros trucos técnicos para solicitar una contraseña antes de ejecutar el script para que la aplicación se pueda ejecutar nuevamente.

  3. Almacene los datos de la aplicación en una imagen de disco cifrada protegida con contraseña . Estas son algunas aplicaciones comunes y las carpetas donde almacenan los datos de los usuarios .

  4. Almacene su aplicación de correo en una unidad extraíble: existe una industria artesanal sobre la creación de paquetes de aplicaciones independientes para ejecutar aplicaciones desde unidades USB.

Tenga en cuenta que cosas como Spotlight y otras aplicaciones que usan marcos dentro de las aplicaciones no funcionarán tan bien hasta que las imágenes estén montadas. Si su contraseña de usuario es segura (de las personas que no desea que vean los datos), puede almacenar las contraseñas de imagen de disco en el llavero.

Además, a menos que proteja los archivos de datos, es solo seguridad por oscuridad y alguien podría copiar sus datos en otro lugar o simplemente mirarlos desde Spotlight u otras aplicaciones como la edición de texto. También podrían traer una copia de la aplicación de correo (o cualquier otra) de otra computadora. Las aplicaciones pueden ejecutarse desde cualquier lugar y no solo desde la carpeta Aplicaciones una vez que un usuario administrador las bendice para la primera ejecución en ese sistema.

Por lo tanto, #3 es el único camino a seguir. Bloquea tus datos y no te preocupes por las aplicaciones.

Aquí hay una utilidad para Mac que hará lo que estás pidiendo. Puede proteger con contraseña aplicaciones individuales. Además, puede establecer un valor de tiempo de espera que cerrará la aplicación después de estar inactivo durante el tiempo seleccionado.

Bloqueador de aplicaciones Mac

Mac App Blocker es exactamente lo que está buscando. Como técnico de Apple, hemos recibido esta solicitud de esta capacidad durante años (¿recuerdas a Oulook 2001?). A los usuarios no les preocupa que sus hijos o compañeros de trabajo busquen en las carpetas de la Biblioteca para extraer archivos .emlx y leerlos. Ese no es el punto: no les importa dejar que otros usen su Mac, simplemente no quieren que lean sus correos electrónicos. Llano y simple. Mac App Blocker hace lo que hace y eso es todo lo que necesitan que haga.

Las cuentas separadas son la solución a este problema.

El correo electrónico puede ser el más obvio, pero habrá algunos archivos importantes, o marcadores, o pestañas bancarias abiertas, etc. que podrían ser igualmente perjudiciales para que un niño los elimine, abra o juegue al azar.

Las cuentas separadas (con solo los padres como administradores) significa que puede mantener separados los archivos, correos electrónicos, configuraciones, etc. de todos, aunque todos puedan acceder a las aplicaciones.

Si el usuario X usa la aplicación Mail, solo se puede acceder a sus correos electrónicos y configuraciones de cuenta cuando está conectado. Cuando el usuario Y abre Mail, tendrá sus propias cuentas/correo, aunque ambos estén usando la misma aplicación Mail.

Puede tener una cuenta compartida para adultos y otra para niños, o cuentas individuales para cada persona. Con cuentas separadas, querrá bloquear la computadora (mediante un protector de pantalla o volviendo a la pantalla de inicio de sesión) cuando la deje. Pero incluso si lo olvida, sus hijos querrán usar su propia cuenta (con sus propios marcadores, o guardar archivos de juegos, puntajes altos, documentos, etc.) en lugar de la suya, lo que ayudará a evitar cualquier acceso o daño accidental. Incluso algo tan simple como no tener que cerrar la sesión de facebook de quien haya usado el navegador por última vez (cada cuenta tiene su propia configuración del navegador, que recuerda quién está conectado a Gmail, facebook, icloud, etc).

También puede evitar que algunos usuarios accedan a determinadas aplicaciones, sitios web, etc. a través de Controles parentales en Preferencias del sistema.

Es un hilo antiguo, lo sé, pero tuve el mismo problema que tú... Aquí está la solución: una aplicación llamada iLock. Protege aplicaciones individuales con una contraseña después de su elección. Simple, eficiente y completamente gratis! https://www.macupdate.com/app/mac/49881/ilock

Mmm. He querido hacer esto desde hace un tiempo. Tomemos otro ejemplo que no guarda archivos locales a menos que se le indique: programas de chat como Skype o Trillian, por ejemplo. El problema con los controles parentales es que no puede ser un usuario administrador en la máquina Y tener controles parentales en su cuenta de usuario administrador.

Mi sugerencia sería simplemente hacer lo siguiente:

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

Esto evita que alguien lo ejecute, pero lo marca como tuyo

Luego, para ejecutarlo,

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

Esto supera los 600 (rw- --- ---) permisos de acceso anteriores y deberá ingresar una contraseña de administrador para ejecutarlo.

También puede consultar el bit setuid y ver si eso ayuda (en otras palabras, hacer que la aplicación se ejecute como otro usuario).

por cierto, el "whoami" de arriba debe tener acentos graves o acentos graves a ambos lados. Las cosas contra la piratería en este sitio web eliminaron esas marcas.
Fijado. Siéntase libre de presionar editar y ver cómo lo arreglé.

¿Qué hay de configurar cuentas de usuario separadas con su propia identificación de Apple, correo electrónico con restricciones parentales o sin correo electrónico? Las aplicaciones pueden ser compartidas por diferentes cuentas. Dependiendo de la edad de sus hijos, si tienen capacidad de administrador, es decir, su cuenta, es posible que puedan dañar su cuenta sin querer. Con usted como administrador, puede controlar lo que pueden hacer con su cuenta.

Rápido y sucio: abra las utilidades de disco, cree una imagen de disco protegida con contraseña en su carpeta de aplicaciones, mueva las aplicaciones que desea proteger allí. Tendrá que ingresar la contraseña una vez para usarla cada vez que inicie sesión, luego puede desmontar la imagen del disco para que las personas en la misma cuenta aún puedan usar su computadora sin acceso a esas aplicaciones.

Si desea utilizar una aplicación para lograr esto, parece que no hay muchas opciones en el rango "gratuito". AppLocker y AppCrypt permiten bloquear solo 1 aplicación en la versión gratuita, y hay algunas otras aplicaciones que ofrecen pruebas gratuitas durante aproximadamente 15 días. De lo contrario, están las opciones pagas. Supongo que el camino a seguir para una solución gratuita (para más de 1 aplicación) es ir con el método de secuencia de comandos de Kelvin .

Aquí están las aplicaciones que logré encontrar:

Gratis (mium):

AppLocker

AppCrypt

Pruebas gratis:

iLocker

Bloqueador de MacApp

Pagado:

yo cerré

bloqueo profesional

Personalmente, acabo de probar y sigo usando AppLocker. Solo lo necesito para una aplicación, así que para mí la versión gratuita está bien. Es muy fácil de usar y sólido como una roca. ¡Recomendado!

Algunos detalles más sobre las aplicaciones que ha encontrado aumentarían el valor de su respuesta.
@JoelMellon seguro, un placer. Si encuentras algún otro, ¡háznoslo saber! ;)

Bloqueador de aplicaciones Mac

Hace exactamente lo que estás pidiendo. Desde su sitio web:

Con Mac App Blocker, puede proteger con contraseña CADA aplicación en su Mac. Mantén seguras tus aplicaciones y tu Mac. Establezca un valor de tiempo de espera para salir automáticamente de la aplicación protegida, de modo que incluso cuando deje su computadora desatendida, aún estará protegido.

Las respuestas en Ask Different deben ser algo más que un enlace. Está bien incluir un enlace, pero resúmalo o extráigalo en la respuesta. La idea es hacer que la respuesta sea independiente.
Gracias a @Ian C. por hacer que una oración de este enlace se caiga de un copiar y pegar.