linux教程:Linux的权限管理【linux云计算+运维开发】 |
您所在的位置:网站首页 › linux中权限不够怎么办 › linux教程:Linux的权限管理【linux云计算+运维开发】 |
学习目标 1、知道为什么要设置权限 2、linux中的权限类别和身份类别 3、掌握文件和文件夹权限的设置方法(字母和数字) 4、掌握文件和文件夹的属主属组设置方法 5、了解粘滞位 6、知道为什么要使用ACL 7、掌握ACL的使用方法 本文目录一、权限概述 1、什么是权限 2、为什么要设置权限 3、Linux中的权限类别 4、Linux中文件所有者 二、普通权限管理 1、ls查看文件权限 2、文件权限详解Linux 3、设置文件/文件夹权限 4、特别说明 三、属主(zhu)与属组(zu)设置 1、什么是属主与属组? 2、为什么要修改属主与属组? 3、chown修改文件的属主 4、chown同时修改属主与属组(重点) 四、特殊权限(扩展) 1、设置位S(SetUid) 2、沾滞位T (sticky bit) 五、ACL访问控制 1、基本命令 2、getfacl命令 3、setfacl命令 六、umask(扩展) 1、什么是umask 2、umask值 3、修改umask值 一、权限概述 1、什么是权限在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。 在Linux 中分别有读、写、执行权限:![]() 用法一:ll 示例代码: #ll 含义:查看当前文件夹下的所有目录和文件的详细信息 2、文件权限详解 Linux 中存在三类身份: 属主(owner拥有者) 属组(group用户组) 其他用户(others) 各自有不同的权限,对于一个文档来说,其权限具体分配如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() 作业:如果想给属主,属组,其他同时设置权限读写执行,有几种写法,分别是? ② 数字形式 经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为数字形式权限。 文件权限与数字的对应关系,我们会发现没有7这个数字![]() ![]() ![]() 技巧:不要背上面的表格,只要记住R,W,X对应4,2,1,之后做10以内加法 用法六:chmod -R 要赋予的权限(数字形式) 文件名 示例代码: #chmod -R 765 quanxian.txt 含义:对于quanxian.txt文件,给属主所有权限,属组读写权限,其他读和执行权限 注意: 全部权限:7 = r+w+x = 4 + 2 + 1 读写权限:6 = r+w = 4 + 2 读和执行:5 = r+x = 4 + 1 综上所述,u=7,g=6,o=5问题:用超级管理员设置文档的权限命令是# chmod -R 731 shop,请问这个命令有没有什么不合理的地方? 分析: 所有者权限:7 = 4 + 2 + 1 = 读 + 写 + 执行 同组用户权限:3 = 2 + 1 = 写 + 执行 其他用户权限:1 = 执行 问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开 之后才可以写,因此必须需要具备可读权限,因此此权限设置不合理。 注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",一般情况下,单独出现2、3的权限数字一般都是有问题的权限。一般linux系统中,不允许出现777的权限。 755 ③ 练习题 1)使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置 750 2)请置文件/root/readme.txt 的权限,权限要求为: 属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式; 3)请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限; 4、特别说明 在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)。![]() ![]() 这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)。 问题:为什么itheima.txt 的属主和属组默认都是itheima 2、为什么要修改属主与属组? 举例: 一个财务表格,以前由胡一菲进行更新,她有读写权限,现在胡一菲去阿拉善沙漠找曾老师了,改权限没用,需要把属主改成诸葛大力,由诸葛大力更新。 3、chown修改文件的属主 基本语法: # chown [-R] 新文档拥有者名称 文档路径 作用:更改文档的所属用户(change owner) 选项:-R 代表递归修改文件的属主 示例代码1:将readme.txt文档属主更改为itheima #touch readme.txt #ll readme.txt #chown itheima readme.txt 将readme.txt文件的属主设置为itheima #ll readme.txt 示例代码2:将shop文件夹的拥有者更改为itheima #mkdir shop #ll #chown itheima shop 将shop文件夹的属主设置为itheima #ll![]() ![]() ![]() ![]() 四、特殊权限(扩展) 1、设置位S(SetUid) 作用:为了让一般使用者临时具有该文件所属主/组的执行权限。 例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢? 答:可以临时让他们具有root的权限,而这个s权限就是用来完成这个特殊任务的。s权限只能应用在二进制的可执行文件上。![]() 示例代码:不想让普通用户修改自己的密码 注:which命令可以用于查看二进制可执行文件所在位置 去除s权限,基本语法: #which passwd #ll /usr/bin/passwd #chmod u-s /usr/bin/passwd 或者 #chmod 0755 /usr/bin/passwd 去除passwd程序的s权限 #ll /usr/bin/passwd![]() 测试普通用户: 举例: 公司多个部门公用一个文件夹work,为了让所有人都能访问,work文件夹赋予了777权限,用户root新建了一个文件root.txt,发现被别人删除了。我们希望root建立的文件,只有root自己可以删。 步骤1:root用户下操作 root用户新建文件夹/work,并且新建两个文件root.txt和root1.txt,赋予/work文件夹和下面的文件777权限 #mkdir /work #cd /work #touch root.txt #touch root1.txt #chmod -R 777 /work #ll -d /work![]() 步骤2: wangwu用户下操作 在没有设置粘滞位的时候,wangwu可以删除root创建的文件。 cd /work ll -d /work ll rm -rf root.txt ll![]() ![]() ![]() ![]() ![]() ![]() ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。 1、基本命令 getfacl命令:查看文件的ACL策略及权限 setfacl命令: 给文件针对某个用户或者某个组来增加(设置)ACL策略 2、getfacl命令![]() 3、setfacl命令 -m : 修改acl策略 -x :去掉某个用户或者某个组的权限 -b :删除所有的acl策略 -R :递归,通常用在文件夹 mask:mask定义除other和所有人(拥有者)外的最大权限 setfacl -m u:用户名:rwx /usr/local/shichangbu 给单个用户单独加权限 setfacl -m g:用户组名:rwx /usr/local/shichangbu 给单个组单独加权限 setfacl -x u:用户 /usr/local/shichangbu 去掉某个用户的权限 setfacl -x g:组名 /usr/local/shichangbu 去掉某个组的acl策略 setfacl -b -R /usr/local/shichangbu 删除所有的acl策略,递归子文件 例如: setfacl -m u:user01:rw file1 针对于单个用户给可读可写权限 setfacl -m g:sysadmin:rw file1 针对于单个组给可读可写权限 示例代码1:给newuser01用户单独在市场部文件夹上增加rx权限 #mkidr /shichangbu #cd /shichangbu 验证newuser01用户对于file1文件只有读权限 #touch file{1..5}.txt #chown -R root:itheima shichangbu/ 递归设置shichangbu文件夹的属主是root,属组是itheima #getfacl shichangbu/ #useradd newuser01 #passwd newuser01 #setfacl -m u:newuser01:rx -R /usr/local/shichangbu/ 单独设置newuser01对于shichangbu文件夹的rx权限,并且递归包含所有子文件 #getfacl /usr/local/shichangbu 查看/usr/local/shichangbu文件夹的ACL权限 验证newuser01用户对于file1文件只有读权限 #groupadd newusergrp #setfacl -m g:newusergrp:rx -R /usr/local/shichangbu/ 单独设置newusergrp组对于shichangbu文件夹的rx权限,并且递归包含所有子文件 #getfacl /usr/local/shichangbu/ 示例代码3:删除所有acl策略 ![]() 2、umask值 可以使用命令umask来查看umask的值: 基本语法:# umask ![]() ![]() 结合上述的举例得知: 默认权限=最高权限-umask( 644=666-022 // 664=666-002 ) 但是: 当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666 666 -> rw-rw-rw- 011 -> -----x--x 相减得: 666 -> -rw-rw-rw- 注:这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限), 所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1) 3、修改umask值 umask + 数值修改当前用户的umask 如: # umask 044 不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc 操作步骤: #vim ~/.bashrc ① 在文件末尾添加umask 044 ② 保存退出 ③ 重新登录用户则保存成功 示例代码:![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |