Linux用户与权限管理

  • 前言
  • 一、管理用户账号
    • (1)用户账号概述
      • ①用户标识UID (User IDentity,用户标识号)
      • ②用户账号文件
    • (2)用户账号管理
      • ①添加用户账号(useradd)
      • ②设置/更改用户口令(passwd)
      • ③修改用户账号属性(usermod)
      • ④删除用户账号(userdel)
  • 二、管理组账号
    • (1)管理组账号概述
      • ①组账号的分类
      • ②组标识GID (Group IDentifi)
      • ③组账号文件位置
    • (2)组账号管理
      • ①添加组账号(groupadd)
      • ②添加删除组成员(gpasswd)
      • ③删除组账号(groupdel)
    • (3)查询账号信息
      • ①查询用户账户所属组(groups)
      • ②查询用户账号身份标识(id)
      • ③查询当前主机的用户登录信息(w、who、users)
      • ④查询用户账号的登录属性(finger)
    • (4)文件与目录的归属和权限
      • ①查看文件与目录的权限和归属
  • 三、设置文件与目录权限和归属
    • (1)设置文件与目录权限(chmod)
    • (2)设置文件与目录归属(chown)
    • (3)设置权限掩码创建文件与目录(umask)
  • 总结

前言

在Linux中会有不同的用户,我们可以给不同的用户以不同的权限,来实现不同的需求。在企业中也是通过创建不同用户分配不同的权限,来实现企业中的不同的职位分工权限大小。

一、管理用户账号

(1)用户账号概述

  • 超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
  • 普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
  • 程序用户: 在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。

①用户标识UID (User IDentity,用户标识号)

  • root用户账号UID固定值0
  • 程序用户账号的UID默认为Centos7: 1~ 999,Centos5,6: 1~499
  • 普通用户的UID默认为Centos7: 1000~ 65535,Centos5, 6: 500~ 65535

②用户账号文件

作用:保存用户名称、宿主目录、登录Shell 等基本信息
位置:文件位置:/etc/passwd

  • 每一字段对应一个用户的账户记录:

     字段1:用户账号的名称,也是登录系统时使用的识别名称。
     字段2:经过加密的用户密码字串,或者密码占位符“x”。
     字段3:用户账号的 UID 号。
     字段4:所属基本组账号的 GID 号。
     字段5:用户全名,可填写与用户相关的说明信息。
     字段6:宿主目录,即该用户登录后所在的默认工作目录。
     字段7:登录 Shell 等信息,用户完成登录后使用的 Shell
    

基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一 定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中, 而passwd文件中仅保留密码占位符“x”。

第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法,更加安全
第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 15775 days"可以查看哪一天改过
第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
第五列:密码有效期,默认99999,表示永久生效
第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息
第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用
第八列:账号失效时间,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间
第九列:保留,未使用

这里要注意的是第二列!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

  • 如果在环境生产中程序升级程序失败,出现账号已过期的报错,可以将账号设置为永不过期,即将第五个字段更改为99999,表示不进行限制,即可
  • shadow的权限是非常高的,不能进行读取编辑与执行

(2)用户账号管理

①添加用户账号(useradd)

格式:useradd [选项] 用户名

选项 作用
-u 指定用户的UID号,要求该UID号码未被其他用户使用
-d 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录
-e 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g 指定用户的基本组名(或使用GID号),对应的组名必须已