Добавьте пользователя к системе *, только если она не существует*

Это может помочь Вам?

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! (но Вам будет нужен он, чтобы сделать редактирование или добавить команду, так...),

47
10.04.2017, 14:14
4 ответа

id -u somename возвращает ненулевой код выхода, когда пользователь не существует.

Можно протестировать его вполне просто... (&>/dev/null просто подавляет нормальный вывод/предупреждение),

id -u somename &>/dev/null || useradd somename 
69
27.01.2020, 19:34
  • 1
    Портативным способом: "идентификатор-u somename>/dev/null 2> &1 || useradd somename" –  Tristan 24.01.2017, 16:34

Если у Вас только нет маленького небольшого количества систем, Вы задаете неправильный вопрос. Ответ не должен выполнить 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,
}
8
27.01.2020, 19:34
  • 1
    Марионетка является замечательным проектом, но Вы не можете сделать предположения о том, что OP действительно спрашивает :) –  rahmu 24.03.2012, 17:20
  • 2
    , OP объяснил цель очень ясно - автоматизированный и способный быть выполненным снова даже при том, что пользователь существует (idempotency). Это точные варианты использования для инструмента управления конфигурацией. Когда кто-то не знает, что инструменты уже существуют для решения этих проблем, они склонны задавать вопросы, которые включают решение очень определенной, узко сфокусированной проблемы, когда существует большее понятие для схватывания. –  Aaron Brown 24.03.2012, 18:29
  • 3
    я уже использую Шеф-повара. –  tarnfeld 06.06.2013, 12:50
  • 4
    только добавит пользователей, если пользователь не будет существовать. Это - каков idempotency, таким образом, я не понимаю вопроса (1,5 года теперь). –  Aaron Brown 06.06.2013, 16:06

useradd не добавил бы пользователя снова, если он уже существует, он намеревается удостовериться, что uid число и вход в систему uid уникальны. Если Вы планируете пробежать пакет, удостоверьтесь, что uids быть используемым уникально; useradd жаловался бы для проблематичных записей, и необходимо получить errors/stderr для наблюдения, какие учетные записи пользователей имели проблемы при вхождении в системы учетной записи (/etc/passwd, группа, тень).

4
27.01.2020, 19:34
[119914] попробуйте это:

 или даже это:
  • 14
    27.01.2020, 19:34

    Теги

    Похожие вопросы