umask 默认权限控制和特殊权限
权限简单介绍:
在Linux中,创建目录或者文件之后总会有默认的权限。共9个,分为三组。分别代表u、g、o(属主、属组、其他用户)。r、w、x 也代表各自的权限。
r:读 在文件中的权限代表次文件可以被cat 在目录的权限中代表此目录可以 ls 来查看目录下的文件 一般用数字 4 代表
w:写 在文件中的权限代表次文件可以更改(vim/vi.....) 在目录中 则可以创建、删除、更改 此目录下的文件 一般用数字 2 代表
x:执行 在文件中代表次文件可以被用户执行 在目录中代表此目录可以 cd 进去 一般用数字 1 代表
umask 默认权限控制
umask 控制着系统的默认权限,默认为0022; 第一位代表的是附加权限,也就是特殊权限。后三位代表的是u、g、o的权限。
其中文件和目录默认的最大权限如下:
file---666 -rw-rw-rw
dir ---777 drwxrwxrwx
文件目录权限的计算:
1. 当umask为偶数
umask为0022
文件:
file- 666-022=644
目录:
dir- 777-022=755
2.当umask为奇数 计算文件的默认权限的时候,要在奇数位加1
umask为0032
file- 666-032=634
+010=644
目录的不变
umask=035
[root@znix ~]# umask 035
[root@znix ~]# touch file035
[root@znix ~]# mkdir dir035
[root@znix ~]# ll file035 && ll -d dir035
-rw-r---w- 1 root root 0 Sep 6 10:42 file035
drwxr---w- 2 root root 4096 Sep 6 10:42 dir035
file=642 dir=742
永久修改umask的方法
[root@znix ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
解释:
如果 [ 用户UID>=199 ] 并且 [ 用户的名字 == 用户组名字 ];然后
umask 002
那么
umask 022
果如
特殊权限
特殊权限一般都是在 X 位上;分为set uid 、set gid、sticky bit(粘滞位)三种;
set uid:
附加在属主的x位上,并改变其为s
set gid:
附加在属组的x位上,并改变其为s
基本和suid相同,但是我们修改权限一般会让其让其最大化,没必要让其和属主的相同,不过他还有其他作用,适用于目录,用来传递目录的属主身份:(如果我们没有使用这个特殊权限的时候,那么我们创建文件时,属组就会是创建此文件的用户的属组,但是如果我们有这个特殊权限,那么我们在这个目录中创建的文件就会是目录的属组) 新建文档自动属于这个组
sticky bit(粘滞位):
附加在其他人的x位上,并改变其为t
适用于多个用户都有写入权限的目录(/tmp,我们所有用户都可以在此目录有写入权限,这时如果我们不给此目录一些限制的话,我们超级用户在跑一个程序,并在tmp目录下有一些临时文件,而我们随便过来一个用户就能将其文件删除,还有就是我们张三创建的文件,李四就能删除,这样是不合理的)这时我们就需要进行限制,阻止对目录w权限的滥用,如果加上此权限,那么我们每个用户只能删除自己的文件,不能删除其他人的文件
s与S 的区别在于若是用户或用户组没有执行权限(x) 则其附加权限为 S 。 若是有x(执行权限) 则为 s 。
我们的附加权限也可以用数字表示,当我们写三个数字的时候默认是属主属组和其他用户的权限;但是当我们写四个数字的时候,后三个默认还是属主属组和其他用户的权限,但是第一个数字就代表附加权限,其中suid是4、sgid是2、粘滞位是1
umask 默认权限控制和特殊权限的更多相关文章
- Linux系统——ACL权限控制及特殊权限
ACL权限控制 ACL(access control list),可以提供除属主.属组.其他人的rwx权限之外的细节权限设定 ACL的权限控制 (1)User 使用者 (2)Group 群组 (3)M ...
- Spring Cloud实战 | 第十一篇:Spring Cloud Gateway 网关实现对RESTful接口权限控制和按钮权限控制
一. 前言 hi,大家好,这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT实现的统 ...
- asp.net core mvc权限控制:分配权限
前面的文章介绍了如何进行权限控制,即访问控制器或者方法的时候,要求当前用户必须具备特定的权限,但是如何在程序中进行权限的分配呢?下面就介绍下如何利用Microsoft.AspNetCore.Ident ...
- JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理
1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...
- aop (权限控制之功能权限)
在实际web开发过程中通常会存在功能权限的控制,不如这个角色只允许拥有查询权限,这个角色拥有CRUD权限,当然按钮权限显示控制上可以用button.tld来控制,本文就不说明. 具体控制流程就是通过登 ...
- Laravel 5.1 ACL权限控制 三 之权限准备及实现权限管理
请自动参照到上上篇文章 1.创建控制器 php artisan make:model Permission php artisan make:model Role 2.创建表 php artisan ...
- Chapter6_访问权限控制_访问权限修饰词
Java中有四种访问权限,public,private,protected和包访问权限,它们是置于类中每一个成员之前的定义,无论是一个域还是一个方法,下面一一介绍. 一.包访问权限 如果不提供任何访问 ...
- C++ 中的权限控制
权限控制,指的是用户只能访问符合自己权限的资源,系统对用户进行权限控制以防止用户的误操作/恶意操作等. 在C++代码中,权限控制指的是程序员在接口声明/类声明/函数声明等中进行的授权控制.如下面的代码 ...
- Winform开发框架之字段权限控制
在我的很多Winform开发项目中(包括混合框架的项目),统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(按钮.菜单权限).数据权限(记录的权限),另外还可以进行字段级别的字段权限控制 ...
随机推荐
- Github项目备份与更新
需求 假如现在想对使用到的一些Github上的开源组件进行备份,采用自建Gitlab服务器的方式进行备份保存,并且组件需定时保持与Github更新. 总体步骤 组件备份- 整体步骤如下: a.搭建gi ...
- .NET Core IdentityServer4实战 第Ⅴ章-单点登录
OiDc可以说是OAuth的改造版,在最初的OAuth中,我们需要先请求一下认证服务器获取下Access_token,然后根据Access_token去Get资源服务器, 况且OAuth1 和 2 完 ...
- node.js的异步I/O、事件驱动、单线程
nodejs的特点总共有以下几点 异步I/O(非阻塞I/O) 事件驱动 单线程 擅长I/O密集型,不擅长CPU密集型 高并发 下面是一道很经典的面试题,描述了node的整体运行机制,相信很多人都碰到了 ...
- Rstudio调用plot()函数时,出现错误的处理方法
按照书上的例子敲出代码后,发现Rstudio无法识别C盘user文件夹下的中文用户名.如下图所示: 按照网上的做法,尝试修改计算机user下的用户名,没修改成功. 另一种做法是在plot()函数前面加 ...
- 高性能微服务网关.NETCore客户端Kong.Net开源发布
前言 项目地址:https://github.com/lianggx/Kong.Net 你的支持使我们更加强大,请单击 star 让更多的 .NETCore 认识它. 拥抱开源的脚步,我们从来都是一直 ...
- 消息驱动式微服务:Spring Cloud Stream & RabbitMQ
1. 概述 在本文中,我们将向您介绍Spring Cloud Stream,这是一个用于构建消息驱动的微服务应用程序的框架,这些应用程序由一个常见的消息传递代理(如RabbitMQ.Apache Ka ...
- mysql 终端命令
1.打开数据库 /usr/local/MySQL/bin/mysql -u root -p 2.输入root密码 3.使用我的数据库 use mysql 4.查看表 desc table_name 5 ...
- scrapy基础知识之发送POST请求:
可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求. 如果希望程序执行一开始就发送POST请求,可以重写Spider类的s ...
- Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Composer”
按照Laravel文档的安装方式在windows上安装Laravel时,执行composer global require "laravel/installer". 然后命令行就显 ...
- [网络协议]TCP粘包分析
关于socket粘包,socket缓冲区设置的问题,记录一下: 一 .两个简单概念长连接与短连接: 长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送 ...