Linux用户及权限管理

Linux用户,组以及权限管理

基础概念和工作机制:

  1. 安全3A
    资源分派
    Authentication 认证
    Authorization 授权
    Accouting,Audition 审计
    用户user ,用户有令牌 token, identity ,组:用户组,用户容
    Linux中有存放用户名和密码的数据库,用户名和成对的密码判定用
    是否登录成功。每个用户登录时都在数据库里验证用户名和密码是否正确,如果正确会颁发令牌,当用户访问文件时会提交令牌给资源,资源根据提交的令牌判断用户是否有权限访问此文件,用户要想得到最新令牌必须重新登录。
  2. Linux上的用户即Username/UID分为以下类别:
    管理员:root,0
    普通用户:1-65535
    普通用户分为:系统用户和登录用户:
    系统用户:1-499(Centos6) 1-999(Centos7)对守护进程获取资源进行权限分配。
    登录用户:500+(Centos6) 1000+(Centos7)通过交互式方式登录。
  3. Linux组:Groupname/GID
    管理员组:root,0
    普通组:1-65535
    普通组又分为系统组和非系统组,非系统组又叫做普通组
    系统组:1-499(Centos6),1-999(Centos7)
    非系统组:500+(Centos6),1000+(Centos7)
    :对于一个用户而言可以有多个不同的组,分别称之为用户的基本组(主组)和附加组;基本组组名和用户名相同,且仅包含一个用户,也叫做私有组。基本组以外的组属于用户的附件组(或者额外组 )

linux用户和组相关配置文件:

  1. /etc/passwd:名称解析库,该文件通过名称解析记录了用户及其属性信息
    通过whatis passwd来查看其对应的配置文件的帮助信息
    name:password:UID:GID:GECOS:directory:shell
    用户名:密码:UID:GID:详细说明:用户的家目录:默认shell
  2. /etc/group:组及其属性信息:
    group_name:password:GID:user_list
    组名:组密码:组ID:以当前组为附件组的用户列表(如有多个,用逗号隔开)
  3. /etc/shadow:用户密码及其相关属性(9个字段)
    login name:用户名
    encrypted password:加了密的密码
    date of last password change:最近一次修改密码的日期:从1970年1月1日起到密码最近一次被修改的时间 值为0第一次登录必须修改密码
    minimum password age: 密码的最小使用期限:密码必须使用多长时间 值为0随时更改
    maximum password age:密码的最大使用期限:密码可以使用多长时间(密码有效期),使用多少天后必须更改 99999永久有效
    password warning period:密码的警告时间段:密码过期前几天提醒用户
    password inactivity period:密码禁用期:密码过期后还可以使用几天
    account expiration date:账户的过期日期:从1970年1月1日算起,多少天后帐号失效
    reserved field:预留
  4. 密码的加密解密机制:
    加密:明文-->密文
    解密:密文-->明文
    对称加密:加密和解密使用同一密码
    非对称加密:加密和解密使用同一对密钥,密钥对:公钥,私钥
    单向加密:只能加密,不能解密,提取数据特征码,相同算法定长输出,获得密文不可逆推出原始数据
    雪崩效应:初始条件的微小改变,引起结果巨大改变

        密码用策略:
            使用随机密码
              最短长度不要低于8位
              应该使用大写字母,小写字母,数字和标点符号四类字符中至少三类
              定期更换
        算法:md5,sha1,sha224,sha256,sha384,sha512

    用户和组的相关命令:
    1.groupadd:添加组 groupadd [options] group
    -g GID:手动指定GID,默认是上一个组的GID+1
    -r:创建系统组
    安全上下文:进程以发起者的身份进行,进程对文件的访问权限,取决于发起此进程的用户权限
    2.groupmod:修改组属性:groupmod [options] GROUP
    -g GID:修改组ID
    -n name:修改组名
    3.groupdel:删除组 groupdel [options] GROUP
    4.useradd:创建用户 useradd [options] LOGIN
    -u,UID,指定uid
    -g ,GROUP,指定基本组id,此组得事先存在
    -G ,为用户指定附加组
    -c,指明注释信息
    -d:指明用户家目录:通过复制/etc/skel此目录并重命名实现,指定的家路径,如果事先存在,则不会为用户复制环境配置文件
    [root@localhostCentos7 etc]# ls -al skel/
    total 24
    drwxr-xr-x. 3 root root 78 Aug 1 2018 .
    drwxr-xr-x. 141 root root 8192 Jul 3 21:24 ..
    -rw-r--r--. 1 root root 18 Aug 3 2017 .bash_logout
    -rw-r--r--. 1 root root 193 Aug 3 2017 .bash_profile
    -rw-r--r--. 1 root root 231 Aug 3 2017 .bashrc
    drwxr-xr-x. 4 root root 39 Aug 1 2018 .mozilla
    -s,--shell,指明用户默认shell,可用shell列表(/etc/shells):
    [root@localhostCentos7 etc]# cat shells
    /bin/sh
    /bin/bash
    /sbin/nologin
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh
    -r,--system:创建系统用户
    -D:显示创建用户的默认配置:
    [root@localhostCentos7 etc]# useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    useradd -D [options]:修改默认值
    注:创建用户时诸多默认设定配置文件/etc/login.defs,修改结果保存于/etc/default/useradd文件中
    5.usermod:修改用户属性:usermod [options] LOGIN
    -u UID:修改用户的ID
    -g GROUP:修改用户所属的基本组
    -G,:修改用户所属的附加组,原来的附加组会被覆盖
    -a,与-G一同使用,用于为用户追加新的附件组
    -c:修改注释信息
    -d:修改用户的家目录,用户原来的文件不会被转移至新的家目录,若要移动,则要同时使用-m选项
    -l,--login:修改用户名
    -s,--shell:修改用户的默认shell
    -L,--lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”
    -U,--unlock,解锁用户密码
    6.userdel:用户删除用户:userdel [options] LOGIN
    -r:删除用户家目录
    7.passwd:修改用户自己的密码
    passwd USERNAME:修改指定用户密码,仅root有权限
    -L:锁定用户
    -U:解锁用户
    -d:清除用户密码
    -e:过期期限,日期DATE
    -i:非活动期限,DAYS
    -n:密码的最短使用期限
    -x:密码的最长使用期限
    -w:密码的警告期限
    --studin:标准输入
    echo "password" | password --studin root &> /dev/null
    8.gpasswd:用户切换基本组
    gpasswd [option] group
    -a user:将user添加指定组中
    -d user:将user从指定组中国删除
    -A userlist:设置有组管理权限的用户列表
    9.newgrp:临时切换基本组:
    如果用户本不属于此组,则需要组的密码
    10.chage:修改用户密码属性
    chage [options] LOGIN
    -d LAST_DAY:修改用户最近一次修改密码的时间
    -I INACTIVE:修改用户的非活动期限

    11.id:显示用户真实和有效ID
    -u:仅显示有效的UID
    -g:仅显示用户的基本组ID
    -G:仅显示用户所属的所有组的ID
    -n:显示名字而非ID
    12.su:switch user
    登录式切换:会通重新读取用户的配置文件来重新初始化
    非登录式切换:不会读取目标用户配置文件进行初始化
    登录式切换: su -, -l, --login
    非登录式切换:su
    注:管理员可无密码切换其他任何用户
    -c "COMMAND":仅以指定用户的身份运行此处命令
    文件权限管理:

    1. 权限表示方法:
      rwxrwxrwx:
      左三位:定义ower权限,
      中三位:定义group权限,
      左三位:定义other权限
      进程运行上下文:进程对文件的访问权限应用模型
      进程的属主与文件的属主是否相同,如果相同则应用属主权限,否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限,否则就只能应用other权限
      权限:r:read读,w:write写,x:excute执行

          文件:r:可获取文件的数据
                       w:可修改文件的数据
                       x:可将此文件运行为进程
          目录:r:可使用ls命令获取其下的所有文件列表
                     w:可修改此目录下的文件列表,即创建或删除文件
                     x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息
      
              权限、二进制表示、八进制表示对应的表示方法:
                      ---:000     0
                      --x:001     1
                      -w-:010    2
                      -wr:011    3
                      r--:100     4
                      r-x:101     5
                      rw-:110    6
                      rwx:111    7

      2.文件权限修改命令:
      chmod:文件权限修改:
      chmod [OPTION]... MODE[,MODE]... FILE...
      chmod [OPTION]... OCTAL-MODE FILE...
      -R:表示递归
      MODE:
      修改一类用户的所有权限:u=,g=,o=,ug=,a=
      修改一类用户的某位或某些位权限:u+,u-
      chmod [OPTION]... --reference=RFILE FILE...
      参考RFILE文件的权限,将FILE的修改为同RFILE的权限

    文件的属主和属组修改:chown,chgrp:
    注:文件的属主属组仅root可以使用
    修改文件的属主:chown
    chown [OPTION]... [OWNER][:[GROUP]] FILE...有三种表示方法:
    (1)OWNER:只修改属主
    (2)OWNER,GROUP修改属主和属组
    (3)GROUP:只修改属组
    修改文件的属组:chgrp
    -R:递归
    文件或目录创建时的遮罩码:umask
    所谓遮罩码是指在创建一个文件或目录时的默认权限:
    文件:666-umask
    注:之所以文件是666,是因为表示文件默认不能拥有执行权限,如果减得的结果存在x权限,则需要+1
    目录:777-umask
    umask命令:
    umask:查看umask
    umask UMASK:设定umask的值
    注:此类设置仅对当前shell进程有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章