Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 行业新闻 >

【干货】在虚拟机上破解无线路由密码

发布日期:2019-06-28 15:46:02点击次数:

分享到:
  1、用户和用户组文件

  在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。

  在linux系统中,所创建的用户帐号和其相关信息(密码除外)均是存放在/etc/passwd配置文件中。由于所有用户对passwd文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在了/etc/shadow的配置文件中。

  在passwd文件中,一行定义一个用户帐号,每行均由多个不同的字段构成,各字段值间用":”分隔,每个字段均代表该帐号某方面的信息。

  在刚安装完成的linux系统中,passwd配置文件已有很多帐号信息了,这些帐号是由系统自动创建的,他们是linux进程或部分服务程序正常工作所需要使用的账户,这些账户的最后一个字段的值一般为/sbin/nologin,表示该帐号不能用来登录linux系统。

  在passwd配置文件中,从左至右各字段的对应关系及其含义:

  由于passwd不再保存密码信息,所以用x占位代表。

  若要使某个用户账户不能登录linux,只需设置该用户所使用的shell为/sbin/nologin即可。比如,对于FTP账户,一般只允许登录和访问FTP服务器,不允许登录linux操作系统。若要让某用户没有telnet权限,即不允许该用户利用telnet远程登录和访问linux操作系统,则设置该用户所使用的shell为/bin/true即可。若要让用户没有telnet和ftp登录权限,则可设置该用户的shell为/bin/false。

  在/etc/shells文件中,若没有/bin/true或/bin/false,则需要手动添加:

  [root@localhost~]#echo"/bin/false">>/etc/shells

  [root@localhost~]#echo"/bin/true">>/etc/shells

  2、用户密码文件

  为安全起见,用户真实的密码采用MD5加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。

  与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。

  3、用户组帐号文件

  用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。

  在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔。

  4、添加用户

  创建或添加西安linux培训新用户使用useradd命令来实现,其命令用法为:

  useradd[option]username

  该命令的option选项较多,常用的主要有:

  -c注释用户设置对账户的注释说明文字

  -d主目录指定用来取代默认的/home/username的主目录

  -m若主目录不存在,则创建它。-r与-m相结合,可为系统账户创建主目录

  -M不创建主目录

  -edate指定账户过期的日期。日期格式为MM/DD/YY

  -fdays帐号过期几日后永久停权。若指定为-,则立即被停权,若为-1,则关闭此功能

  -g用户组指定将用户加入到哪个用户组,该用户组必须存在

  -G用户组列表指定用户同时加入的用户组列表,各组用逗分隔

  -n不为用户创建私有用户组

  -sshell指定用户登录时使用的shell,默认为/bin/bash

  -r创建一个用户ID小于500的系统账户,默认不创建对应的主目录

  -u用户ID手动指定新用户的ID值,该值必须唯一,且大于499

  -ppassword为新建用户指定登录密码。此处的password是对应登录密码经MD5加密后所得到的密码值,不实真实密码原文,因此在实际应用中,该参数选项使用较少,通常单独使用passwd命令来为用户设置登录密码。

  示例:

  若要创建一个名为nisj的用户,并作为babyfish用户组的成员,则操作命令为:

  [root@localhost~]#useradd-gbabyfishnisj

  [root@localhost~]#idnisj

  uid=502(nisj)gid=500(babyfish)groups=500(babyfish)

  [root@localhost~]#tail-1/etc/passwd

  nisj:x:502:500::/home/nisj:/bin/bash

  添加用户时,若未用-g参数指定用户组,则系统默认会自动创建一个与用户帐号同名的私有用户组。若不需要创建该私有用户组,则可选用-n参数。

  比如,添加一个名为nsj820的账户,但不指定用户组,其操作结果为:

  [root@localhost~]#useraddnsj820

  [root@localhost~]#idnsj820

  uid=503(nsj820)gid=503(nsj820)groups=503(nsj820)

  [root@localhost~]#tail-1/etc/passwd

  nsj820:x:503:503::/home/nsj820:/bin/bash

  [root@localhost~]#tail-2/etc/passwd

  nisj:x:502:500::/home/nisj:/bin/bash

  nsj820:x:503:503::/home/nsj820:/bin/bash#系统自动创建了名为nsj820的用户组,ID号为503

  创建用户账户时,系统会自动创建该用户对应的主目录,该目录默认放在/home目录下,若要改变位置,可以利用-d参数指定;对于用户登录时使用的shell,默认为/bin/bash,若要更改,则使用-s参数指定

  例如,若要创建一个名为vodup的账户,主目录放在/var目录下,并指定登录shell为/sbin/nologin,则操作命令为:

  [root@localhost~]#useradd-d/var/vodup-s/sbin/nologinvodup

  [root@localhost~]#idvodup

  uid=504(vodup)gid=504(vodup)groups=504(vodup)

  [root@localhost~]#tail-1/etc/passwd

  vodup:x:504:504::/var/vodup:/sbin/nologin

  [root@localhost~]#tail-1/etc/group

  vodup:x:504:

  5、设置帐号属性

  对于已创建好的用户,可使用usermod命令来修改和设置账户的各项属性,包括登录名,主目录,用户组,登录shell等,该命令用法为:

  usermod[option]username

  部分option选项

  (1)改变用户帐户名

  使用-l参数来实现,命令用法为:

  usermod-l新用户名原用户名

  例如,若要将用户nsj820更名为nsj0820,则操作命令为:

  [root@localhost~]#usermod-lnsj0820nsj820

  [root@localhost~]#idnsj0820

  uid=503(nsj0820)gid=503(nsj820)groups=503(nsj820)

  [root@localhost~]#tail-1/etc/passwd

  nsj0820:x:503:503::/home/nsj820:/bin/bash

  从输出结果可见,用户名已更改为nsj0820。主目录仍为原来的/home/nsj820,若也要更改为/home/nsj0820,则可通过执行以下命令来实现

  [root@localhost~]#usermod-d/home/nsj0820nsj0820

  [root@localhost~]#idnsj0820

  uid=503(nsj0820)gid=503(nsj820)groups=503(nsj820)

  [root@localhost~]#tail-1/etc/passwd

  nsj0820:x:503:503::/home/nsj0820:/bin/bash

  [root@localhosthome]#mv/home/nsj820/home/nsj0820

  (2)锁定账户

  若要临时禁止用户登录,可将该用户账户锁定。锁定账户可利用-L参数来实现,其命令用法为:

  usermod-L要锁定的账户

  linux锁定用户,是通过在密码文件shadow的密码字段前加“!”来标识该用户被锁定。

  [root@localhosthome]#usermod-Lnsj0820

  [root@localhosthome]#tail-1/etc/shadow

  nsj0820:!$1$JEW25RtU$X9kIdwJi/HPzSKMVe3EK30:16910:0:99999:7:::

  但通过root用户进去,然后su到被锁定的用户,是可以进去的。

  (3)解锁账户

  要解锁账户,可以使用带-U参数的usermod命令来实现。

  [root@localhost~]#usermod-Unsj0820

  [root@localhost~]#tail-1/etc/shadow

  nsj0820:$1$JEW25RtU$X9kIdwJi/HPzSKMVe3EK30:16910:0:99999:7:::

  6、删除账户

  要删除账户,可以使用userdel命令来实现,其用法为:

  userdel[-r]帐户名

  -r为可选项,若带上该参数,则在删除该账户的同时,一并删除该账户对应的主目录。

  [root@localhost~]#userdel-rnsj0820

  若要设置所有用户账户密码过期的时间,则可通过修改/etc/login.defs配置文件中的PASS_MAX_DAYS配置项的值来实现,其默认值为99999,代表用户账户密码永不过期。其中PASS_MIN_LEN配置项用于指定账户密码的最小长度,默认为5个字符。

  7、设置用户登录密码

  使用passwd命令来设置,其命令用法为:

  passwd[帐户名]

  若指定了帐户名称,则设置指定账户的登录密码,原密码自动被覆盖。只有root用户才有权设置指定账户的密码。一般用户只能设置或修改自己账户的密码(不带参数)。

  例如,若要设置nisj账户的登陆密码,则操作命令为:

  [root@localhosthome]#passwdnisj

  Changingpasswordforusernisj.

  Newpassword:

  BADPASSWORD:itistooshort

  BADPASSWORD:istoosimple

  Retypenewpassword:

  passwd:allauthenticationtokensupdatedsuccessfully.

  账户登录密码设置后,该账户就可以登录系统了。

  8、锁定/解锁账户密码及查询密码状态、删除账户密码

  在linux中,除了用户账户可被锁定外,账户密码也可被锁定,任何一方被锁定后,都将无法登录系统。只有root用户才有权执行该命令,锁定账户密码使用带-l选项的passwd命令,其用法为:

  passwd-l帐户名

  passwd-u帐户名#解锁账户密码

  [root@localhosthome]#passwd-lnisj

  Lockingpasswordforusernisj.

  passwd:Success

  [root@localhosthome]#passwd-unisj

  Unlockingpasswordforusernisj.

  passwd:Success

  要查询当前账户的密码是否被锁定,可以使用带-S参数的passwd命令来实现,其用法为:

  passwd-S账户名

  例如

  [root@localhosthome]#passwd-Snisj

  nisjPS2016-04-180999997-1(Passwordset,MD5crypt.)

  如要删除账户的密码,使用带-d参数的passwd命令来实现,该命令也只有root用户才有权执行,其用法为:

  passwd-d帐户名

  帐户密码被删除后,将不能登录系统,除非重新设置密码。

  9、创建用户组

  用户和用户组属于多对多关系,一个用户可以同时属于多个用户组,一个用户组可以包含多个不同的用户。

  创建用户组使用groupadd命令,其命令用法为:

  groupadd[-r]用户组名称

  若命令带有-r参数,则创建系统用户组,该类用户组的GID值小于500;若没有-r参数,则创建普通用户组,其GID值大于或等于500.

  10、修改用户组属性

  用户组创建后,根据需要可对用户组的相关属性进行修改。对用户组属性的修改,主要是修改用户组的名称和用户组的GID值。

  (1)改变用户组的名称

  若要对用户组进行重命名,可使用带-n参数的groupmod命令来实现,其用法为:

  groupmod-n新用户组名原用户组名

  对于用户组改名,不会改变其GID的值

  比如,若要将student用户组更名为teacher用户组,则操作命令为:

  [root@localhosthome]#groupaddstudent

  [root@localhosthome]#tail-1/etc/group

  student:x:505:

  [root@localhosthome]#groupmod-nteacherstudent

  [root@localhosthome]#tail-1/etc/group

  teacher:x:505:

  (2)重设用户组的GID

  用户组的GID值可以重新进行设置修改,但不能与已有用户组的GID值重复。对GID进行修改,不会改变用户名的名称。

  要修改用户组的GID,可使用带-g参数的groupmod命令,其用法为:

  groupmod-gnew_GID用户组名称

  例如,若要将teacher组的GID更改为506,则操作命令为:

  [root@localhosthome]#groupmod-g506teacher

  [root@localhosthome]#tail-1/etc/group

  teacher:x:506:

  11、删除用户组

  删除用户组使用groupdel命令来实现,其用法为:

  groupdel用户组名

  在删除用户组时,被删除的用户组不能是某个账户的私有用户组,否则将无法删除,若要删除,则应先删除引用该私有用户组的账户,然后再删除用户组。

  [root@localhosthome]#groupdelteacher

  [root@localhost~]#grepteacher/etc/group#没有输出,说明teacher用户组以不存在,删除成功

  12、添加用户到指定的组/从指定的组中移除用户

  可以将用户添加到指定的组,使其成为该组的成员。其实现命令为:

  gpasswd-a用户账户用户组名

  若要从用户组中移除某用户,其实现命令为:

  gpasswd-d用户账户用户组名

  例如:

  [root@localhosthome]#groupaddstudent

  [root@localhosthome]#gpasswd-anisjstudent

  Addingusernisjtogroupstudent

  [root@localhosthome]#idnisj

  uid=502(nisj)gid=500(babyfish)groups=500(babyfish),505(student)

  [root@localhosthome]#gpasswd-dnisjstudent

  Removingusernisjfromgroupstudent

  [root@localhosthome]#idnisj

  uid=502(nisj)gid=500(babyfish)groups=500(babyfish)

  [root@localhosthome]#groupsnisj

  nisj:babyfish

  13、设置用户组管理员

  添加用户到组和从组中移除某用户,除了root用户可以执行该操作外,用户组管理员也可以执行该操作。

  要将某用户指派为某个用户组的管理员,可使用以下命令来实现;

  gpasswd-A用户账户要管理的用户组

  命令功能:将指定的用户设置为指定用户组的用户管理员。用户管理员只能对授权的用户组进行用户管理(添加用户到组或从组中删除用户),无权对其他用户组进行管理。

  [root@localhosthome]#gpasswd-anisjstudent

  Addingusernisjtogroupstudent

  [root@localhosthome]#gpasswd-Anisjstudent

  [root@localhosthome]#useraddstu

  [root@localhosthome]#gpasswd-astustudent

  Addinguserstutogroupstudent

  [root@localhosthome]#groupsstu

  stu:stustudent

  [root@localhosthome]#su-nisj

  [nisj@localhost~]$gpasswd-dstustudent

  Removinguserstufromgroupstudent

  [nisj@localhost~]$gpasswd-dstustu

  gpasswd:Permissiondenied.

  14、用户其他相关

  另外,linux还提供了id,whoami和groups等命令,用来查看用户和组的状态。id命令用于显示当前用户的uid,gid和所属的用户组的列表;whoami用于查询当前用户的名称;groups用于产看指定用户所隶属的用户组。

  同时,我们可以使用图形界面来管理用户和用户组,系统--->管理--->用户和组群可以打开相应的配置界面。

  附:将用户添加到组中,也可以如下操作

  将一个用户添加到用户组中,千万不能直接用:

  usermod-GgroupA

  这样做会使你离开其他用户组,仅仅做为这个用户组groupA的成员。

  应该用加上-a选项:

  usermod-a-GgroupAuser

  (FC4:usermod-GgroupA,groupB,groupCuser)

  -a代表append,也就是将自己添加到用户组groupA中,而不必离开其他用户组。