Помогите мне добавить строку в пароль к файлу / etc / shadow

когда я пытаюсь добавить строку внутри /etc/shadow:

echo -e "admin234:!!:0:0:99999:7:::" >> /etc/shadow

         1    2 3

Консоль показывает это сообщение:

-bash: 0: unrecognized history modifier

или

-bash: :14790: bad word specifier (when change 3  to :14790: )

Помощь?

1
задан 12 January 2012 в 05:45

3 ответа

Да, ! интерпретируется bash. Переключите ваши " на ', и это должно быть в порядке.

0
ответ дан 12 January 2012 в 05:45

@ Начинающие, возможно, захотят спросить цель попытки отредактировать / etc / shadow таким образом, другими словами, какого желаемого результата вы хотите достичь?

Что касается понимания всей истории ошибок, которые вы получаете, в зависимости от ваших знаний и понимания C, в исходном архиве есть множество информативной документации . Если вы будете искать конкретно ошибки, которые вы получаете, вы найдете их и увидите, что они относятся к ошибкам, которые вы видите:

static char *
hist_error(s, start, current, errtype)
      char *s;
      int start, current, errtype;
{
   char *temp;
   const char *emsg;
   int ll, elen;

  ll = current - start;

  switch (errtype)
{
case EVENT_NOT_FOUND:
  emsg = "event not found";
  elen = 15;
  break;
case BAD_WORD_SPEC:
  emsg = "bad word specifier";
  elen = 18;
  break;
case SUBST_FAILED:
  emsg = "substitution failed";
  elen = 19;
  break;
case BAD_MODIFIER:
  emsg = "unrecognized history modifier";
  elen = 29;
  break;
case NO_PREV_SUBST:
  emsg = "no previous substitution";
  elen = 24;
  break;
default:
  emsg = "unknown expansion error";
  elen = 23;
  break;
}

Может быть более простой способ достичь желаемых целей, который Вот почему я спрашиваю, что это может быть. Если цели известны, тогда многие, вероятно, уже пройдут этот путь, и ответ будет проще, чтобы помочь вам. ;)

Также, просматривая команду, не заметил использования соглашения sudo, которое было бы необходимо для успешного выполнения любой административной функции. Помните, что некоторые функции не будут работать без правильных привилегий, используемых во время выполнения.

НТН. Хорошего дня. :)

0
ответ дан 12 January 2012 в 05:45

Расширение истории влияет только на интерактивные оболочки, когда расширение истории включено (что по умолчанию). Вы можете отключить расширение истории, запустив set +H. Я никогда не использую расширение истории, поэтому помещаю set +H в ~/.bashrc.

Что касается редактирования / etc / shadow вручную, я бы посоветовал против этого. Если вы хотите добавить пользователей из командной строки, используйте adduser или newusers.

man 8 adduser
man 8 newusers
0
ответ дан 12 January 2012 в 05:45

Другие вопросы по тегам:

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