zoukankan      html  css  js  c++  java
  • 用户和组管理

    用户和组管理
        资源分派:
            Authentication:认证
            Authorization:授权
            Accouting:审计
                Audition
    
            token, identity(username/password)    
    
        Linux用户:Username/UID
            管理员:root, 0
            普通用户:1-65535
                系统用户:1-499, 1-999
                    对守护进程获取资源进行权限分配;
                登录用户:500+, 1000+
                    交互式登录;
    
        Linux组:Groupname/GID
            管理员组:root, 0
            普通组:
                系统组:1-499, 1-999
                普通组:500+, 1000+
    
        Linux安全上下文:
            运行中的程序:进程 (process)
    
                以进程发起者的身份运行:
                    root: cat
                    tom: cat
    
                进程所能够访问的所有资源的权限取决于进程的发起者的身份;
    
        Linux组的类别:
            用户的基本组(主组):
                组名同用户名,且仅包含一个用户:私有组
            用户的附加组(额外组):
    
        Linux用户和组相关的配置文件:
            /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
            /etc/group:组及其属性信息;
            /etc/shadow:用户密码及其相关属性;
            /etc/gshadow:组密码及其相关属性;
    
        /etc/passwd:
            name:password:UID:GID:GECOS:directory:shell
    
            用户名:密码:UID:GID:GECOS:主目录:默认shell
    
        /etc/group:
            group_name:password:GID:user_list
    
            组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
    
        /etc/shadow
            用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
    
                加密机制:
                    加密:明文--> 密文
                    解密:密文--> 明文
                    
                    单向加密:提取数据指纹
                        md5: message digest, 128bits
                        sha1: secure hash algorithm, 160bits
                        sha224: 224bits
                        sha256: 256bits
                        sha384: 384bits
                        sha512: 512bits
    
                        雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变;
                        定长输出:
    
                密码的复杂性策略:
                    1、使用数字、大写字母、小写字母及特殊字符中至少3种;
                    2、足够长;
                    3、使用随机密码;
                    4、定期更换;不要使用最近曾经使用过的密码;
    
                    
                /etc/passwd 解析:
    
                account ;账户名称
                passwd     :密码
                UID     :用户ID
                GID     :基本组ID
                GECOS     :用户注释信息
                directory :用户家目录
                shell    : 用户使用的shell
                
                        // 查看      cat /etc/shells 有哪些shell 
                /etc/shadow 解析:
                1.account : 用户名
                2.encrypted password :加密的密码,单向加密
                3.days since Jan 1, 1970 that password was last changed:1970.1.1 到最近一次修改密码的天数
                4.days before password may be changed:密码最短使用期限
                5.days after which password must be changed:密码最长使用期限
                6.days before password is to expire that user is warned:密码到期之前的几天,该用户被警告
                7.days after password expires that account is disabled:密码到期后的几天该帐户被禁用
                8.days since Jan 1, 1970 that account is disabled:账号有效期
                9.a reserved field: 一个保留字段
    
                    用户和组相关的管理命令:
            用户创建:useradd
                useradd [options] LOGIN
                    -u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
                    -g GID:指明用户所属基本组,可为组名,也可以GID;
                    -c "COMMENT":用户的注释信息;
                    -d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
                    -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
                    -G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
                    -r: 创建系统用户
                        CentOS 6: ID<500
                        CentOS 7: ID<1000
    

                -m -k :创建家目录,并且将/etc/skel 的文件copy 到家目录
                -M :不创建家目录

    // /etc/login.defs 指定了创建用户的默认期限

    
                默认值设定:/etc/default/useradd文件中
                    useradd -D 
                        -s SHELL
            useradd -u 22222 zy -g zy_home -c "IT"  -d /home/zy_home -s /bin/sh
    
        组创建:groupadd
            groupadd [OPTION]... group_name
    
                -g GID: 指明GID号;[GID_MIN, GID_MAX]
                -r: 创建系统组;
                    CentOS 6: ID<500
                    CentOS 7: ID<1000
    
        查看用户相关的ID信息:id
            id [OPTION]... [USER]
                -u: UID
                -g: GID
                -G: Groups
                -n: Name
    
        切换用户或以其他用户身份执行命令:su
            su [options...] [-] [user [args...]]
    
                切换用户的方式:
                    su UserName:非登录式切换,即不会读取目标用户的配置文件;
                    su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;
    
                    Note:root su至其他用户无须密码;非root用户切换时需要密码;
    
                换个身份执行命令:
                    su [-] UserName -c 'COMMAND'
    
                选项:
                    -l:“su -l UserName”相当于“su - UserName”
    
        用户属性修改:usermod
            usermod [OPTION] login
    
                -u UID: 新UID
                -g GID: 新基本组
                -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
                -s SHELL:新的默认SHELL;
                -c 'COMMENT':新的注释信息;
                -d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
                -l login_name: 新的名字;
    
                -L: lock指定用户
                -U: unlock指定用户
    
                -e YYYY-MM-DD: 指明用户账号过期日期;
                -f INACTIVE: 设定非活动期限;
             usermod zy -u 22223 -g jreey -c "IT_2"
    给用户添加密码:
    passwd passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限 passwd: 修改自己的密码; 常用选项: -l: 锁定指定用户 -u: 解锁指定用户 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天开始警告 -i inactivedays:非活动期限; --stdin:从标准输入接收用户密码; echo "PASSWORD" | passwd --stdin USERNAME Note: /dev/null, bit buckets /dev/zero, 删除用户:userdel userdel [OPTION]... login -r: 删除用户家目录; 组属性修改:groupmod groupmod [OPTION]... group -n group_name: 新名字 -g GID: 新的GID; 组删除:groupdel groupdel GROUP 组密码:gpasswd gpasswd [OPTION] GROUP -a user: 将user添加至指定组中; -d user: 删除用户user的以当前组为组名的附加组 -A user1,user2,...: 设置有管理权限的用户列表 newgrp命令:临时切换基本组; 如果用户本不属于此组,则需要组密码; 修改用户属性:chage chage [OPTION]... LOGIN -d LAST_DAY -E, --expiredate EXPIRE_DATE -I, --inactive INACTIVE -m, --mindays MIN_DAYS -M, --maxdays MAX_DAYS -W, --warndays WARN_DAYS 其它命令:chfn, chsh, finger 命令总结:useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn, finger 权限管理: 文件的权限主要针对三类对象进行定义: owner: 属主, u group: 属组, g other: 其他, o 每个文件针对每类访问者都定义了三种权限: r: Readable w: Writable x: eXcutable 文件: r: 可使用文件查看类工具获取其内容; w: 可修改其内容; x: 可以把此文件提请内核启动为一个进程; 目录: r: 可以使用ls查看此目录中文件列表; w: 可在此目录中创建文件,也可删除此目录中的文件; x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录; --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 例如: 640: rw-r----- rwxr-xr-x: 755 修改文件权限:chmod chmod [OPTION]... OCTAL-MODE FILE... -R: 递归修改权限 chmod [OPTION]... MODE[,MODE]... FILE... MODE: 修改一类用户的所有权限: u= g= o= ug= a= u=,g= 修改一类用户某位或某些位权限 u+ u- chmod [OPTION]... --reference=RFILE FILE... 参考RFILE文件的权限,将FILE的修改为同RFILE; 修改文件的属主和属组: 仅root可用; 修改文件的属主:chown chown [OPTION]... [OWNER][:[GROUP]] FILE... 用法: OWNER OWNER:GROUP :GROUP Note: 命令中的冒号可用.替换; -R: 递归 chown [OPTION]... --reference=RFILE FILE... 修改文件的属组:chgrp chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... -R 文件或目录创建时的遮罩码:umask FILE: 666-umask Note: 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1 DIR: 777-umask umask: 查看 umask #: 设定
          权限 644       -rw-r--r--. 1 zy jreey 0 3月  14 22:58 ee       

    bash 的配置文件:
    全局配置:
    /etc/profile, /etc/profile.d/*.sh, /etc/bashrc

    个人配置
    ~/.bash_profile, ~/.bashrc


    分析:
    profile 类的文件:
    设定环境变量
    运行命令或脚本


    bashrc 类的文件:
    设定本地变量
    定义命令别名

    登录式shell 读取配置文件:
    /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc


    非登录式shell 读取配置文件:
    ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh


    echo "Hello . welcome my system `date`."



    profile设定环境变量
    /etc/profile /etc/profile.d/*.sh . bash_profile

    
    
    
  • 相关阅读:
    文件操作相关utils
    读取excel工具utils
    下载EXCEL文件Utils
    日期操作utils
    常用的utils
    坐标系转换Utils
    C# vs2019 CS0006 编译器错误CS1704
    C# 控制台形式 owin 添加WebApi 和Swagger
    Windows 下 Redis服务自动停止 处理
    Dotfuscator 混淆C# .Net代码 netcore
  • 原文地址:https://www.cnblogs.com/zy09/p/10531390.html
Copyright © 2011-2022 走看看