Si lo hago
su - -c 'mkdir bin' user1
entonces consigo
su: /usr/bin/ksh: No such file or directory
porque el shell de usuarios está configurado ksh
en /etc/passwd
y ksh
no está instalado.
Pregunta
¿Cómo ejecuto los comandos como usuario en tal caso?
/etc/passwd
proviene de NIS.Respuestas:
Si no pone el
-
después,su
entonces no cargará el entorno de ese usuario, pero los comandos aún se ejecutarán como ese usuario.Parece que entendí mal tu problema real. Como otros han dicho,
-s
es la opción que probablemente quieras.fuente
Puedes usar:
La
-s
opción su especifica el shell a usar, anulando lo que esté en / etc / passwd.Eliminé el
-
comando porque, además de cargar el perfil, probablemente cambiará el directorio de trabajo al directorio de inicio del usuario para el comando, por lo que estaría creando 'bin' en el directorio de inicio del usuario1, no su actual directorio.fuente
Creo que la opción de shell -s / - to le permite elegir el shell para usar mientras mantiene las otras partes del entorno de los usuarios, / bin / sh está especificado por posix, por lo que debería estar disponible en todas partes.
fuente