Linux命令账号(用户、用户组)控制(五)

基于账号的访问控制

  • 基于账户身份对资源访问进行控制
    • 账户类别:用户账户、组账户
    • 识别方式:UID、GID
  • 用户账号
    • 超级用户root、系统用户、普通用户
  • 组账号(组账号用来区分权限,不用于登录)
    • 基本组(私有组)
    • 附加组(公共组)

账号的存放类别

  • 账号数据的存放
    • 存储在本机磁盘中(本地账户)
    • 存储在网络上的专门的服务器(网络账户)
  • 本地账户的数据文件
    • /etc/paawd、/etc/shadow
    • /etc/group、/etc/gshadow
  • 解析用户账号文件
  • /etc/passwd,保存用户账号的基本信息
    • 每个用户记录一行,以:分割为7个字段
      – 1、用户账号的名称
      – 2、密码字串或占位符
      – 3、用户账号的UID号
      – 4、所属基本组的GID号
      – 5、用户全名
      – 6、宿主目录
      – 7、登录shell程序的路径
示例代码:
#head -n 1 /etc/passwd(取出该文件中第一行的数据)
  • /etc/shadow,保存密码字串/有效期等信息
  • 每个用户记录一行,以:分割为9个字段
    – 1、用户账号的名称
    – 2、加密后的密码字符串
    – 3、上次修改密码的时间
    – 4、密码的最短有效天数,默认0
    – 5、密码的最长有效天数,默认99999
    – 6、密码过期前的警告天数,默认7
    – 7、密码过期后多少天警用此用户账号
    – 8、账号失效时间,默认值为空
    – 9、保留字段,未使用
示例代码:
#head -n 1 /etc/shadow

添加用户账号

useradd 添加用户
  • useradd 命令
    • 格式:useradd [选项]… 用户名
  • 常用命令选项
    • -u:指定UID标记号
    • -d:指定宿主目录,缺省为 /home/用户名
    • -e:指定账号失效时间
    • -g、-G:指定所属的基本组、附加组
    • -M:不为用户建立并初始化宿主目录
    • -s:指定用户的登录shell
示例:
添加一个名为restart1025的用户账号
#useradd restart1025
#grep restart1025 /etc/passwd /etc/shadow

添加用户stu01,宿主目录设为/opt/stu01
#useradd -d /opt/stu01 stu01
#ls -ld /opt/stu01/

添加用户stu02,指定基本组为users
#useradd -g users stu02
#grep stu02 /etc/passwd

添加用户sys01,不建宿主目录,不用于登录
#useradd -M -s /sbin/nologin sys01
#grep sys01 /etc/passwd
#ls -ld /home/sys01

passwd 设置口令

  • passwd命令
    • 格式:passwd [选项]… 用户名
    • 常用命令选项
      – -d:清空用户的密码,使之无需密码即可登录
      – -l:锁定用户账号
      – -S:查看用户账号的状态(是否被锁定)
      – -u:解锁用户账号
      – –stdin:从标准输入(比如管道)取密码
#passwd stu01(然后输入两次密码)
#echo 123456 | passwd --stdin stu02(直接修改密码)

通过 --stdin设置密码,免除交互过程

用户初始配置

useradd行为设置
  • 默认配置文件:/etc/default/useradd
    • 对新创建的账号起作用
  • login.defs登录定义文件:默认配置文件:/etc/login.defs
    • 对新创建的账号起作用
#grep -vE '^#|^$' /etc/login.defs(获取该文件中不是以$和#开头的行)

grep -E扩展自定义正则表达式

用户初始配置文件

  • 配置文件来源
    • 新建用户时,根据/etc/skel模板目录复制
  • 主要的初始配置文件
    • ~/.bash_profile:每次登录时执行
    • ~/.bashrc:每次进入新的Bash环境时执行
    • ~/.bash_logout:每次退出登录时执行
    • 全局配置文件:/etc/bashrc、/etc/profile
  • 用户初始文件会调用全局初始文件
#cat ~/.bashrc
~ 代表 /root 目录

用户的删改查

usermod 修改用户
  • usermod命令
    • 格式:usermod [选项]… 用户名
    • 常用命令选项
      – -l:更改用户账号的登录名称
      – -L:锁定用户账户
      – -U:解锁用户账户
      – -u、-d、-e、-g、-G、-s:与useradd相同
示例代码:
将用户stu01设为2018-07-12过期
#usermod -e 2018-07-12 stu01
#grep -E "root|stu01" /etc/shadow

将用户sys01的登录shell改为/bin/bash
#usermod -s /bin/bash sys01
#grep sys01 /etc/passwd

chage 密码有效控制

  • 管理工具chage命令
    • 格式:chage [选项] 用户名
    • 常用命令选项
      – -l:列出密码有效期信息
      – -E:指定账号过期时间,YYYY-MM-DD
      – -m:指定密码的最小天数
      – -M:指定密码的最大天数

userdel 删除用户

  • userdel 命令
    • 格式:userdel [-r] 用户名
    • 添加 -r 选项,宿主目录/用户邮件也一并删除
#ls -ld /home/stu02
#userdel -r stu02
#ls -ld /home/stu02

使用id查询账号

  • id命令:Identity
    • 格式:id [选项]… 用户名
#id root

组账号基本操作

解析组账号文件
  • /etc/group:保存组账号的基本信息
    • 每个组记录一行,以:分割为4个字段
      – 1、组账号的名称
      – 2、密码占位符
      – 3、组账号的GID号
      – 4、本组的成员用户列表
#head -1 /etc/group(获取组账号文件中的第一行数据)
  • /etc/gshadow:保存组账号的管理信息

    • 每个组记录一行,以:分割为4个字段
      – 1、组账号的名称
      – 2、加密后的密码字符串
      – 3、本组的管理员列表
      – 4、本组的成员用户列表
  • groupadd 添加组账号

    • groupadd命令
    • 格式:groupadd [-g GID] 组名
#groupadd -g 600 stugrp
#grep stugrp /etc/group /etc/gshadow
  • gpasswd 管理组成员
    • gpasswd命令
    • 格式:gpasswd [选项]… 组名
    • 常用命令选项
      – -A:定义组管理员列表
      – -a:添加组成员,每次只能加一个
      – -d:删除组成员,每次只能删一个
      – -M:定义组成员用户列表,可设置多个
示例代码:
#gpasswd -A stu01 stugrp
#grep stugrp /etc/gshadow

#gpasswd -M restart1025,stu01,sys01 stugrp
#grep stugrp /etc/gshadow

#gpasswd -d sys01 stugrp
#grep stugrp /etc/gshadow
  • groupdel 删除组
    • groupdel命令
    • 格式:groupdel 组名
    • 删除的目标组不能是用户的基本组
#grep stugrp /etc/group
#groupdel stugrp
#grep stugrp /etc/group
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值