Linux学习第五天

用户账户的管理

一、用户账户和组账户概述
  • 用户和用户组管理,顾名思义就是添加用户和用户组、更改密码和设定权限等操作。

  • 可能有很多人觉得用户管理没有意义,因为我们在使用个人计算机的时候,不管执行什么操作,都以管理员账户登录,而从来没有添加和使用过其他普通用户。这样做对个人计算机来讲问题不大,但在服务器上是行不通的。

  • 大家想象一下,我们是一个管理团队,共同维护一组服务器,难道每个人都能够被赋予管理员权限吗?显然是不行的,因为不是所有的数据都可以对每位管理员公开,而且如果在运维团队中有某位管理员对 Linux 不熟悉,那么赋予他管理员权限的后果可能是灾难性的。

  • 因此,越是对安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。

Linux基于用户身份对资源访问进行控制

  • 用户账号:
    超级用户 root
    普通用户
    程序用户
  • 组账号:
    基本组(私有组)
    附加组(公共组)
  • UID和GID:
    UID(User Identity,用户标识号)
    GID(Group Identity,组标识号)
二、用户账户配置文件

用于保存用户的账号基本信息

  • 文件位置:/etc/passwd
    这个文件中保存的就是系统中所有的用户和用户的主要信息。我们打开这个文件来看看内容到底是什么。


    passwd中内容.png

    这个文件的内容非常规律,每行代表一个用户。大家可能会比较惊讶,Linux 系统中默认怎么会有这么多的用户啊!这些用户中的绝大多数是系统或服务正常运行所必需的用户,我们把这种用户称为系统用户或伪用户。系统用户是不能登录系统的,但是这些用户同样也不能被删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。

    现在我们就把 root 用户这一行拿出来,具体分析这个文件中的内容具体代表的含义。可以注意到,这个文件用":"作为分隔符,划分为 7 个字段,我们逐个来看具体的含义。


    root账户信息.png
  • 每一行对应一个用户的账号记录
    字段1:用户账号的名称
    字段2:用户密码字串或者密码占位符“x”
    字段3:用户账号的UID号
    字段4:所属基本组账号的GID
    字段5:用户全名
    字段6:宿主目录
    字段7:登录Shell信息

三、组账户配置文件

用于保存密码字串、密码有效期等信息

  • 文件位置:/etc/shadow
    这个文件是没有任何权限的,但因为我是 root 用户,所以读取权限不受限制。当然,用强制修改的方法也是可以手工修改这个文件的内容的。只有 root 用户可以浏览和操作这个文件,这样就最大限度地保证了密码的安全。
  • 每一行对应一个用户的密码记录
    字段1:用户账号的名称
    字段2:加密的密码字符串(!起始,代表账号不得登录系统)
    字段3:上次修改密码的时间(从1970.1.1起始至现在)
    字段4:密码的最短有效天数,默认值为0
    字段5:密码的最长有效天数,默认值为99999
    字段6:提前多少天警告用户口令将过期,默认值为7(-1表示不警告)
    字段7:在密码过期之后多少天禁用此用户(-1表示永远不禁用)
    字段8:账号被禁用天数,默认值为空(-1表示账户被启用)
    字段9:保留字段(未使用)
四、创建用户账户
  • useradd命令
    格式:useradd [选项]... 用户名
  • 常用命令选项
    -u:指定UID标记号
    -d:指定宿主目录,缺省为/home/用户名
    -e:指定账号失效时间
    -g:指定账号的基本组名(或UID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shell
五、用户账户的初始配置文件
  • 文件来源
    新建用户账号时,从/etc/skel目录中复制而来
  • 主要的用户初始配置文件
    ~/.bash_profile:用户每次登录时执行
    ~/.bashrc:每次进入新的Bash环境时执行
    ~/.bash_logout:用户每次退出登录时执行
六、设置用户口令
  • passwd命令
    格式:passwd [选项]... 用户名
  • 常用命令选项
    -d:清空用户账号的密码,使之无需密码即可登录
    -l:锁定用户账号
    -S:查看用户账号的状态(是否被锁定)
    -u:解锁用户账号
七、修改用户账号的属性
  • usermod命令
    格式:usermod [选项]... 用户名
  • 常用命令选项
    -l:更改用户账号的登录名
    -L:锁定用户账户
    -U:解锁用户账户
  • 以下选项与useradd命令中的意义相同
    -u、-d、-e、-g、-G、-s
八、删除用户账号
  • userdel命令
    格式:userdel [-r] 用户名
    添加-r选项时,表示连用户的宿主目录一并删除
九、组行号文件
  • 与用户账号文件类似
    /stc/group:保存组账号基本信息
    /etc/gshadow:保存组账号的密码信息
十、创建组账户
  • groupadd命令
    格式:groupadd [-g GID] 组账号名
十一、添加、删除组成员
  • gpasswd命令
    用途:设置组账号密码(极少用)、添加/删除组成员
    格式: gpasswd [选项]... 组长号名
    -a:向组内添加一个用户
    -d:从组内删除一个用户成员
    -M:定义组成员列表、以逗号分隔
十二、删除组账号
  • groupdel命令
    格式:groupdel 组账号名
十三、用户和组账号查询
  • id命令
    用途:查询用户身份标识
    格式:id [用户名]
  • groups命令
    用途:查询用户所属的组
    格式:groups [用户名]
  • users、w、who命令
    用途:查询已登录到主机的用户信息
十四、图形化的用户和组管理工具
图形化用户和组的管理.png

可以直接管理.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容