it-swarm-es.com

Ejecutando aplicaciones como diferentes usuarios

  1. ¿Podemos ejecutar la misma aplicación con diferentes usuarios? Ej: ¿App1 que se ejecuta bajo /home/usr1/App1 y /home/Usr2/App1 en una plataforma Linux?
  2. ¿Podemos tener el mismo UID para dos usuarios diferentes? Ej: /home/usr1/App1 y /home/usr2/App2 es decir, ¿Usr1 y Usr2 tienen el mismo UID? En caso afirmativo, ¿cómo hacerlo?
  3. ¿Puede una aplicación cambiar de un usuario a otro, por ejemplo, la aplicación1 que se ejecuta bajo /home/usr1 puede cambiar a /home/usr2
1
sgpdglb

Es mejor publicar preguntas separadas por separado. Sin embargo, dado que todos estos pueden ser respondidos rápidamente (y están relacionados), lo he hecho.

  1. La misma aplicación puede ser ejecutada por diferentes usuarios, en diferentes momentos o al mismo tiempo. La aplicación puede ejecutarse desde la misma ubicación (siempre que ambos usuarios tengan acceso para ejecutarla), o pueden ejecutarse copias separadas desde diferentes ubicaciones (como en tu ejemplo).

  2. Dos usuarios diferentes no pueden compartir un UID. Su UID es en realidad más central para su identidad de usuario (de ahí el nombre) que su nombre de usuario. Cuando posee un archivo o carpeta , el sistema de archivos contiene su UID asociado con el archivo, no su nombre de usuario. Tener dos usuarios con el mismo UID significaría tener un solo usuario con varios nombres (que tampoco es compatible).

  3. Sí, es posible cambiar la identidad del usuario. Puede usar _Sudo -u other-user command..._ o (si actualmente es root, o si el usuario objetivo tiene habilitado el inicio de sesión y conoce su contraseña) _su other-user -c 'command...'_. Puede invocar estos comandos usted mismo, pero los scripts y las aplicaciones también pueden usarlos.

    Consulte la documentación de la comunidad , man Sudo , y man su para obtener más detalles sobre cómo funciona esto y cómo usarlo . En un programa que está escribiendo, también puede usar la función setuid; ver man 2 setuid y man 3 setuid . Para ejecutar aplicaciones gráficas, debe usar gksu/gksudo o (en Kubuntu) kdesudo en lugar de invocar su y Sudo directamente (pero tenga en cuenta que al predeterminado en Ubuntu gksu invoca Sudo, no su). Ver esta sección de la documentación de la comunidad , man gksu (cubre gksudo también) y man kdesudo .

    Antes de escribir programas o scripts que cambien de usuario, recomiendo leer extensamente sobre cómo funciona la identidad del usuario en sistemas tipo Unix.

2
Eliah Kagan