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

来源:互联网 发布:淄博恒久网络 编辑:程序博客网 时间:2024/06/01 09:11

基于账号的访问控制

  • 基于账户身份对资源访问进行控制
    • 账户类别:用户账户、组账户
    • 识别方式: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
阅读全文
0 0
原创粉丝点击