zoukankan      html  css  js  c++  java
  • 用户及权限管理

     71 
     72 用户,组合权限管理
     73     
     74     multi-tasks,multi-users
     75 
     76     每个使用者:
     77         用户标识,密码;
     78 
     79     组:用户组,用户容器;
     80 
     81     用户类别:
     82         管理root
     83         普通用户:
     84             系统用户
     85             登入用户
     86 
     87         用户标识:userID,UID
     88             16bits二进制数字:0-65535
     89                 管理员:0
     90                 普通用户:1-65635
     91                     系统用户:1-499(centos6),1-999(centos7)
     92                     登入用户:500-60000(centos6),1000-60000(centos7)
     93 
     94             名称解析:名称转换
     95                 username <-> UID
     96                 根据名称解析库进行: /etc/passwd
     97     组:    
     98         组类别1:
     99             管理员组
    100             普通用户组
    101                 系统组
    102                 登入组
    103             组标识:GroupID,GID
    104                 管理员组:0
    105                 普通用户:1-65635
    106                     系统用户:1-499(centos6),1-999(centos7)
    107                     登入用户:500-60000(centos6),1000-60000(centos7)
    108             名称解析:groupname <-> gid
    109                 解析库: /etc/group
    110         组类别2:
    111             用户的主/基本组
    112             用户的附加组
    113         组类别3:
    114             私有组:组名同用户名,且包含一个用户;
    115             公共组:组内包含了多个用户;
    116     认证信息:
    117         通过比对事先存储的与登录是提供的信是否一致;
    118         password:
    119             /etc/shadow
    120             /etc/gshadow
    121         密码使用策略:
    122             1.使用随机密码
    123             2.最短长度不要低于8位
    124             3.应该使用大小字母,数字和标点符号混合密码
    125             4.定期更换
    126         加密算法:    md5,sha
    127             对此加密:加密和解密使用一个密码
    128             非对称加密:加密和解密所有的一对儿密钥
    129                 密钥对儿:公钥,私钥;
    130             单向加密:只能加密,不能解密;提取数据特征码;
    131                 定长输出;雪崩效应;
    132 
    133     /etc/passwd: 用户的信息库
    134         name:passwd:UID:GID:GECOS:directory:shell
    135 
    136         name: 用户名
    137         password:可以是加密的密码,也可是占位符x
    138         UID: 用户ID,用来标识每个用户的唯一标示符
    139         GID: 组ID,用来标识用户组的唯一标识符
    140         GECOS:
    141         directory:
    142         shell:
    143 
    144     /etc/shadow : 用户密码信息
    145     用户名:加密的密码:最近一次修改密码时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
    146 
    147     /etc/group : 组的信息库
    148         group_name:password:GID:user_list
    149             user_list:该组的用户成员;以此组为附加组的用户的用户列表;
    150 
    151 相关命令:useradd,userdel,usermod,passwd,groupadd,groupdel,groupmod,gpasswd,chage,chsh,id,su
    152 
    153 groupadd: 创建组
    154      groupadd [options] group
    155          -g GID:指定GID;默认是上一个组的GID+1;
    156          -r : 创建系统组;
    157 groupdel: 删除组
    158 groupmod:修改组属性
    159     -g GID: 修改GID
    160     -n new_name: 修改组名;
    161 
    162 useradd:创建用户
    163     useradd [options] LOGIN
    164         -u,--uid UID :指定UID;
    165         -g,--gid GROUP: 指定基本组ID,此组得事先存在;
    166         -G,--group GROUP1[,GROUP2,...[,GROUPN]]] : 指定用户所属组得附加组,多个组用逗号分隔;
    167         -c, --comment COMMENT : 指明注释信息;
    168         -d, --home HOME_DIR : 指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
    169         -s, --shell SHELL : 指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
    170         -r, --system : 创建系统用户;
    171         -M, --no-create-home: 不用创建用户的家目录;
    172     注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
    173 
    174     useradd -D : 显示创建用户的默认配置;
    175     useradd -D 选项 : 修改默认选项的值;
    176         修改结果保存于/etc/default/useradd文件中;
    177 
    178 usermod命令: 修改用户属性
    179     usermod [选项] 登录
    180         -u,--uid UID : 修改用户的ID为此处指定的新UID;
    181         -g,--gid GROUP: 修改用户所属的基本组;
    182         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]] :修改用户所属的附加组;原来的附加组会被覆盖;
    183         -a,append : 与-G一同使用,用于为用户追加新的附加组;
    184         -c, --comment COMMENT : 修改注释信息;
    185         -d, --home HOME_DIR : 修改用户的家目录; 用户原有的文件不会被转移至新位置;
    186         -m,--move-home : 只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
    187         -l,--login NEW_login:修改用户名;
    188         -s,--shell SHELL : 修改用户的默认shell;
    189         -L,--lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
    190         -U,--unlock : 解锁用户的密码;
    191 userdel命令: 删除用户
    192     userdel [option] 登录
    193         -r:删除用户时一并删除其家目录;
    194         例如:
    195         userdel linuxde       //删除用户linuxde,但不删除其家目录及文件;
    196         userdel -r linuxde    //删除用户linuxde,其家目录及文件一并删除
    197 
    198 实操:
    199     1.创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(gid为5000)和peguin(gid为5001);
    200         groupadd distro -g 5000
    201         groupadd peguin -g 5001
    202         useradd gentoo -u 4001 -G distro,peguin
    203     2.创建用户fedro,其注释信息为fedoro core,默认shell为/bin/tsch;
    204         useradd fedro -c "fedoro core" -s /bin/tsch
    205     3.修改gentoo用户的家目录为/var/tmp/gentoo:要求其原有文件仍能被用户访问;
    206         usermod -d /var/tmp/gentoo -m gentoo
    207     4.为gentoo新增附加组netadmin;
    208         usermod  -a -G netadmin gentoo
    209 
    210 passwd命令:
    211     passwd  [-k]  [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn‐
    212        days] [-i inactivedays] [-S] [--stdin] [username]
    213 
    214        (1) passwd : 修改用户自己的密码;
    215        (2) passwd username : 修改指定用户的密码,但仅root有此权限;
    216                -l,-u : 锁定和解锁用户;
    217                -d : 清除用户密码串;
    218                -e date : 过期期限,日期;
    219                -i days :非活动期限;
    220                -n days : 密码的最短使用期限;
    221                -x days : 密码的最长使用期限;
    222                -w days : 警告期限;
    223 
    224                --stdin: 
    225                    用法:echo "password" | passwd --stdin username
    226 gpasswd命令:
    227     组密码文件: /etc/gshadow
    228 
    229     gpasswd [选项] group
    230         -a usename : 向组中添加用户
    231         -d usename : 从组中移除用户
    232 
    233 newgrp命令: 临时切换指定的组为基本组;
    234     newgrp [-] [group] 
    235      -: 会模拟用户重新登录以实现重新初始化其工作环境;
    236 
    237 chage命令:更改用户密码过期信息
    238     chage [option] 登录名
    239         -d
    240         -E
    241         -w
    242         -m
    243         -M
    244 
    245 id命令: 显示用户真实和有效id;
    246     id [OPTION]... [USER]
    247         -u : 仅显示有效的uid
    248         -g : 仅显示用户的基本组id
    249         -G : 仅显示用户所属的所有组的id;
    250         -n : 显示名字而非id;
    251 
    252 su命令: switch user
    253      登录式切换: 会通过读取目标用户的配置文件来重新初始化
    254          su -, -l, --login username
    255      非登录式切换:不会读取目标用户的配置文件进行初始化
    256          su username
    257          注意:管理员可无密码切换至其他任何用户;
    258 
    259      -c 'cmd' : 仅以指定用户的身份运行此处指定的命令;
    260 
    261 其他几个不常用命令:chsh chfn finger whoami
    262 命令总结:groupadd,groupdel,groupmod,useradd,usermod,userdel,passwd,gpasswd,newgrp,id,su,chage
    263 
    264 
    265 权限管理:
    266      ls -l ,ll
    267          rwxrwxrwx:
    268              左三位: 定义user(owner)的权限
    269              中三位: 定义group的权限
    270              右三位: 定义other的权限
    271 
    272     进程安全上下文:
    273         进程对文件的访问权限应用模型:
    274             进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
    275             否则,则检查进程的属主是否属于文件的属组;如果是则应用属组权限;
    276             否则,就只能应用other的权限;
    277     权限:
    278         r: readable,读
    279         w: writable,写
    280         x: excutable,执行
    281 
    282         文件:
    283             r:可获取文件的数据;
    284             w:可修改文件的数据;
    285             x:可将此文件运行为进程;
    286         目录:
    287             r:可使用ls命令获取其下的所有文件列表;
    288             w:可修改此目录下的文件列表;即创建或删除文件;
    289             x:可cd至此目录,且可使用ll 来获取所有文件的详细信息;
    290 
    291 权限管理命令:
    292     chmod命令:
    293         chmod [OPTION]... MODE[,MODE]... FILE...
    294            chmod [OPTION]... OCTAL-MODE FILE...
    295            chmod [OPTION]... --reference=RFILE FILE...
    296 
    297            三类用户:
    298                u:属主
    299                g:属组
    300                o:其他
    301                a:所有
    302 
    303         (1) chmod [OPTION]... MODE[,MODE]... FILE...
    304                mode表示法:
    305                    赋权表示法:直接操作一类用户的所有权限位rwx;
    306                        u=
    307                        g=
    308                        o=
    309                        a=
    310                    授权表示法:直接操作一类用户的一个权限位r,w,x;
    311                        u+,u-
    312                        g+,g-
    313                        o+,o-
    314                        a+,a-
    315            (3) chmod [OPTION]... --reference=RFILE FILE...
    316                    引用某个文件RFILE的权限,修改为file的权限;
    317 
    318            选项:
    319                -R,--recursive: 递归修改;
    320 
    321 从属关系管理命令:chown,chgrp
    322     chown命令:
    323         chown [OPTION]... [OWNER][:[GROUP]] FILE...
    324            chown [OPTION]... --reference=RFILE FILE...
    325 
    326            选项:
    327                -R: 递归修改
    328 
    329     chgrp命令:
    330         chgrp [OPTION]... GROUP FILE...
    331            chgrp [OPTION]... --reference=RFILE FILE...
    332 
    333 思考: 用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?
    334 
    335 umask: 文件的的权限反向掩码,遮掩码;
    336     文件: 
    337         666-umask
    338     目录:
    339         777-umask
    340 
    341     注意: 之所以文件用666去减,表示文件默认不能拥有执行权限;
    342         umask: 023  默认022
    343             666-023=643+1=644
    344             777-023=754
    345 
    346     umask命令:
    347         umask: 查看当前umask
    348         umask MASK: 设置umask
    349 
    350     注意:此类设定仅对当前shell进程有效(通过命令进行的都是仅对当前shell有效);
    351 
    352 实操:
    353     1.新建系统组mariadb,新建系统用户mariadb,属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看命令提示符;
    354         useradd -M -r -s /sbin/nologin mariadb
    355     2.新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;
    356         groupadd -g 5000 mageedu
    357         useradd -d /users/gentoo gentoo
    358         echo gentoo | passwd --stdin gentoo
    359     3.新建用户fedora,其家目录为/users/www;密码同用户名;
    360         useradd -d /users/www fedora
    361         echo gentoo | passwd --stdin fedora
    362     4.新建用户www,其家目录为/users/www;删除www用户,但保留其家目录;
    363         useradd -d /users/www www
    364         userdel www
    365     5.为用户gentoo和fedora增附加组megeedu;
    366         groupmod mageedu
    367         usermod -G megeedu gentoo
    368         usermod -G megeedu fedora
    369     6.复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限;
    370         cp /var/log /tmp/ 
    371         chown -R :mageedu /tmp/log
    372         chmod g+w /tmp/log
    373 
    374 install命令:
    375         单源复制:
    376             install [OPTION]... [-T] SOURCE DEST
    377           多源复制:
    378               install [OPTION]... SOURCE... DIRECTORY
    379               install [OPTION]... -t DIRECTORY SOURCE...
    380           创建目录:
    381               install [OPTION]... -d DIRECTORY...
    382 
    383           常用选项:
    384               -m,--mode=MODE : 设定目标文件权限,默认为755;
    385               -o,--owner=OWNER: 设定目标文件属主;
    386               -g,--group=GROUP: 设定目标文件属组;
    387 
    388 mktemp命令:
    389     NAME
    390        mktemp - create a temporary file or directory
    391 
    392     SYNOPSIS
    393            mktemp [OPTION]... [TEMPLATE]
    394 
    395     例如:         
    396         myfile=$(mktemp /tmp/mytmp.xxx)
    397     常用选项:
    398         -d: 创建临时目录
    399 
    400     注意:mktemp会创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;
     
     
    
    Linux系统上的特殊权限
    
    	特殊权限: SUID,SGID,STICKY
    
    	安全上下文:
    		1.进程以某一户的身份运行;进程是发起此进程的用户的代理,因此以此用户的身份和权限完成所有操作;
    		2.权限匹配模型:
    			(1)判断进程的属主是否为被访问文件的属主,如果是,则应用属主的权限;否则,进入第2步;
    			(2)判断进程的属主是否属于被访问的文件的属组,如果是,则应用属组的权限;否则,进入第3步;
    			(3)应用其他权限;
    	SUID:
    		默认情况下:用户发起的进程,其属主是发起者。因此,进程以发起者的身份在运行
    		
    		SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那么此程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主
    
    		管理文件的SUID权限:
    			设置SUID:chmod u+s FileName
    			取消SUID:chmod u-s FileName
    			
    			展示位置:属主的执行权限位
    				如果属主原本有执行权限,显示为小写s
    				如果属主原本没有执行权限,显示为大写S
    	SGID:
    		功用:当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组;
    
    		管理文件sgid权限:
    			chmod g+ | -s file...
    
    		展示位置:属主的执行权限位
    				如果属组原本有执行权限,显示为小写s
    				如果属组原本没有执行权限,显示为大写S
    	STICKY:
    		功用:对于属组或全局可写的二目录,组内的所有用户或系统上的所有用户对此目录中都能创建新文件或删除所有的已有文件;如果为此类目录设置sticky权限,则每个用户能创建新文件,且只能删除自己的文件;
    
    		管理文件sticky权限:
    			chmod o+ | -t file...
    
    		展示位置:属主的执行权限位
    				如果属组原本有执行权限,显示为小写s
    				如果属组原本没有执行权限,显示为大写S
    
    	系统上的/tmp和/var/tmp目录默认均有sticky权限;
    
    管理特殊权限的另一种方式:
    	suid sgid sticky  	八进制权限
    				0 0 0 	0
    				0 0 1 	1
    				0 1 0 	2
    				0 1 1   3
    				1 0 0   4
    				1 0 1	5
    				1 1 0   6
    				1 1 1   7
    	基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字;
    		例如:
    			chmod 1777
    
    facl: file access control lists
    	
    	文件的额外赋权机制:
    		在原来的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的赋权机制;
    
    	getfacl命令:
    		getfacl file
    			user:username:mode
    			group:groupname:mode
    	setfacl命令:
    		赋权给用户:
    			setfacl -m u:username:mode file...
    		赋权给组:
    			setfacl -m g:groupname:mode file...
    		撤销赋权:
    			setfacl -x u:username file...
    			setfacl -x g:groupname file...
    

      

      

  • 相关阅读:
    nacos安装配置和部署教程
    springcloudstream整合rabbitmq
    Springboot整合swagger2
    git命令详解
    Mybatis 注解开发传入List 两种方式接收方式 在IN场景中
    java 根据时间段查询数据库
    stream分页
    201521123068《Java程序设计》第1周学习总结
    201521123027 《JAVA程序设计》第二周学习总结
    201521123027 《JAVA程序设计》第一周学习总结
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/9788673.html
Copyright © 2011-2022 走看看