He estado ejecutando el useradd {user}
comando para agregar usuarios a mi sistema, aunque planeo ejecutar esto en un entorno automatizado, y podría terminar ejecutándose nuevamente, aunque el usuario ya exista.
¿Hay alguna manera de que pueda ejecutar esto solo si el usuario aún no existe? El usuario no tiene una carpeta de inicio.
adduser
generalmente se prefiere en sistemas Debian / Ubuntu.useradd
.Respuestas:
id -u somename
devuelve un código de salida distinto de cero cuando el usuario no existe.Puede probarlo simplemente ... (
&>/dev/null
solo suprime la salida / advertencia normal)fuente
prueba esto:
o incluso esto:
fuente
A menos que solo tenga un pequeño puñado de sistemas, está haciendo la pregunta equivocada. La respuesta no es ejecutar useradd en absoluto, sino dejar este trabajo a una solución de gestión de configuración como puppet o chef. Esto permitirá que sus definiciones de usuario se centralicen y evitará que ejecute bucles y use ssh con usuarios root para configurar sus sistemas. Siempre tendrá sistemas en un estado de configuración conocido.
La documentación para la marioneta está disponible en http://docs.puppetlabs.com
Como ejemplo en títere:
fuente
useradd no volvería a agregar al usuario si ya existe, tiene la intención de asegurarse de que el número de usuario y el inicio de sesión sean únicos. Si planea ejecutar un lote, asegúrese de que los uids que se usan sean únicos; useradd se quejaría por las entradas problemáticas y necesita capturar los errores / stderr para ver qué cuentas de usuario tuvieron problemas para ingresar a los sistemas de cuenta (/ etc / passwd, group, shadow).
fuente