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系统之部署adarkroom文字风格冒险小游戏
【7月更文挑战第15天】Linux系统之部署adarkroom文字风格冒险小游戏
21 4
|
3天前
|
Linux Shell 开发工具
|
3天前
|
网络协议 安全 Linux
|
1天前
|
存储 运维 Linux
|
1天前
|
存储 JSON Linux
|
2天前
|
存储 安全 Ubuntu
Linux dump命令教程
绍了Linuxdump命令的功能,包括用于备份整个文件系统的全备份和增量备份,以及如何在不同Linux发行版中安装和使用dump命令。
39 16
|
6天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。
|
6天前
|
安全 数据管理 Shell
Linux命令su详解
`su`命令在Linux中用于切换用户身份,常用于权限管理。它允许用户无须注销当前会话就切换到另一个用户,尤其是root。`su`有多种选项,如`-`或`--login`加载目标用户环境,`-c`执行指定命令后返回。使用时需注意权限安全,建议用`sudo`以减少风险。通过限制`/etc/pam.d/su`可加强访问控制。`su`在系统维护和数据管理中扮演角色,但不直接处理数据。
|
6天前
|
存储 运维 安全
Linux命令stat:深入了解文件与文件系统状态
`stat`命令在Linux中用于显示文件和文件系统的详细状态,包括权限、大小、时间戳等。它通过读取inode获取信息,特点是显示全面、易用且支持多种参数,如`-c`自定义格式,`-f`查看文件系统状态,`-L`处理符号链接。例如,`stat example.txt`显示文件详情,`stat -c "%n 的大小是 %s 字节" example.txt`输出文件大小。理解`stat`有助于系统管理和故障排查。