帮我在文件密码 /etc/shadow 中添加一行

帮我在文件密码 /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

是的,!s 被 bash 解释。将"s切换'应该没事的。

答案2

@Beginners,可能想问以这种方式尝试手动编辑 /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 约定的使用,这对于成功完成任何管理功能都是必要的。请记住,如果在执行时没有正确的权限,某些功能将无法运行。

HTH。祝你有美好的一天。:)

答案3

历史记录扩展仅在启用历史记录扩展时(默认情况下启用)才会影响交互式 shell。您可以通过运行 来禁用历史记录扩展set +H。我自己从来不用历史记录扩展,所以我输入set +H~/.bashrc

至于手动编辑 /etc/shadow,我不建议这么做。如果您想从命令行添加用户,请使用addusernewusers

man 8 adduser
man 8 newusers

相关内容