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

27

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

Por ejemplo, estoy interesado en proteger el correo 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 correos electrónicos accidentalmente desde mi cuenta o evitar que lean algunos de ellos.

Pierre Watelet
fuente
30
Esto suena como un ejemplo del problema XY . Desea evitar que las personas espíen en su correo electrónico (X), por lo que se pregunta cómo proteger su programa de correo electrónico (Y). Lo que realmente querrá 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 los usuarios no autorizados usen su cuenta, por ejemplo, requerir una contraseña para desactivar el protector de pantalla o después de despertar el sistema del modo de suspensión.
Austin
3
Votación a favor del 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 debe tomar los archivos desde allí y salir con ellos.
Ian C.
44
@ Todos: 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 correos electrónicos accidentalmente desde mi cuenta o evitar que lean algunos de ellos.
Pierre Watelet
1
Eso lo hace mucho más claro: solo leer las palabras desnudas, esto adquirió muchas ramificaciones que simplemente no tiene con los niños y los accidentes. Tengo curiosidad por saber si en este caso, simplemente configuró sus propias cuentas o usó mi sugerencia para controlar algunas de las aplicaciones en su cuenta ... es probable que no siga tratando de ayudar a responder mejor, suponiendo que todavía esté buscando una solución)
bmike
44
→ Rabskatran: su problema es un problema de seguridad básico. Su necesidad es básica: controle quién lee sus archivos (que incluye su correo electrónico almacenado). Si acertadamente adivinara tu problema ☂, votaría por el consejo de Mike: ¡ una cuenta para todos ! Es gratis :).
dan

Respuestas:

27

Con respecto a su comentario sobre la respuesta de Paul, queriendo 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 "Solicitar contraseña [inmediatamente] después de que el sueño o el protector de pantalla comience".

Entonces, cuando vas a alejarte de tu computadora;

Ctrl ⌃+ Shift ⇧+Eject ⏏

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

Bloquea tu Mac. Alejarse. Regrese, ingrese su contraseña para desbloquearla. Consola asegurada.

Jason Salaz
fuente
3
+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, votaré por esto. Me gustaría poder dar a este +3 parayou have to lock your computer. Period.
Austin
-1 ya que esta es 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 y con ese inicio de sesión como usted y acceder a todas sus aplicaciones.
leymannx
Abordé eso en mi primera oración. Además, si hay otra cuenta de administrador local, no puede proteger con contraseña una aplicación de ellos. Simplemente no es posible.
Jason Salaz el
10

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 un "punto caliente" adecuado para activar el protector de pantalla; de esa manera, cuando se aleje de su computadora, simplemente mueva el mouse al punto caliente para bloquear efectivamente la pantalla. que requiere una contraseña para obtener acceso.

Paul R
fuente
No, quiero poder dejar mi computadora registrada por un momento y asegurarme de que nadie pueda leer mis correos electrónicos recibidos (si Mail aún no se ha iniciado), por ejemplo. Pero, en general, nadie podría lanzar una aplicación, hacer algunas cosas y renunciar durante mi ausencia.
Pierre Watelet
10
En ese caso, simplemente configure una "esquina activa" en el protector de pantalla y solicite una contraseña para salir del protector de pantalla. Cuando dejes tu Mac, presiona el mouse en la esquina activa para bloquear la pantalla.
Paul R
o configure el tiempo de espera para que el protector de pantalla sea corto: el correo no será necesariamente la única aplicación que desea ocultar
usuario151019
Por lo tanto, no es posible establecer una contraseña en una aplicación ...
Pierre Watelet
1
@Paul +1 Recomendaría editar esa gran sugerencia sobre cómo configurar el protector de pantalla protegido por contraseña directamente en su respuesta.
Austin
9

Es posible usar scripts.

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

Ahora abra su carpeta Biblioteca / Scripts y cree un archivo llamado "run_with_password.rb" con estos contenidos (cambie "johndoe" a 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 Script Editor y pegue este código (nuevamente cambiando johndoe por 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 script. Cada vez que lo ejecute, le pedirá su contraseña (al igual que 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 correrá. 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 el Correo 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 una operación privilegiada.

Advertencias

  1. Si no necesita el comando "sudo" anterior para hacer el 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 root. Eso queda como ejercicio para el lector.
  2. Si alguien puede copiar la aplicación de Correo en su computadora (por ejemplo, a través de una unidad USB), aún puede acceder a su correo.
  3. El script ruby ​​está destinado a funcionar para la mayoría de los paquetes de aplicaciones OS X. No recomiendo ajustar el script ruby ​​a menos que realmente sepas lo que estás 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 en toda la ruta.
  5. Editar: el usuario Austin sugirió que este procedimiento no protege los archivos .emlx. En realidad no uso la aplicación de correo, 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 a Ruby obtiene acceso a su usuario conectado, 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 se pueda escribir desde la raíz. También tendrá que asegurarse de que alguien no reemplace el script con el suyo; puede hacerlo si usted puede escribir en la carpeta. Si estas advertencias te asustan y no sabes cómo protegerte, probablemente deberías olvidarte de esta solución y solo recordar bloquear la pantalla cuando salgas de la computadora.

Kelvin
fuente
Wow, 3 votos a favor en 4 horas? No esperaba que muchas personas usaran ese truco, especialmente porque tienes que crear un applecript para cada aplicación que quieras proteger. Me gustaría saber cómo las personas usan mi solución, incluso si solo aprenden nuevos trucos.
Kelvin
8
-1, pero espero que esto no se tome personalmente. 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 peligrosa falsa 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 ~/Library/Mail.
Austin
3
@Austin, tienes derecho a tu voto negativo, por supuesto, pero no entiendo tu razón. Creo que mis advertencias y secciones de 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".
Kelvin
3
Me asombran muchas cosas complicadas que nunca usaré en la vida real. Este es uno, Kelvin bien hecho, me has ganado un +1 en esto. :-) Dudo que termine siendo la "mejor" respuesta posible para esta pregunta, pero espero que obtenga una mención de honor.
bmike
Creo que está malinterpretando esa parte de la pregunta (concedido, probablemente podría redactarse mejor). @Rabskatran: corríjame si estoy equivocado, pero estoy bastante seguro de que el OP estaba tratando de explicar la razón por la que desea proteger con contraseña la aplicación. 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 el Correo), sí podría leer el correo descargado existente , y es por eso que un OP quería la protección con contraseña .
Austin
5

Sí, son prácticas varias formas de proteger su correo con contraseña. Como le preocupan los niños / miembros de la familia, lo más fácil podría ser restringir esas aplicaciones usando el Control parental 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 bloquear aplicaciones o para acceder a las aplicaciones de datos.

  1. Convierta su cuenta en 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 por contraseña y luego cree un alias para almacenar en la carpeta Aplicaciones. (eliminar 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 realizar cambios en los permisos de script y otros trucos técnicos para solicitar una contraseña antes de ejecutar el script para que la aplicación vuelva a ejecutarse.

  3. Almacene los datos de la aplicación en una imagen de disco cifrada protegida por contraseña . Aquí hay algunas aplicaciones comunes y las carpetas donde almacenan los datos del usuario .

  4. Almacene su aplicación de correo en una unidad extraíble: existe una industria artesanal que hace 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 se monten las imágenes. Si su contraseña de usuario es segura (de las personas de las que no desea ver los datos), puede almacenar las contraseñas de las imágenes 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 el foco 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) desde otra computadora. Las aplicaciones pueden ejecutarse desde cualquier lugar y no solo desde la carpeta Aplicaciones una vez que un usuario administrador las bendiga para la primera ejecución en ese sistema.

Por lo tanto, el # 3 es el único camino a seguir. Bloquee sus datos y no se preocupe por las aplicaciones.

bmike
fuente
5

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

Mac App Blocker

Conocer
fuente
1
Mac App Blocker es exactamente lo que está buscando. Como técnico de Apple, hemos estado recibiendo esta solicitud de esta capacidad durante años (¿recuerdan Oulook 2001?). Los usuarios no están preocupados de que sus hijos o compañeros de trabajo vayan a cavar 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 hacer.
2

Es un viejo hilo que conozco, 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

user75894
fuente
1

Hmm He querido hacer esto por un tiempo ahora. Tomemos otro ejemplo que no guarda archivos locales a menos que se lo indiquen: 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

Entonces para correrlo,

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

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

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

John
fuente
por cierto, el "whoami" de arriba debe tener graves acentos o retrocesos a cada lado. El material anti-piratería en este sitio web eliminó esas marcas.
John
2
Fijo. Siéntase libre de presionar editar y ver cómo lo arreglé.
Jason Salaz
1

¿Qué pasa con la configuración de cuentas de usuario separadas con su propia identificación de Apple, correo electrónico con restricciones parentales o ningún 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, podrían dañar su cuenta sin querer. Como usted es el administrador, puede controlar lo que pueden hacer con su cuenta.

rclyde
fuente
1

Cuentas separadas es la solución a este problema.

El correo electrónico puede ser el obvio, pero habrá algunos archivos importantes o marcadores, o pestañas bancarias abiertas, etc.

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

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

Es posible que tenga una cuenta compartida para adultos y otra para niños, o cuentas individuales para cada persona. Con cuentas separadas, querrá bloquear la computadora (a través del protector de pantalla o volver a la pantalla de inicio de sesión) cuando la abandone. Pero incluso si lo olvida, sus hijos querrán usar su propia cuenta (con sus propios marcadores o guardar archivos del juego, o puntuaciones altas, o documentos, etc.) en lugar de la suya, lo que ayudará a evitar cualquier acceso / daño accidental. Incluso algo tan simple como no tener que cerrar sesión en Facebook de la última vez que usó el navegador (cada cuenta tiene su propia configuración de navegador, que recuerda quién ha iniciado sesión en Gmail, Facebook, icloud, etc.).

También puede evitar que algunos usuarios accedan a aplicaciones, sitios web, etc. particulares a través de los controles parentales en las preferencias del sistema.

drfrogsplat
fuente
0

Mac App Blocker

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. Mantenga sus aplicaciones y su Mac a salvo. Establezca un valor de tiempo de espera para salir automáticamente de la aplicación protegida para que, incluso cuando deje su computadora desatendida, aún esté protegido.

Jerife
fuente
Las respuestas a Ask Different deben ser más que un simple enlace. Está bien incluir un enlace, pero resumirlo o extraerlo en la respuesta. La idea es hacer que la respuesta sea independiente.
nohillside
Gracias a @Ian C. por hacer que una oración de este enlace caiga de una copia y pegue.
dan
0

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 desee proteger allí. Tendrá que ingresar la contraseña una vez para usarlas cada vez que inicie sesión, luego puede desmontar la imagen del disco para que las personas en la misma cuenta puedan usar su computadora sin acceso a esas aplicaciones.

superjonbot
fuente
0

Si desea utilizar una aplicación para lograr esto, parece que realmente no hay muchas opciones en el rango "gratuito". AppLocker y AppCrypt permiten que solo 1 aplicación se bloquee 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 script de Kelvin .

Estas son las aplicaciones que logré encontrar:

Gratis (mium):

AppLocker

AppCrypt

Pruebas gratis:

iLocker

MacAppBlocker

Pagado:

yo cerré

Lock Pro

Personalmente, acabo de probar y todavía uso 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 muy sólido. ¡Recomendado!

illustribe
fuente
Algunos detalles más sobre las aplicaciones que encuentre aumentarían el valor de su respuesta.
Nohillside
ok gracias @nohillside :)
illustribe