Linux 文件特殊权限_013
***Linux 系统文件除了9位基本权限,还有额外3位特殊权限,分别是SUID(setuid),SGID(setgid),SBIT(sticky bit)
一、Linux 系统文件3位特殊权限位说明
标注:这3位特殊权限不建议使用(除系统默认的特殊权限可以使用以外),除非有特殊需求
|
特殊权限 |
特殊权限位小写 |
特殊权限位大写 |
权限值 |
|
s (suid) |
小写s (有suid执行权限) |
大写S (无suid执行权限) |
4 |
|
s (sgid) |
小写s (有sgid执行权限) |
大写S (无sgid执行权限) |
2 |
|
t(sticky bit) |
小写t (有sticky bit执行权限) |
大写T (无sticky bit执行权限) |
1 |
|
0恢复文件原来权限,chmod 0755 file |
|||
SUID
标注:见下面范例1
1、SUID是对二进制命令或二进制程序有效,对目录无效
2、普通用户具有该文件其它用户x执行权限并分配了s权限将具有文件所有者的权限
3、用户属主对应的前三位权限的x位上如果有s就表示suid权限,当x位上没有小写x执行权限时候,suid的权限显示就是大S
4、suid权限仅在程序命令执行过程中有效
5、suid功能是一把双刃剑,是一个比较危险的功能,对系统安全有一定威胁系统,suid的无用的功能取消suid权限(安全优化)
SGID
标注:见下面范例2
1、SGID和SUID不同之处在于,SGID可以用于目录
2、SGID的权限s是出现在文件用户组的x权限位上
SGID针对文件
1、sgid仅对二进制命令程序有效
2、普通用户具有该文件其它用户x执行权限并分配了s权限将具有文件所属用户组的权限
3、执行命令任意用户可以获取该命令程序执行期间所属用户组的权限
SGID针对目录
1、linux 默认情况所有用户创建文件,默认用户和组都是自身
2、sgid可以让用户再此目录下创建的文件和目录,具有和此目录相同的用户组设置
sgid位主要用在目录中,当为某个目录设置sgid位以后,在改目录中
新创建的文件具有改目录的所属组权限,而不是创建改文件的用户的默认
所有者,这样,使得在多个用户之间共享一个目录中的文件变得简单
SBIT (粘滞位)
标注:见下面范例3
1、SBIT与SUID,SGID不同的是,SBIT只能用于目录
2、普通用户在该目录下,仅目录属主与root才有权力删除\移动\重命名目录
3、如果目录权限是777并添加粘滞位t,普通用户可以在此目录下创建文件和目录
二、特殊权限位设置方法
范例1:SUID设置方法
[root@oldboy ~]# mkdir /oldboy
[root@oldboy ~]# touch /oldboy/test.sh
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-x 2 root root 4096 Dec 5 19:16 /oldboy/
[root@oldboy ~]# ls -l /oldboy/test.sh
-rw-r--r-- 1 root root 0 Dec 5 19:16 /oldboy/test.sh
[root@oldboy ~]# which rm
alias rm='rm -i'
/bin/rm
[root@oldboy ~]# ls -l /bin/rm
-rwxr-xr-x. 1 root root 57440 Oct 15 2014 /bin/rm
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ rm /oldboy/test.sh
rm: remove write-protected regular empty file `/oldboy/test.sh'? y
rm: cannot remove `/oldboy/test.sh': Permission denied
[oldboy@oldboy ~]$ su - root
Password:
[root@oldboy ~]# ls -l /bin/rm
-rwxr-xr-x. 1 root root 57440 Oct 15 2014 /bin/rm
[root@oldboy ~]# chmod u+s /bin/rm ##等同命令chmod 4755 /bin/rm,取消suid命令 chmod u-s /bin/rm或chmod 0755 /bin/rm
[root@oldboy ~]# ls -l /bin/rm
-rwsr-xr-x. 1 root root 57440 Oct 15 2014 /bin/rm
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ rm /oldboy/test.sh
[oldboy@oldboy ~]$ ls -l /oldboy/
total 0
范例2:GUID设置方法
[root@oldboy ~]# mkdir /oldboy
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-x 2 root root 4096 Dec 5 19:28 /oldboy/
[root@oldboy ~]# chown oldboy.incahome /oldboy/
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-x 2 oldboy incahome 4096 Dec 5 19:28 /oldboy/
[root@oldboy ~]# touch /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/
total 0
-rw-r--r-- 1 root root 0 Dec 5 19:29 test.sh
[root@oldboy ~]# chmod g+s /oldboy/ ##等同命令chmod 2755 /bin/rm,取消guid命令 chmod g-s /bin/rm或chmod 0755 /bin/rm
[root@oldboy ~]# touch /oldboy/file.txt
[root@oldboy ~]# ls -l /oldboy/
total 0
-rw-r--r-- 1 root incahome 0 Dec 5 19:29 file.txt
-rw-r--r-- 1 root root 0 Dec 5 19:29 test.sh
范例3:SBIT设置方法
[root@oldboy ~]# mkdir /oldboy
[root@oldboy ~]# touch /oldboy/test.sh
[root@oldboy ~]# mkdir /oldboy/share
[root@oldboy ~]# chmod 777 /oldboy/
[root@oldboy ~]# chmod 777 /oldboy/share/
[root@oldboy ~]# chmod 777 /oldboy/test.sh
[root@oldboy ~]# ls -ld /oldboy/
drwxrwxrwx 2 root root 4096 Dec 6 10:23 /oldboy/
[root@oldboy ~]# ls -l /oldboy/
total 4
drwxrwxrwx 2 root root 4096 Dec 6 10:24 share
-rwxrwxrwx 1 root root 0 Dec 6 10:23 test.sh
[root@oldboy ~]# chmod 1777 /oldboy/ ##等同命令chmod o+s /oldboy
[root@oldboy ~]# ls -ld /oldboy/
drwxrwxrwt 3 root root 4096 Dec 6 10:24 /oldboy/
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ rm /oldboy/test.sh
rm: cannot remove `/oldboy/test.sh': Operation not permitted
[oldboy@oldboy ~]$ rm -rf /oldboy/share/
rm: cannot remove `/oldboy/share': Operation not permitted
[oldboy@oldboy ~]$ mv /oldboy/test.sh /tmp/
mv: try to overwrite `/tmp/test.sh', overriding mode 0755 (rwxr-xr-x)? y
mv: cannot move `/oldboy/test.sh' to `/tmp/test.sh': Operation not permitted
[oldboy@oldboy ~]$ mv /oldboy/test.sh /oldboy/file.sh
mv: cannot move `/oldboy/test.sh' to `/oldboy/file.sh': Operation not permitted
[oldboy@oldboy ~]$ cp /oldboy/test.sh /tmp/
cp: cannot create regular file `/tmp/test.sh': Permission denied
[oldboy@oldboy ~]$ touch /oldboy/file.txt
[oldboy@oldboy ~]$ mkdir /oldboy/user
[oldboy@oldboy ~]$ ls -l /oldboy/
total 8
-rw-r--r-- 1 oldboy root 0 Dec 6 10:30 file.txt
drwxrwxrwx 2 root root 4096 Dec 6 10:28 share
-rwxrwxrwx 1 root root 0 Dec 6 10:28 test.sh
drwxr-xr-x 2 oldboy root 4096 Dec 6 10:31 user
[oldboy@oldboy ~]$ su - root
Password:
[root@oldboy ~]# rm -rf /oldboy/test.sh
[root@oldboy ~]# rm -rf /oldboy/share/
三、chattr改变文件属性(特殊功能)
|
参数 |
参数原版描述 |
备注 |
实例 |
|
+i |
A file with the “i” attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. |
让任何用户(包括root管理员)无法删除\重命名\移动目录,但可以复制目录。如果针对文件添加i权限是无法修改\删除\添加文件的内容并且无法删除\重命名\移动文件,但可以复制文件 |
范例1 |
|
-i |
取消i功能 |
范例1 |
|
|
-a |
A file with the ‘a’ attribute set can only be open in append mode for writing. |
功能类似“i”,只是多了一个可以追加的功能 |
范例2 |
范例1:
1、针对oldboy目录添加i权限
[root@oldboy ~]# mkdir /oldboy
[root@oldboy ~]# chmod 777 /oldboy/
[root@oldboy ~]# touch /oldboy/test.sh
[root@oldboy ~]# touch /oldboy/file.txt
[root@oldboy ~]# chmod 777 /oldboy/*
oot@oldboy ~]# ls -l /oldboy/
total 0
-rwxrwxrwx 1 root root 0 Dec 6 11:21 file.txt
-rwxrwxrwx 1 root root 0 Dec 6 11:21 test.sh
[root@oldboy ~]# chattr +i /oldboy/
[root@oldboy ~]# ls -ld /oldboy/
drwxrwxrwx 2 root root 4096 Dec 6 11:21 /oldboy/
[root@oldboy ~]# lsattr -d /oldboy/
----i--------e- /oldboy/
[root@oldboy ~]# lsattr /oldboy/
-------------e- /oldboy/file.txt
-------------e- /oldboy/test.sh
[root@oldboy ~]# rm -rf /oldboy/
rm: cannot remove `/oldboy/file.txt': Permission denied
rm: cannot remove `/oldboy/test.sh': Permission denied
[root@oldboy ~]# mv /oldboy/* /tmp/
mv: cannot move `/oldboy/file.txt' to `/tmp/file.txt': Permission denied
mv: overwrite `/tmp/test.sh'? y
mv: cannot move `/oldboy/test.sh' to `/tmp/test.sh': Permission denied
[root@oldboy ~]# mv /oldboy/test.sh /oldboy/test.sh.bak
mv: cannot move `/oldboy/test.sh' to `/oldboy/test.sh.bak': Permission denied
[root@oldboy ~]# echo "test" > /oldboy/test.sh ##这个文件内容不属于/oldboy/ block范围内
[root@oldboy ~]# cat /oldboy/test.sh
test
[root@oldboy ~]# lsattr -d /oldboy/
----i--------e- /oldboy/
[root@oldboy ~]# chattr -i /oldboy/
[root@oldboy ~]# lsattr -d /oldboy/
-------------e- /oldboy/
2、针对test.sh文件添加i权限
[root@oldboy ~]# touch test.sh
[root@oldboy ~]# chmod 777 test.sh
[root@oldboy ~]# ls -l test.sh
-rwxrwxrwx 1 root root 30 Dec 1 09:14 test.sh
[root@oldboy ~]# chattr +i test.sh
[root@oldboy ~]# lsattr test.sh
----i--------e- test.sh
[root@oldboy ~]# rm -rf test.sh
rm: cannot remove `test.sh': Operation not permitted
[root@oldboy ~]# mv test.sh /tmp/
mv: overwrite `/tmp/test.sh'? y
mv: cannot move `test.sh' to `/tmp/test.sh': Operation not permitted
[root@oldboy ~]# echo "abc" > test.sh
-bash: test.sh: Permission denied
[root@oldboy ~]# echo "abc" >> test.sh
-bash: test.sh: Permission denied
范例2:
[root@oldboy ~]# touch test.sh
[root@oldboy ~]# lsattr test.sh
-------------e- test.sh
[root@oldboy ~]# chattr +a test.sh
[root@oldboy ~]# lsattr test.sh
-----a-------e- test.sh
[root@oldboy ~]# rm -rf test.sh
rm: cannot remove `test.sh': Operation not permitted
[root@oldboy ~]# > test.sh
-bash: test.sh: Operation not permitted
[root@oldboy ~]# echo 123 >> test.sh
[root@oldboy ~]# cat test.sh
123
Linux 文件特殊权限_013的更多相关文章
- Linux文件的权限与属性
由于以前学习Linux的时候没有做比较全面的总结笔记,而且平时大部分工作都在windows上进行,所以关于Linux的一些知识点有所遗忘.近期难得空闲,翻阅书籍,学习<鸟哥的Linux私房菜&g ...
- Linux学习之十五-Linux文件特殊权限和附加权限
Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...
- Linux文件/目录权限设置命令:chmod
文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 其语法格式为:chmod [w ...
- Linux文件普通权限
1.文件所有者,所属用户组,其他用户1)文件所有者:创建文件的用户2)所属用户组:文件属于哪个用户组3)其他用户:不是文件所有者,不属于文件所属用户组的用户,称为其他用户 2.Linux文件权限我们切 ...
- linux文件访问权限(像rw-r--rw-是什么意思)
Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 可用 ls -l 查看文件 像上图的-rw-r--rw- ...
- Linux 文件特殊权限 SUID SGID SBIT
文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下 1 SetUID 当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd, [root@or ...
- Linux 文件普通权限_011
一.文件权限10个字符对应类型和权限 二.Linux普通文件和Linux目录读.写.执行权限说明 标注:Linux 中的文件名是存在于父目录的block里面,并指向这个文件的inode节点 1.lin ...
- linux文件基本权限-基本权限的修改
基本权限的修改 当我们在linux或unix系统的terminal输入"ls -l"命令时,将输出文件的详细信息.第一列,如“drwxr-xr-x”就是文件的权限信息. yinti ...
- [apue] linux 文件访问权限那些事儿
前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访 ...
随机推荐
- POJ 水题(刷题)进阶
转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...
- BZOJ5103 : [POI2018]Róznorodno
从上到下枚举上下底边,那么涉及两行的添加和删除. 首先预处理出对于每一列,每个位置添加和删除时,是否会对往下$k$个里出现这个颜色造成影响. 然后对于每种颜色维护一个长度为$m$的bitset,表示哪 ...
- 2017.07.10【NOIP提高组】模拟赛B组
Summary 今天题目总体不是难,但是分数很低,只有100+10+30,其中第二题还是以前做过的,第一题设计数论,而且以前做过同一个类型的题目,比赛推了很长时间.第三题时以前做过的原题,是贪心没学好 ...
- “百度杯”CTF比赛 九月场---123
右键查看源代码 然后构造user.php,显示空白,源码也是空白,既然上边说用户名,密码了,参考大佬的博客,放文件user.php.bak这是备份文件,一打开上边全是用户名,有戏,爆破 添加字典,也就 ...
- 关于js键盘事件的例子
JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...
- Nanopi2基本使用
1.首先刷系统,把TF卡放到读卡器中,根据官网教程(http://www.arm9.net/nanopi-m2.asp)下载固件,并烧写. 2.硬件连接:把TF卡插到Nanopi2的boot卡槽, ...
- JSP(2)—绝对路径与相对路径、配置Servlet与Servlet注解
一.绝对路径和相对路径 ①开发时建议使用据对路径,使用绝对路径肯定没有问题,但是用相对路径可能会有问题. 在由Servlet转发到JSP页面时,此时在浏览器地址栏显示Sevvlet路径,若JSP页面的 ...
- jQuery 学习03——HTML:捕获、设置、添加元素、删除元素、CSS类、CSS()方法、尺寸
jQuery - 获取内容text().html() 以及 val()和属性attr() jQuery 中非常重要的部分,就是操作 DOM 的能力. DOM = Document Object Mod ...
- python测试开发django-56.模板渲染markdown语法+代码高亮
前言 上一篇已经实现在xadmin后台编辑markdown语法的文档,编辑完成之后发布博客,在前端html能把markdown语法显示出来. 主要思路是先从数据库把markdown的代码读出来,导入m ...
- 2.1 mac下多版本jdk的安装和管理
之前已经安装过jdk8了,安装路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk 现在安装jdk10,下载后,双击dmg文件一直到安装完成,安装 ...