774530750 发表于 2019-2-15 11:46:14

centos系统之账号和组管理

  用户管理目标:
1、用户账号的作用
  2、用户增、删、改、查
  3、用户账号的相关数据文件
  4、用户组的创建、用户的分组
  用户账号的作用:
1、标识用户的身份,让每个用户有私有的文件夹(家目录),未授权时,每个人只能访问自己的文件。
  2、每个用户远程管理服务器时,所做的操作,root管理员可查到。
  Linux系统中的用户分为3类,即普通用户、窗机管理员用户、系统用户(程序用户)。
  一、用户账户的相关数据文件:
1、/etc/passwd
保存用户名称、宿主目录、登录shell等信息,每一行对应一个用户 的账号记录。

用户信息的记录格式:
root:x:0:0:root:/root:/bin/bash
https://s1.运维网.com/images/blog/201901/10/f0c66334ef6c4c1a941fc93e4ac028b2.png

格式说明:以“:”作为分隔符,分隔成多个部分。
1)、用户名
2)、密码:x表示此用户需要用密码登录,如果想免密码登录,用vi修改此文件,将x删除即可
3)、用户的uid号
4)、用户的gid号
5)、用户的备注信息,如果在图形化界面时,是界面的显示名称
6)、用户的家目录(宿主目录)
7)、用户登录的shell环境。
注:
uid用来区分不同用户的数字,表示该用户在本服务器中独一无二
gid用于区分不同用户组的数字,表示该用户组在本服务器中独一无二
uid和gid的联系:
在Linux下每个用户都至少属于一个组,也可以同时属于多个组。
**2、/etc/shadow **
保存用户的密码信息,只有root用户能读取。
用户的密码信息的记录格式:
root:$6$sNuBDGdoaIg9XXqq$j8THbca1kORqH85JL4o4qV5Rbbnw8TPZGsubkH9iR8cQZOBJ×××7AqnrZPX.Vk81y5IvOw.hZifvQThQvVX7h1::0:99999:7:::
https://s1.运维网.com/images/blog/201901/10/5b81eb4ecadbde6a8dd89d442623cc57.png

格式说明:以“:”作为分隔符,分隔成多个部分。
1)、用户名
2)、加密后的密码
3)、最后密码修改的时间
4)、允许修改密码最小间隔时间
5)、允许修改密码最大间隔时间
6)、密码过期警告时间
7)、密码的宽限时间
8)、密码的失效时间,99999代表永不过期
9)、保留,暂时没有具体功能
  二、用户账号的增、删、改,以及密码设置。
1、增(add):useradd
格式:useradd    [选项]   用户名
常用选项:
-u:指定UID号
-d:指定宿主目录,缺省(默认)为/home/用户名
-e:指定账号失效时间
-g:指定所属的基本组(后面跟组名或GID)
-G:指定所属的附加组(后面跟组名或GID)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录shell(默认为/bin/bash,一般不用改,在建立非登录用户的时候可以指定为/sbin/nologin)

注: 注:这些选项都能分开用,不冲突的可以在建立用户的时候连着用。
例子:
添加用户stu01,指定UID为520,宿主目录为/opt/stu04,指定基本组为root(注:系统中本身就存在users这个组GID为100),附加组为tech:
useradd -u 520 -d /opt/stu04 -g users-G root stu01
  2、删除(del):userdel
格式:userdel    -r用户名
添加-r选项,宿主目录/用户邮件也一并删除。

**3、改(modify):usermod**
主要是对已存在的用户的属性进行更改,可以增加用户成员的所属附加组。
格式:usermod    [选项](选项可以有多个)用户名
常用的选项:
-l :更改用户账号的登录名称
-L :锁定用户账户(注:用usermod –L锁定一个账户的时候可以用passwd–u直接解锁,但是用passwd –l锁定的账户,用usermod–U解锁的时间,需要解锁两次,因为,passwd –l锁定的账户密码前面有两个!)
-U :解锁用户账户
-u、-d、-e、-g、-G、-s :与useradd相同
  4、密码设置:passwd
为用户添加密码
格式:passwd   [选项]用户名
常用选项:
-d :清空用户的密码,使之无需密码即可登录
-l :锁定用户账号
-S :查看用户账号的状态(是否被锁定)
-u :解锁用户账号


[*]

[*]stdin:标准输入(比如管道)取密码
https://s1.运维网.com/images/blog/201901/10/004a4aa823a695edc21b452f9d4df538.png
注:删除密码用passwd –d 而不能用echo “” | passwd - -stdin 用户名
  5、针对用户的密码进行设定——chage
格式:chage   [选项]    用户名
常用选项:
-l :列出密码有效信息
-d:设置最近一次修改密码的时间(后面跟的是时间)
-E:设置账号什么时候过期(后面跟的是时间)
-m:设置密码最小使用天数 (后面跟的是天数)
-M:设置密码最大使用天数(后面跟的是天数)
-I:设置密码过期后,再过几天不改密码,到期将失效(后面跟的是天数)
-W:设置过期前几天警告改密码(后面跟的是天数)


  三、用户组
用户组分为基本组(私有组)和附加组(公共组)

**1、用户组的相关数据文件——/etc/group**
组信息的记录格式:
bin:x:1:
https://s1.运维网.com/images/blog/201901/10/d6f1024b76a35f1b3f46eb1a3dba857b.png

格式:组名:组密码:组gid号:组成员
**2、用户组的相关密码信息文件——cat /etc/gshadow**
**3、组的增(add)——groupadd**
格式:groupadd   [选项]   组名
常用选项:
-g :指定gid号
  4、组的删(del)——groupdel
格式:groupdel   [选项]组名

**5、组密码设置——gpasswd**
可以实现给组设置密码、添加和删除成员、设置组管理员
格式:gpasswd   [选项]   组名
常用的选项:
-a:向某个组里添加一个用户
例子:gpasswd-alqtest    #在test组中添加lq用户。
-A:给某个组设置管理员
例子:gpasswd   -Alq,li   test   #给test设置2个管理员
-d:从某个组删除用户   
例子:gpasswd   -d   lq   test   #从test组中删除lq用户
-M:给某个组重新设置成员名单,会替换原名单
例子:gpasswd-Mlq,li,zhang    test   # 给root组重新设置成员名单lq、li、zhang,会替换原名单
  四、查询用户账号和用户组
1、id
查看该账户的用户名及用户所属组等信息
格式:id   用户名
https://s1.运维网.com/images/blog/201901/10/f315775280eadf06c4e589f038abecb5.png
  2、groups
查看用户所属组
格式:groups 用户名
https://s1.运维网.com/images/blog/201901/10/7e991b6ac6faf5c21c57955ba3143b94.png

注:“:”左边是基本组,右边是附加组。
  3、finger

查看用户的详细信息
格式:finger    用户名
https://s1.运维网.com/images/blog/201901/10/a49ac95021e1916cc29127bb52f53944.png
注:默认没有安装finger工具
可以从上图看到root的详细信息。
  4、w(who)
查询已登录主机的用户信息。
https://s1.运维网.com/images/blog/201901/10/50a637e77ca2ba8fdae3d31aacd1c5ac.png
  五、创建用户的文件默认参数。
1、用户和组的策略配置文件——/etc/login.defs
文件内容详解:
MAIL_DIR /var/spool/mail   用户邮件的主目录
  PASS_MAX_DAYS 99999   密码的最大修改间隔时间
  PASS_MIN_DAYS 0      密码的最小修改间隔时间
  PASS_MIN_LEN 5       密码的最小长度
  PASS_WARN_AGE 7    密码过期的警告时间
  UID_MIN                  1000       普通用户uid的最小值
  UID_MAX               60000      普通用户uid的最大值
  SYS_UID_MIN               201       系统用户uid的最小值(用useradd-r 创建的是系统用户)
  SYS_UID_MAX               999      系统用户uid的最大值
  注:Linux用户账号分为管理员(root)、普通用户(1000~60000)、系统用户(201~999)。而uid从1~200为保留号。
  GID_MIN                  1000   普通组的gid最小值
  GID_MAX               60000    普通组的gid最大值
  SYS_GID_MIN               201      系统组的gid最小值
  SYS_GID_MAX               999   系统组的gid最大值
  CREATE_HOME yes      启用创建用户家目录
  UMASK         077      普通用户的权限掩码,实际umask值为022。
  USERGROUPS_ENAB    yes   允许删除用户的同时删除用户的组,前提是组中没有成员存在
  ENCRYPT_METHOD    SHA512   指定密码加密算法为SHA512算法。
https://s1.运维网.com/images/blog/201901/10/bfdf2102baccf4b99c0454077a60156a.png
  2、创建新用户的默认设置文件—— /etc/default/useradd
#useradd defaults file
GROUP=100   //只有当用useradd-N   lucy 创建用户时未创建同名的组时,这个新用户才会在100组中HOME=/home   用户家目录的基目录(小区)
  INACTIVE=-1   // 密码永远不失效(不禁用)
  EXPIRE=      //密码的过期时间,默认为空
  SHELL=/bin/bash    //指定新建用户的shell为/bin/bash
  SKEL=/etc/skel       //新建用户的宿主目录模板为/etc/skel
  CREATE_MAIL_SPOOL=yes    //是否创建用户的邮件文件
  在新建一个用户的时候,宿主目录里面的内容就是将skel拷贝过去,然后放到/home目录下并改名为新建的用户名
https://s1.运维网.com/images/blog/201901/10/e4a86d9ff0ce58835183f132c4f2c016.png
  3、全局配置文件~/.bash_profile、~/.bashrc和~/.bash_logout
注:可以在用户的宿主目录下使用ls -a查看。
~/.bash_profile:每次登录时执行(开机启动,但只有在开机启动时启动一次)
~/.bashrc :每次进入新的Bash环境时执行(开机启动,优先执行,范围更广)
~/.bash_logout:每次退出登录时执行(关机、退出执行)
以上都是只会影响自己。
  要想影响所有用户,在以下文件中配置:
/etc/profile   
/etc/bashrc



页: [1]
查看完整版本: centos系统之账号和组管理