用户及用户组的管理

时间:2021-01-04 00:14:41

1.用户的理解

       用户就是系统使用者的身份,我们可以使用一个用户的身份去使用或管理属于这个用户的文件,在系统中用户存储为若干串字符+若干个系统配置文件,用户信息涉及到的系统配置文件:

    /etc/passwd                          ##用户信息,格式如下:

       username用户名:password密码:uid用户ID:gid组ID:说明文字:家目录:用户使用的shell

       **每一行代表一个账号,很多帐号例如bin,daemon,adm,nobody等为系统帐号,不能随意删掉

       **因为这个文件所有程序都能够读取,很容易造成密码数据被窃取,所以密码数据一般放在/etc/shadow中,此处显示x

       **默认的用户家目录在/home/username中

    /etc/shadow                          ##用户认证信息(密码信息),格式如下:

       (a)用户:(b)密码:(c)密码可使用的时间:(d)最短有效期:(e)最长有效期:(f)警告期:(g)非活跃期:(h)帐号到期日

       **(b)无密码时显示双感叹号,帐号锁定后密码前显示一个感叹号,解锁后感叹号消失

       **(c)设置为零时每次登陆前都要修改一次密码

       **(d)m天内不能再次修改密码

       **(e)M天后帐号会被冻结

       **(f)帐号到期前W天提醒用户更改密码

       **(g)帐号到期后还给用户I(大写i)天时间修改密码,设置为-1时到期立即冻结账户

       **(h)其他参数在修改一次密码后会被重置,该参数不会,到设置日期后立即冻结账户,用参数E设置

    /etc/group                              ##组信息,格式如下:
       组名称:组密码:组id:附加组成员
    /etc/gshadow                         ##组认证信息
    /home/username                    ##用户家目录

    /etc/skel/.*                             ##用户骨架文件


2.用户管理(需要超级用户权限)

   (1)用户建立
       useradd        参数        用户名
                           -u                            ##指定用户uid
                           -g                            ##指定用户初始组信息,这个组必须存在
                           -G                           ##指定附加组,这个组必须存在
                           -c                            ##用户说明
                           -d                            ##用户家目录
                           -s                            ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字

    

   (2)用户删除
       userdel     [-r]    用户名                 ## -r表示删除用户信息及用户的系统配置文件

   (3)组的建立
       groupadd    -g    组名                   ##建立组
       groupdel            组名                   ##删除组

     **作以上实验的监控命令(用另一个shell作监视窗口):
     watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ==home==;ls -l /home;'

    **监控单引号内的内容,每隔一秒更新一次

    **列出用户信息和组信息的后三行(如有新用户加入,用户信息会加在/etc/passwd文档末行,同时产生一个同名的组,组信息加在/etc/group文档末行),及普通用户家目录信息(加入新用户时/home中会添加一个与用户同名的家目录)

   (4)用户id信息查看
       id     参数            用户名
               -u                             ##用户uid
               -g                             ##用户初始组id
               -G                            ##用户所有所在组id
               -un/gn/Gn                  ##显示名称而不是id数字
               -a                             ##显示所有信息

  (5)用户信息更改
       usermod    参数    用户
                         -l                     ##更改用户名称
                         -u                    ##更改uid
                         -g                    ##更改gid
                         -G                   ##更改附加组
                         -aG                 ##添加附加组
                         -c                    ##更改说明
                         -d                    ##更改家目录指定
                         -md                 ##更改家目录指定及家目录名称
                         -s                    ##更改shell
                         -L                    ##冻结帐号
                         -U                    ##解锁

      *)开启监控窗口

      用户及用户组的管理

     **)在另一个窗口创建一个新用户,执行加入用户信息的命令

     用户及用户组的管理

     ***)用户信息和家目录分别生出一条信息文件(没出现组信息文件是因为我将这个用户的初始组设为student了),查看下用户的各项信息,然后执行删除命令

    用户及用户组的管理

    用户及用户组的管理

   ****)因为加了-r参数,所以与这个用户有关的配置文件都被删除

      

3.用户权力下放

   (1)在系统中超级用户可以下放普通用户不能执行的操作给普通用户
        **下放权力配置文件:/etc/sudoers

   (2)下放权力的方法
        *)超级用户执行visudo进入编辑/etc/sudoers模式(不用加参数)
        *)格式:
        获得权限用户    主机名称=(获得到的用户身份)    命令
        sumin    foundation150.ilt.example.com=(root)    /usr/sbin/useradd
        **sumin用户能在foundation150.ilt.example.com主机上以超级用户身份执行/usr/sbin/useradd

        **用hostname命令获得主机号

   (3)执行下放权限命令
        sudo    命令全称             ##如果第一次执行sudo需要输入当前用户密码
        **在/etc/sudoers中如果设置如下:
           sumin    foundation150.ilt.example.com=(root)     NOPASSWD: /usr/sbin/useradd
           **NOPASSWD表示用户调用sudo命令的时候不需要输入密码


4.用户认证信息的控制

    chage     参数    用户
                   -d                       ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统时必须修改一次密码    
                   -m                      ##最短有效期,该期限内不能再次修改密码
                   -M                      ##最长有效期,该期限过后会冻结帐号
                   -W                      ##警告期,设置在帐号过期前多少天通知用户修改密码
                   -I                        ##(大写i)用户非活跃天数,帐号过期后还允许用户修改密码的天数,该期限过后才冻结帐号
                   -E                       ##帐号到期日格式 -E "YYYY-MM-DD"

                   -l                        ##(小写L)列出该帐号的详细密码参数