linux之强制位及冒险位

简介:

本人系统Centos6.0

大家应该发现了当我们创建文件、目录的时候,就会默认有一个权限,那么这个是怎么回事呢?

这里引出一个umask权限设置

先来看个实例:

1
2
3
4
5
[root@centos ~]# touch test
[root@centos ~]# ll test
-rw-r--r--.  1  root root  0   8 月  19  18 : 36  test
[root@centos ~]# mkdir testd
drwxr-xr-x.   2  root root    4096   8 月  19  18 : 37  testd

root用户创建文件,默认权限644

root用户创建目录,默认权限755;这是为什么呢?

这就是umask的作用了:

1、umask的作用
默认情况下的umask值是022

1
2
[root@centos ~]# umask
0022

此时你建立的文件默认权限是644(666-022),建立的目录的默认权限是755(777-022)

现在应该知道umask的用途了吧,它是为了控制默认权限;

知道了umask的作用后:

你可以修改umask的值了

例如:umask 024则以后建立的文件和目录的默认权限就为642,753了

1
2
3
[root@centos ~]# umask  024
[root@centos ~]# umask
0024

2、将umask值保存到环境文件

如果使用bash可以更改/etc/bashrc文件中的umask,如果使用csh,可以更改/etc/csh.cshrc
umask 就是指定『目前使用者在建立档案或目录时候的属性默认值』

所以默认权限就是:

文件:666-umask值;(666-022=644)

目录:777-umask值;(777-022=755)这样就容易明白了;

冒险位和强制位(冒险位有的书也叫粘滞位)

前面说了0022中的022(后三个);那么前面一个是什么作用呢?

所谓的强制位和冒险位都是最最前面那个0的位置来表示,当前面那个位,2和4权限就叫强制位,1的权限就是冒险位,2代表的是GID,4代表的是uid,1代表的是sticky(粘滞)

作用

GID的作用: 默认情况下,用户建立的文件属于用户当前所在的组但是设置了GID以后,表示在此目录中,任何人建立的文件,都会属于目录所属的组。
UID的作用:当一个文件设置了UID,那么所有用户执行这个文件的时候,都是以这个用户的所有者的权限来执行。

演示:

185836359.jpg

大家从上图可以看到针对目录加强制位的方法

1> 、chmod g+s dirname 

2> 、chmod 2755 dirname

下面我使用zhangsan在该目录创建个文件。查看属组;

1
2
3
4
5
6
7
[root@centos lansgg]# chmod g+s /tmp/lansgg
[root@centos ~]# chmod o+w /tmp/lansgg
[root@centos ~]# useradd zhangsan
[root@centos ~]# su - zhangsan
[zhangsan@centos ~]$ touch /tmp/lansgg/testfile
[zhangsan@centos ~]$ ls -l /tmp/lansgg/testfile
-rw-rw-r--.  1  zhangsan root  0   8 月  19  19 : 04  /tmp/lansgg/testfile

可以看到zhangsan创建的文件属组竟然是root;

演示2:

下面演示UID:

我们知道普通用户是不能操作某些命令的;比如netstat 命令无法查看后面PID项的进程名

那我们能让某些用户可以完全查看呢?比如zhangsan

234203746.jpg

大家可以看到zhangsan用户也可以正常使用了,是不是有点像sudo呢?

下面是sticky(冒险位);

案例:比如我们一个服务器上有一个目录,所有用户都可以进行操作;那么默认的话,你创建的文件,其他用户也可以删除了;那么有什么办法,你的文件只有你自己可以删掉呢?这里我们使用sticky就可以办到;

演示3:

000512513.jpg

我们发现冒险位设置到目录上,zhangsan创建的文件,lisi不可删除了;

o-t 可以解除冒险位;


本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1277359

相关文章
|
3天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
197 2
|
2天前
|
存储 Linux Shell
YUM管理器的命令列表-Linux
YUM管理器的命令列表-Linux
8 0
|
4天前
|
Linux 程序员 计算机视觉
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
16 0
|
4天前
|
Linux
Linux的find命令使用
【5月更文挑战第11天】Linux的find命令使用
15 3
|
3天前
|
监控 Linux 数据处理
|
4天前
|
编解码 Ubuntu Linux
|
4天前
|
JSON Linux 数据格式
Linux命令发送http
请注意,`curl`命令非常灵活,可以根据您的需求进行多种配置和自定义。您可以查看 `curl`命令的文档以获取更多详细信息。
13 0
|
4天前
|
安全 Linux 测试技术
|
4天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
14 2
|
4天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南