Случайно заглянул в исходники usermod и возник такой вопрос: static void move_home (void) { . . . if (errno == EXDEV) { if (mkdir (user_newhome, sb.st_mode & 0777)) { fprintf (stderr, _ ("%s: can't create %s\n"), Prog, user_newhome); } if (chown (user_newhome, sb.st_uid, sb.st_gid)) { fprintf (stderr, _("%s: can't chown %s\n"), Prog, user_newhome); rmdir (user_newhome); fail_exit (E_HOMEDIR); } . . . } Если не удается создать каталог user_newhome выводится ошибка об этом, но аварийный выход не осуществляется. Это так и задумано? Ведь если указанный каталог не существует (проверка на это проходит чуть раньше) и его не удается создать, то смысла в chown и последующих операциях нет.