Это может помочь Вам?
http://www.howtogeek.com/howto/ubuntu/how-to-add-a-program-to-the-ubuntu-startup-list-after-login/
Или просто включите его /etc/profile
или действительно добавьте его рекомендуемый путь: http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/
Действительно, удалите sudo! (но Вам будет нужен он, чтобы сделать редактирование или добавить команду, так...),
id -u somename
возвращает ненулевой код выхода, когда пользователь не существует.
Можно протестировать его вполне просто... (&>/dev/null
просто подавляет нормальный вывод/предупреждение),
id -u somename &>/dev/null || useradd somename
Если у Вас только нет маленького небольшого количества систем, Вы задаете неправильный вопрос. Ответ не должен выполнить useradd вообще, но вместо этого оставить эту работу решению для управления конфигурацией как марионетка или шеф-повар. Это будет позволять Вашим пользовательским определениям быть централизованными и препятствовать тому, чтобы Вы работали за циклами и использовали ssh с пользователями root, для конфигурирования систем. У Вас всегда будут системы в известном состоянии конфигурации.
Документация для марионетки доступна по http://docs.puppetlabs.com
Как пример в марионетке:
user { "bob" :
password => "$1$yv3n066X$Vpb05Ac/fHTicNdT9T5vz1", # generated with `openssl passwd -1`
ensure => present, # ensure => absent to remove
managehome => true,
}
useradd не добавил бы пользователя снова, если он уже существует, он намеревается удостовериться, что uid число и вход в систему uid уникальны. Если Вы планируете пробежать пакет, удостоверьтесь, что uids быть используемым уникально; useradd жаловался бы для проблематичных записей, и необходимо получить errors/stderr для наблюдения, какие учетные записи пользователей имели проблемы при вхождении в системы учетной записи (/etc/passwd, группа, тень).