用户,组和权限管理 基础命令整理

安全3A任何一个安全策略都应该有Authentication(认证)、Authentication(授权)、Accouting|Audition(审计)这三个措施。

用户(User)Linux用户是安全3A中的Authentication(认证)措施。用户在登录时,系统会检查用户输入的用户名和密码。如果用户输入的用户名和密码匹配,会根据用户信息给用户分配一个令牌token;如果用户输入的用户名和密码不匹配,直接拒绝用户登录。

用户类型      人识别用户是靠用户名,识别用户是靠UID

管理员: root用户,UID为0。
普通用户: UID范围1-65535。

  • 系统用户: 用于对守护进程获取资源进行权限分配。Centos6系统的UID范围1-499,Centos7系统的UID范围1-1000。
  • 登录用户: 用于用户的交互式登录。Centos6系统的UID范围500-65536,Centos7系统的UID范围1000-65535。

组(Group)Linux组是用户权限分配的容器,同一个组内的用户都能够获得这个组拥有的权限。

站在系统管理的角度

管理员组: root用户组,GID为0。                 普通用户组: UID范围1-65535。

  • 系统用户: Centos6系统的GID范围1-499,Centos7系统的GID范围1-1000。
  • 登录用户: Centos6系统的GID范围500-65536,Centos7系统的GID范围1000-65535。

站在用户的角度

主要组(主组):

  • 用户必须属于一个主组,且只能有一个
  • 组名和用户名同名,且该组成员只有用户一个,那么这个组是用户的私有组

附加组(辅助组): 一个用户可以属于零个或多个辅助组

进程的安全上下文

进程的安全上下文是保障系统运行安全的一个非常重要的技术

进程是运行中的程序。每个进程都必须以一个特定的用户身份运行,即进程是有属主的。当用户运行一个程序时,这个程序运行起来的进程的属主就是该用户。以进程访问系统上的文件为例: 系统检查进程的属主是不是这个文件的属主,如果是,进程以文件的属主权限访问该文件;否则,系统再检查进程的属主所在的组里(包括附加组)有没有该文件的属组,如果有,进程以文件的属组权限访问该文件;如果没有,进程以文件的其他者的权限访问该文件。

用户相关的文件

/etc/passwd——存放用户及其属性信息

name : password : UID : GID : GECOS : directory : shell

  • name: 用户登录名
  • password: 早期用来存放用户加密过后的密码
  • UID: 用户的身份编号
  • GID: 用户的主组编号
  • GECOS: 用户的全名或注释
  • directory: 用户的家目录
  • shell: 用户默认使用的登录shell

/etc/shadow ——存放用户密码及其相关属性

name : password : last change : minimum age : maximum age : warning period : inactivity period : expiration date : reserved field

  • name: 用户的登录名
  • password: 用户密码。centos5采用md5加密方法,centos6/7采用sha512加密方法。
  • last change: 密码上一次修改距1970.1.1所经过的天数
  • minimum age: 密码的最短使用天数,(0表示密码可随时变更)
  • maximum age: 密码的最长使用天数,(9999表示密码永不过期)
  • warning period: 密码的警告期限,用户登录时提示用户修改密码
  • inactivity period: 非活动期限,用户密码过期超过此时间将被禁用
  • expiration date: 从1970.1.1开始算,超过此时间帐号失效

组相关配置文件

/etc/group ——存放用户组及其相关属性信息

group_name : password : GID : user_list

  • group_name: 组名
  • password: 组密码, 组密码通常是记录在/etc/gshadow文件中
  • GID: 组ID
  • user_list: 以当前组为附加组的用户列表(以逗号分隔)

gshadow ——用户组的shadow文件

group_name : encrypted_password : administrators : members

  • group_name: 组名
  • encrypted_password: 加密过后的密码
  • administrators: 组管理员密码
  • user_list: 以当前组为附加组的用户列表(以逗号分隔)

用户管理相关命令

useradd 创建用户并设置相关属性

useradd [options] LOGIN

  • -c, –comment COMMENT: 用户的注释信息
  • -d, –home-dir HOME_DIR: 指定用户家目录。家目录中的内容默认是从/etc/skel复制过去的,当用户家目录已经存在时不会复制。
  • -e, –expiredate EXPIRE_DATE: 指定用户过期时间(格式: YYYY-MM-DD)
  • -f, –inactive INACTIVE: 指定账户的非活动期限
  • -g, –gid GROUP: 指定用户的基本组id或组名。
  • -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 指定用户的附加组,多个用, 逗号分隔
  • -s, –shell SHELL: 指定用户的默认shell
  • -o, –non-unique: Allow the creation of a user account with a duplicate (non-unique)UID。This option is only valid in combination with the -u option。
  • -u, –uid UID: 指定用户的UID
  • -r: 创建系统用户
  • -D: 列出/改变创建用户的默认值, useradd创建用户的默认值存储在/etc/default/useradd和/etc/login.defs文件中
  • usermod 用户属性修改

    usermod [OPTION] login

    • -a, –append: 配合-G选项给用户添加附加组
    • -u, –uid UID: 修改用户的UID
    • -g, –gid GROUP: 修改用户的基本组ID
    • -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 修改用户的附加组列表,常配合-a选项给用户添加附加组
    • -s, –shell SHELL: 修改用户的默认登录shell
    • -c, –comment COMMENT: 修改用户的注释信息
    • -d, –home HOME_DIR: 修改用户的家目录,配合-m选项移动或重命名用户的家目录
    • -l, –login NEW_LOGIN: 修改用户的登录名
    • -L, –lock: 锁定用户,在/etc/shadow 密码栏的增加 !
    • -U, –unlock: 解锁用户,将 /etc/shadow 密码栏的 ! 拿掉
    • -e, –expiredate EXPIRE_DATE: 修改用户的过期时间(格式: YYYY-MM-DD)
    • -f, –inactive INACTIVE: 修改用户的非活动期限
    • -o, –non-unique: When used with the -u option, this option allows to change the user ID to a non-unique value
    • userdel 删除用户
    • 用户已经登录时无法删除

      userdel [options] LOGIN

      • -r, –remove: 删除用户、用户家目录和用户邮箱
      • id 查看用户的相关信息

        当id命令后面不跟用户时显示当前登录用户的相关信息

        id [OPTION]… [USER]

        • -g, –group: 只显示用户的基本组ID
        • -G, –groups: 只显示用户所有的附加组ID, 用空格分割
        • -u, –user: 只显示用户的UID
        • -n, –name: 使用名称代替数字ID信息

      su 切换用户或以其他用户身份执行命令

      切换用户的方式:

      • su UserName:非登录式切换,即不会读取目标用户的 配置文件,不改变当前工作目录
      • su – UserName:登录式切换,会读取目标用户的配置 文件,切换至家目录,完全切换
        root su至其他用户无须密码;非root用户切换时需要密码

      su [options…] [-] [user [args…]]

      • -l: 相当于su – user
      • -c: 换个身份执行命令

    passwd 修改用户密码和密码相关属性信息

    passwd [OPTIONS] [UserName] (不指定UserName是修改自己的密码,只有root用户才能指定UserName)

    • -l, –lock: 锁定指定用户
    • -u, –unlock: 解锁指定用户
    • -e, –expire: 强制用户在下一次登录必须更改密码
    • -n, –minimum DAYS: 修改指定用户密码的最短使用期限
    • -x, –maximum DAYS: 修改指定用户密码的最长使用期限
    • -w, –warning DAYS: 修改指定用户密码的警告期限
    • -i, –inactive DAYS: 修改指定用户密码的非活动期限
    • –stdin: 从标准输入接收用户密码

    chage 设置用户密码策略

    chage [OPTION]… LOGIN

    • -d, –lastday LAST_DAY: 设置指定用户密码上一次修改时间(格式: YYYY-MM-DD)
    • -E, –expiredate EXPIRE_DAT: 设置指定用户的过期时间(格式: YYYY-MM-DD)
    • -I, –inactive INACTIVE: 设置指定用户密码的非活动期限
    • -m, –mindays MIN_DAYS: 设置指定用户密码的最短使用期
    • -M, –maxdays MAX_DAYS: 设置指定用户密码的最长使用期
    • -W, –warndays WARN_DAYS: 设置用户密码的警告期限
    • -l, –list: 显示指定用户的密码策略

    用户管理的其他命令

    • chfn-69806: 修改用户的注释信息
    • chsh: 修改用户使用的默认shell
    • finger: 查看用户的注释信息

    组管理相关命令

    groupadd 创建组并指定相关信息

    groupadd [options] group

    • -g, –gid GID: 创建用户组并指定其组id
    • -r, –s

      groupmod 修改组信息

      groupmod [options] GROUP

      • -g, –gid GID: 修改指定用户组的GID
      • -n, –new-name NEW_GROUP: 指定组的组名

    groupdel 删除组

    如果某个用户以这个组为主组,那么这个组将无法被删除

    gpasswd 更改组密码和组的成员信息

    gpasswd [option] GROUP gpasswd命令后面不跟选项直接跟组名是修改指定组的密码

    • -a, –add USER: 将指定用户添加到组里面
    • -d, –delete user: 将指定用户从组中删除
    • -A, –administrators user,…: 设置该组的管理员列表, 多个用逗号隔开

    groupmems 查看或管理组中成员

    groupmems [options] [action]

    Option:

    • -g, –group groupname: 指定需要查看或操作的对象

    action:

    • -a, –add username: 向指定组中添加用户
    • -d, –delete username: 删除组中的指定用户
    • -p, –purge: 清空指定组中的组中的所有用户
    • -l, –list: 查看指定组的所有用户

    groups 查看组信息

    newgrp 临时切换基本组

    当用户的基本组和附加组中已经包含了要切换的目标组,则用户使用newgrp切换基本组时不需要输入密码

    其他相关命令

    • vipw、vigr 编辑用户和组相关文件,带语法检查功能
    • pwck、grpck 检查用户和组相关文件。
    • openssl rand -base64 20 生成20位的随机数
    • newuser FILE: 批量创建用户,要求FILE文件的格式和/etc/passwd文件的格式一样
    • cat passwd.txt | chpasswd: 批量更改用户密码,passwd.txt文件格式: Username: passwd

原创文章,作者:island,如若转载,请注明出处:http://www.178linux.com/69806

(0)
islandisland
上一篇 2017-03-16 16:27
下一篇 2017-03-16 19:54

相关推荐

  • Linux Cluster之LVS

    一、Linux Cluster 基础: Cluster:计算机集合为解决某个特定问题组合起来形成的单个系统 Linux Cluster类型: LB(Load Banlancing):负载均衡 HA(High Availability):高可用。提高服务可用性,避免出现单点故障 HP(High Performance):高性能 可用性衡量公式: A=MTBF/…

    2016-11-02
  • 文件处理工具系列(二):行编辑器sed

    1、sed介绍     sed(Stream EDitor),是一种行编辑工具,它一次处理一行内容。处理时,把当前匹配到的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令对这些数据做出相应的增删改查操作,处理完成后,默认输出至屏幕,而未被匹配到的行也将默认输出至屏幕。而原来的文件内容并没有发生改变,除…

    Linux干货 2016-08-11
  • Linux基础 & bash基础特性

    Q1:描述计算机的组成及其功能。 计算机的组成:运算器、控制器、存储设备、输入设备、输出设备。 运算器: 运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件。 存储设备: 计算机总是需要记录与读取数据的,而这些数据当然不可能每次都由用户经过键盘…

    Linux干货 2016-10-30
  • Bash的基础特性之命令执行状态返回值和命令行展开

    Bash的基础特性之命令的执行状态 Linux的命令执行结果状态有两种,分别为:1、成功2、失败bash使用特殊变量 $? 保存最近一条命令的执行状态结果使用echo $? 命令来查看命令执行状态返回值:0:成功1-255:失败 示例:         [root@localho…

    Linux干货 2016-11-04
  • 实战演练su命令与sudo服务

    su和su- 切换方式 实例: sudo 提权 sudo的特色功能 sudo命令的常用参数 注意 案例1——允许zhanghe用户执行所有命令: 案例2——仅允许linuxprobe用户以root用户身份执行cat命令。 案例3——允许linuxprobe用户以任意身份执行命令,且每次都不需要密码验证。 su命令与sudo服务 在工作生产环境中不要去使用ro…

    Linux干货 2016-09-05
  • 马哥教育网络班21期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@centos ~]# who | awk '{print $1 $NF}'| uniq -d root(192.168.40.1) derulo(19…

    Linux干货 2016-07-22