когда я пытаюсь добавить строку внутри /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: )
Помощь?
Да, !
интерпретируется bash. Переключите ваши "
на '
, и это должно быть в порядке.
@ Начинающие, возможно, захотят спросить цель попытки отредактировать / 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, которое было бы необходимо для успешного выполнения любой административной функции. Помните, что некоторые функции не будут работать без правильных привилегий, используемых во время выполнения.
НТН. Хорошего дня. :)
Расширение истории влияет только на интерактивные оболочки, когда расширение истории включено (что по умолчанию). Вы можете отключить расширение истории, запустив set +H
. Я никогда не использую расширение истории, поэтому помещаю set +H
в ~/.bashrc
.
Что касается редактирования / etc / shadow вручную, я бы посоветовал против этого. Если вы хотите добавить пользователей из командной строки, используйте adduser
или newusers
.
man 8 adduser
man 8 newusers