一 基于账号的访问控制:

    账户类别:用户账号、组账号

    识别方式:UID、GID

    用户账号分类                    超级用户:0 ;    系统用户:UID范围1~499  ;    普通用户UID范围500~60000 ;

    组账号:用来区分权限,不用于登陆

          基本组(私有组)

          附加组(公共组)

 二 本地账号的数据文件

      /etc/passwd  、/etc/shadow

      /etc/group    、/etc/gshadow

      1、用户账号文件  /etc/passwd,保存用户的基本信息,以:分割为7个字段

            

      字段1:用户账号的名称

      字段2:密码字串或占位符

      字段3:用户的UID

      字段4:用户的GID

      字段5:用户的全名

      字段6:用户的宿主目录(相当于用户家目录)

      字段7:登陆shell程序的路径

      2、用户账号密码文件  /etc/shadow  共9个字段    (不太需要记住,第二个字段为单向密码加密字段,好破解)  
      3、id 用户名

         

      4、useradd -e  用户名   

           可指定账号失效时间,平时可用于临时借出账号的作用

      5、useradd -g  用户组 用户名        指定创建用户的基本组

           useradd -G 用户组  用户名       指定创建用户的附加组

          

      6、useradd  -M  用户名 不为用户创建宿主目录,无法登陆系统,可以访问服务器验证一下,但是无法登陆系统(ftp就是个例子)

      7、useradd  -s  用户登录的shell  用户名

           注意:/sbin/nologin下也是一个shell,这个shell下的账号禁止登陆系统。

      8、passwd -l 用户名   锁定用户

           passwd -S 用户名  查看用户是否锁定

           passwd -u  用户名  给用户解锁

           passwd -d  用户名  清楚用户密码,可让用户无密码登陆

      9、非交互式设置密码

             echo 密码 | passwd --stdin 用户名

 

 三  创建用户的配置文件

     1、 默认配置文件,useradd行为设置  /etc/default/useradd

     2、/etc/skel  里面的隐藏文件,它是一个模板目录,这三个文件被称作一个用户的环境

         ~/.bash_profile:每次登陆执行,可用source命令刷新该命令。

         ~/.bashrc:每次进入新的bash环境时执行,可更改别名,重新打开终端即可刷新。

         ~/.bash_logout:每次退出登录时执行,

         每创建一个目录,系统会mkdir /home/创建那个用户的文件夹;然后cp  /etc/skel/*  到新创建的用户目录中

     3、全局配置文件 : /etc/bashrc 、 /etc/profile

     4、当我们想创建众多用户,每个用中都想添加一个相同文件时候,可以先将该文件复制到模板目录中(/etc/skel),往后再新建用户,它的家目录都会多出该文件。

    

 四  登陆定义文件  /etc/login.defs

      对新建账号起作用

 

 五  问:当执行 useradd 用户名,系统都更改了哪些文件?

      答:1、根据/etc/skel模板,在/home下新建一个用户文件

            2、在/etc/passwd、/stc/shadow、/etc/group、/etc/gshadow分别增加一行

            3、 /var/spool/mail会touch一个邮件文件

 

 六   usermod 修改用户

       usermod -l 更改用户登录的新名称  原名称

       

 七  chage密码有效控制

      userdel [-r]  删除用户  : -r选项,宿主目录/用户邮件一并删除