Solo quiero saber si esto se puede hacer en un comando sin ninguna interacción en macOS. Hay una forma interactiva de hacer esto (primero cambié al usuario abc y luego volví a cambiar para que abc tuviera un escritorio oculto):
(in sudo mode)
login abc
(type the password)
screencapture <png-file-name>
En mi prueba, esto tomaría una captura de pantalla del escritorio oculto de abc y lo guardaría en el archivo. Pero lo extraño es que cuando uso la opción -f
(solo aplicable en modo sudo) para eliminar la necesidad de escribir la contraseña, la captura de pantalla se convierte en el escritorio del usuario actual, no en el escritorio de abc:
(in sudo mode)
login -f abc /usr/sbin/screencapture <png-file-name>
OR
login -f abc bash -c "/usr/sbin/screencapture <png-file-name>"
Ambos no funcionan como se esperaba.
su
o sudo
tampoco pueden cumplir mis requisitos, ya que también toman las capturas de pantalla del escritorio del usuario actual.
Usted puede preguntarse por qué quiero eso. De hecho no quiero las capturas de pantalla, quiero seguridad. Quiero que el shell de este otro usuario esté completamente aislado del usuario actual, para que cualquier código malintencionado que se ejecute en este shell no pueda tomar una captura de pantalla del usuario actual.