Linux之用户、组管理

Linux之用户、组管理


    Linux系统是一个多用户多任务的分时操作系统。任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。 


  用户账号的管理,主要有以下方面:

     1、用户分类、基本信息、密码策略

     2、用户组的管理

     3、用户、组常用管理命令 

    

   用户分类

   超级用户:拥有对系统的最高管理权限,默认是root用户。

普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。

虚拟用户:也叫“伪”用户/系统用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。如一般运行的web服务,默认就是


使用的nobody用户,但是nobody用户是不能登录系统的。


  用户UID:0-65535 ;

  管理员:0;

  普通用户:1-60000 ;

  系统用户:

      CentOS6系列: 1-499;

      CentOS7系列:1-999;


  用户相关配置文件信息

  /etc/passwd:用户名、UID、基本组等信息

  /etc/passwd:

  name:password:UID:GID:GECOS:directory:shell

  对应的解析 

  登录名:x:UID:GID:comment:主目录:用户默认shell

  如:root:x:0:0:root:/root:/bin/bash

  /etc/shadow:用户密码及相关属性;

  login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account 


expiration date:reserved field

  对应的解析

  登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  如:gentoo:!!:16672:0:99999:7:::


  用户密码的复杂性策略:

      --使用数字、小写字母、大写字母、特殊字符四类中至少三类;

      --足够长,建议8位以上;

      --使用随机密码;

      --定期更换;

  

   组的管理

   组分类:管理员组:ID=0 ;普通组:ID=(Centso6系列1-499, Centos7系列1-999) 附加组:ID=(Centso6系列500+, Centos7系列1000+)

   组的相关的配置文件:

   /etc/group:组名、GID、组内包含的用户;

   如:root:x:0:

   /etc/gshadow:组的密码及相关属性;

   如:gentoo:!::


   用户、组常用管理命令 

   用户相关命令:useradd、usermod、passwd、userdel   

   组相关命令:groupadd、groupmod、gpasswd、groupdel

   其他命令:chage, chsh, chfn   --了解即可


   useradd:创建用户

   语法:useradd [options] LOGIN

useradd -D [options]

   常见的参数选项

       -r: 创建系统用户

       -u UID: 指定UID;

       -g GID: 指定用户所属基本组,此组必须事先存在

       -c 'COMMENT':一段注释性描述

       -d /PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制;

       -s SHELL:设定用户的默认shell;

       -G GID,...:指定所属的附加组;

       -M: 不给用户创建家目录;

   示例:创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database

   [root@localhost ~]# useradd -u 3000 -G database,sql -d /home/database Oracle

   用id查看创建信息

   [root@localhost ~]# id Oracle

   uid=3000(Oracle) gid=3000(Oracle) 组=3000(Oracle),500(database),501(sql)


   userdel:删除用户

   语法:userdel [-r] USERNAME

   常见参数选项

       -r:删除用户的同时删除其家目录;

   示例:查看用户并删除用户

   [root@localhost ~]# id centos

   uid=3001(centos) gid=3001(centos) 组=3001(centos)

   [root@localhost ~]# userdel centos

   [root@localhost ~]# id centos

   id: centos:无此用户



   usermod:用户属性修改

   语法:usermod [OPTION]... LOGIN

   常见的参数选项

       -u UID

       -g GID

       -G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;

       -s SHELL

       -c 'COMMENT'

       -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;

       -l LOGIN:修改账户名称

       -L:lock user 锁定用户密码,使密码无效

       -U: unlock user  解锁密码

    示例:修改centos用户名称为rhl

    [root@localhost ~]# usermod -l  rhl centos

    [root@localhost ~]# id centos

    id: centos:无此用户

    [root@localhost ~]# id rhl

    uid=3001(rhl) gid=3001(centos) 组=3001(centos)



    passwd:设置或修改密码

    语法:passwd [OPTION] [UserName]

    常见参数选项

-l: lock user 锁定

-u: unlock user  解锁

-n mindays: 最短使用期限;

-x maxdays:默认为99999天;

-w warndays:在距多少天提醒用户修改密码;仅能root权限操作;

-i inactivedays:在密码过期后多少天,用户被禁掉,仅能以root操作;

--stdin:从标准输出接收用户密码;

     示例:设置centos用户密码为centos

     [root@localhost ~]# echo 'centos' | passwd --stdin centos


     groupadd、groupdel:创建组、删除组

     语法:groupadd、groupdel [OPTIONS] GROUPNAME

     常见参数选项

-g GID: 指明组ID;

-r: 创建系统组;

     示例:创建系统组webserver,注意UID与普通组的UID有什么同

     [root@localhost ~]# groupadd -r webserver

     [root@localhost ~]# cat /etc/group

     webserver:x:989:

     [root@localhost ~]# groupdel webserver   /删除该系统组


    groupmod: 组属性修改

    语法:groupmod [OPTION] GROUPNAME

    常见参数选项

-n GROUP_NAME  组名称

-g GID 

     示例:更改linuxso组名为LinuxOS

     [root@localhost ~]# groupadd linuxso

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

     linuxso:x:3001:

     [root@localhost ~]# groupmod -n LinuxOS linuxso

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

      LinuxOS:x:3001:  


     gpasswd:设置、修改组密码

     语法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname

     常见的参数选项:

     -a:添加用户到组

     -d:从组删除用户

     -A:指定管理员

     -M:指定组成员和-A的用途差不多

     -r:删除密码

     -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

     示例:设置centos组密码,如系统有个CENTOS账户,该账户本身不是centos组的成员,使用newgrp需要输入密码即可让使用者暂时加入成为该组成员,之后CENTOS建立的文件group也会


是centos。所以该方式可以暂时让centos建立文件时使用其他的组,而不是centos本身所在的组。

      所以使用gpasswd centos设定密码,就是让知道该群组密码的人可以暂时切换具备centos群组功能的。

      注:newgrp:切换基本组为指定的组

      [root@localhost ~]# id CENTOS

      uid=3003(CENTOS) gid=3003(CENTOS) 组=3003(CENTOS)

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

      centos:x:3001:

      [root@localhost ~]# gpasswd centos  //设置组密码

      Changing the password for group centos

      New Password: 

      Re-enter new password: 

      [root@localhost ~]# su - CENTOS  切换用户

      [CENTOS@localhost ~]$ id

      uid=3003(CENTOS) gid=3003(CENTOS) 组=3003(CENTOS) 

      [CENTOS@localhost ~]$ newgrp centos  切换组

      密码:

      [CENTOS@localhost ~]$ id

      uid=3003(CENTOS) gid=3001(centos) 组=3001(centos),3003(CENTOS) 


      其他命令chage、chsh、finger,只是简单了解某些命令需要安装才能使用

      chage:修改帐号和密码的有效期限

      语法:chage[-l][-m mindays][-M maxdays][-I inactive][-E expiredate][-W warndays][-d lastdays]username

      常用参数选项:

          -l:列出用户的以及密码的有效期限

          -m:修改密码的最小天数

          -M:修改密码的最大天数

          -I:密码过期后,锁定帐号的天数

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

          -E:有效期,0表示立即过期,-1表示永不过期

          -W:密码过期前,开始警告天数


      chsh:更换登入系统时使用的shell

      语法:chsh[-luv][-s][USERNAME]

      常见参数选项:

         -s:更改系统预设的shell环境。

         -l:列出目前系统可用的shell清单。

        

      finger:查找并显示用户信息

      语法:

      常见参数选项

        -l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell

       -m:排除查找用户的真实姓名。

       -s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间


你可能感兴趣的:(passwd,useradd,groupadd,userdel,usermod,finger,gpasswd,groupmod,chsh,groupdelchage)