linux中依照账户功能可以分为:超级用户(super user)、普通用户(normal user)。普通用户又可以分为系统用户和真实用户。

  超级用户在linux中拥有至高的权力,可以对linux下的各种文件做任何操作,包括读取删除文件,安装卸载硬件,启动停止服务,关机或停止系统等。在linux中超级用户一般用户名通常是root,UID为0。

  普通用户在linux中的权力是受到限制的,只能操作自己具备权限的操作。如果没有足够的权限,普通用户是无法调用那些文件的,所以,普通用户对系统的危害相对要小的很多。linux中我们可以创建4,294,967,295个普通用户。在普通用户中还分为系统用户和真是用户。系统用户是仅限系统本身使用,我们在安装某些软件的时候,有些软件需要创建自己的用户,这些用户就属于系统用户的一部分。系统用户的UID范围在1---499之间。     真实用户就是我们平时登录的账户,真实用户的UID范围在500——4,294,967,295之间。

   本机的用户账号信息通常存放在/etc/passwd中。在/etc/passwd中,每一行就是一个用户信息,每一行用:隔开,共分为七个字段,分别代表用户名:密码:UID:GID:注释:家目录:shell类型。可以使用id命令来查看用户是否存在,例:id user    在/etc/skel中存放的就是用户的模板信息。

   下面来说用户账号的常用命令:useradd、usermod、userdel、passwd

   useradd添加用户命令详解:

   useradd [-u UID[-o]][-g GROUP] [-g GROUPS..][-d HOME][-s SHELL][-c COMMENT][-p PASSWORD][-n][-r][-m]|[-M]username

    -u  指定UID号,如果不设置,系统会默认添加为系统中可用的从小到大排的可用的UID,如果UID已经指定过,useradd会发送错误信息,可以使用-o参数,告诉useradd允许重复UID;

    -g  指定群组,注意,在指定前,被指定的group必须存在;

    -G  指定次要群组,可以利用“,”隔开来连续指认多个;

    -d  指定家目录,默认是在/home下目录名称与用户名相同;

    -s  指定用户登录使用的shell;

    -c  指定用户的注释信息;

    -p  指定用户加密后的密码信息;

    -n  该参数是用来设置创建账号是不创建默认群组的,默认情况会创建用的同   同时创建私有用户群组;

    -m|-M 指定是否创建家目录。-m是创建,-M为不创建;

    -r  指定创建用户为系统用户。

 

    usermod  修改用户命令详解:

    usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号

    -L  锁定账号;

    -U  解除锁定;

    -c  修改用户帐号的备注文字;


  -d  修改用户登入时的目录;


  -e  修改帐号的有效期限;


  -f  修改在密码过期后多少天即关闭该帐号;


  -g  修改用户所属的群组;


  -G  修改用户所属的附加群组。

 

    -l  修改用户帐号名称。

    例:usermod -l newuser uesr  修改user名为newuser


  -s<shell>  修改用户登入后所使用的shell。


  -u<uid>  修改用户ID。

   userdel   删除用户命令:

   userdel [-r] userneme

   userdel只有-r这个参数,这个参数的作用是删除用户的下列数据:1.用户的主目录(Home Directory)2.用户的邮箱。

    passwd命令详解:

    在linxu中使用useradd创建一个新用户时,useradd会锁定用户的密码,用户必须要修改密码后其用户才可以使用该账号登陆。

     passwd [-d][-k][-l][-S][--stdin] username

     -d   删除用户密码,亦会把/etc/passwd 和 /etc/shadow文件中的密码段清空

          一旦删除密码,该用户就可以不用密码验证即可登陆系统;

     -l   锁定账号,用户一旦锁定,即使用户输入正确密码也会报错,该命令只能root使用,用户无法自己使用此命令锁定自己。

     -S    用来显示密码状况,该命令只能由root使用;

     -stdin  由标准输入(stdin ,Standard Input)读入密码的本文,再由passwd命令加密成密文类型的密码。

 

     当使用useradd命令创建新账号时,如果没有特殊指定,useradd会根据/etc/login.defs 和  /etc/default/useradd中的定义,作为新创建账号的默认值。

 

     检查账号与密码的有效期限

 

    所有用户包括超级用户和普通用户都可以使用chage -l user  命令来查看账号与密码的有效期限。

    另外chage命令也可以更改账号密码的有效期限:

    chage [-m MINDAYS] [-M MAXDAYS] [-d LASTDAY] [-I INACTIVE] [-E EXPIREDATE] [-W WARNDAYS] USERS

     -m    设置密码修改的最小天数

     -M    设置两次修改密码相距的最大天数

     -d    指定密码最后修改日期

     -I    指定密码过期够锁定账号的天数

     -E    设置账户的过期日期。如果EXPIREDATE设置为0,则代表立即过期,如果为-1,则代表永不过期。

     -W     设置密码过期前,开始警告的天数。