仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 506|回复: 6
打印 上一主题 下一主题

[CentOS(社区)] CentOS教程之CentOS特别权限位之setuid、setgid和sticky

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:04:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!我们上岸到体系以后,创立一个通俗文件或许目次的时刻,会有一个默许的权限。通俗文件是644,目次文件是755,想必人人都晓得这个是由umask这个值决议的。我们可以直接履行umask敕令检查,linux体系默许的umask值是0022。想转变创立文件默许的权限,我们直接修正umask就能够,然则普通的权限都是经由过程777-022获得的默许权限位。022后面的这个0是甚么呢?第一个0就是特别权限位,下边我们就来跟人人说一下setuid、setgid和sticky这个三个特别权限位。
1.suid,setuid:在一个法式或敕令上添加setuid今后(u+s),如许属主有了s权限,意味着任何用户在履行此法式时,其过程的属主不再是提议者自己,而是这个法式的属主。最典范的一个例子就是passwd这个敕令;

通俗用户运履行passwd敕令来修正本身的暗码,其实终究更改的是/etc/passwd这个文件。
我们晓得/etc/passwd文件是用户治理的设置装备摆设文件,只要root权限的用户能力更改。
  1. [root@Vmware5~]#ls-l/etc/passwd-rw-r--r--.1rootroot981Oct2501:00/etc/passwd
复制代码
依照惯例的逻辑思想,通俗用户是修正不了/etc/passwd此文件的,然则在passwd这个敕令上添加了setuid这个特别权限位,通俗账号暂时酿成root,就可以直接修正本身账号的暗码了。
  1. [root@Vmware5~]#ls-l/usr/bin/passwd(s就是suid位)-rwsr-xr-x.1rootroot30768Feb222012/usr/bin/passwd
复制代码
设置setuid的办法:(其实前边提到过了参数是u+s)
  1. chmodu(+|-)s/path/somefilechmod4664/path/somefile留意:s:表现属主本来有履行权限S:表现属主本来没有履行权限
复制代码
实例演示:
添加一个名字为taokey的通俗用户
  1. [root@Vmware5~]#useraddtaokey
复制代码
把/etc/fsatb文件拷贝到/tmp目次下一份
  1. [root@Vmware5~]#cp/etc/fstab/tmp/[root@Vmware5~]#cd/tmp/
复制代码
检查/tmp目次下fstab文件的属性
  1. [root@Vmware5tmp]#llfstab-rw-r--r--.1rootroot899Oct2500:16fstab
复制代码
把其他用户的读权限给去失落
  1. [root@Vmware5tmp]#chmodo-rfstab[root@Vmware5tmp]#llfstab-rw-r-----.1rootroot899Oct2500:16fstab
复制代码
切换到通俗用户taokey
  1. [root@Vmware5tmp]#su-taokey
复制代码
履行cat敕令,看下能否可以检查fstab文件
  1. [taokey@Vmware5~]$cat/tmp/fstabcat:/tmp/fstab:Permissiondenied
复制代码
因为other去失落了r权限,一切提醒cat被谢绝
为了保存原始情况,把cat敕令拷贝到/tmp目次一份
  1. [root@Vmware5~]#cp/bin/cat/tmp/[taokey@Vmware5tmp]$ls-lfstabcat-rwxr-xr-x.1rootroot45224Oct2500:21cat-rw-r-----.1rootroot899Oct2500:16fstab[taokey@Vmware5tmp]$./catfstab./cat:fstab:Permissiondenied[taokey@Vmware5tmp]$exitlogout
复制代码
特换到root用户,添加setuid权限
  1. [root@Vmware5~]#ls-l/usr/bin/passwd(s就是suid位)-rwsr-xr-x.1rootroot30768Feb222012/usr/bin/passwd0
复制代码
  1. [root@Vmware5~]#ls-l/usr/bin/passwd(s就是suid位)-rwsr-xr-x.1rootroot30768Feb222012/usr/bin/passwd1
复制代码

  1. [root@Vmware5~]#ls-l/usr/bin/passwd(s就是suid位)-rwsr-xr-x.1rootroot30768Feb222012/usr/bin/passwd2
复制代码

切换到通俗用户以后,可以胜利履行cat敕令,检查/tmp/fstab文件,就是由于tmp目次下cat这个敕令上添加了s权限位。
1
2
[taokey@Vmware5tmp]$llcat
-rwsr-xr-x.1rootroot45224Oct2500:21cat



留意:设置suid这个特别权限很风险,不到万不得已,做好照样不要应用。


2.Sgid,Setid,属组有s权限,意思就是履行此法式时,此过程的属组不再是运转者自己所属的根本组,而是此法式文件的属组。

任务中常常会碰到如许一个成绩?
运维和开辟同属于技巧部,用户同属于一个组,文件在一个目次中,运维人员和开辟人员可以互相之间拜访本身的文件,如果一个一个修正属组就有点费事,这时候候用sgid就会很便利的处理这个成绩。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
例子:
[root@Vmware5tmp]#usermod-a-Gmygrpxen
[root@Vmware5tmp]#usermod-a-Gmygrpkvm
[root@Vmware5tmp]#mkdir/tmp/test
[root@Vmware5tmp]#ls-ld/tmp/test/
drwxr-xr-x.2rootroot4096Oct2500:48/tmp/test/
[root@Vmware5tmp]#chmodg+w/tmp/test
[root@Vmware5tmp]#ls-ld/tmp/test/
drwxrwxr-x.2rootroot4096Oct2500:48/tmp/test/
[root@Vmware5tmp]#chown:mygrp/tmp/test
[root@Vmware5tmp]#ls-ld/tmp/test
drwxrwxr-x.2rootmygrp4096Oct2500:48/tmp/test
[root@Vmware5~]#su-xen
[xen@Vmware5~]$cd/tmp/test
[xen@Vmware5test]$toucha.xen
[xen@Vmware5test]$ls-l
total0
-rw-rw-r--.1xenxen0Oct2500:50a.xen
[root@Vmware5~]#su-kvm
[kvm@Vmware5~]$cd/tmp/test
[kvm@Vmware5test]$toucha.kvm
[kvm@Vmware5test]$ls-l
total0
-rw-rw-r--.1kvmkvm0Oct2500:51a.kvm
-rw-rw-r--.1xenxen0Oct2500:50a.xen



kvm用户想往xen创立的文件a.xen中写器械,然则被谢绝了。
1
2
[kvm@Vmware5test]$echo"hello">>a.xen
-bash:a.xen:Permissiondenied



我们在用root,给/tmp/test文件添加一个sgid权限位,然后再测试下。
1
2
3
[root@Vmware5~]#chmodg+s/tmp/test
[root@Vmware5~]#ls-ld/tmp/test
drwxrwsr-x.2rootmygrp4096Oct2500:51/tmp/test



切换到xen通俗用户


1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@Vmware5~]#su-xen
[xen@Vmware5test]$touchb.xen
[xen@Vmware5test]$llb.xen
-rw-rw-r--.1xenmygrp0Oct2501:01b.xen
[root@Vmware5~]#su-kvm
[kvm@Vmware5~]$echo"hello">>b.xen
[kvm@Vmware5~]$catb.xen
hello
[kvm@Vmware5~]$touchb.kvm
[root@Vmware5~]#su-xen
[xen@Vmware5~]$cd/tmp/test/
[xen@Vmware5test]$echo"Mynameistaoyake.">>b.kvm
[xen@Vmware5test]$catb.kvm
Mynameistaoyake.



可以胜利写出来,这个就是由于在/tmp/test文件设置了sgid权限位
然则这个不只可以能胜利写出来,还可以删除文件,我们只能本身删除本身的文件,不想让其他用户删除我们的文件,这时候候怎样办呢?
1
2
3
4
5
6
7
例如:
[xen@Vmware5test]$rmb.kvm
[xen@Vmware5test]$ll
total0
-rw-rw-r--.1kvmkvm0Oct2500:51a.kvm
-rw-rw-r--.1xenxen0Oct2500:50a.xen
-rw-rw-r--.1xenmygrp0Oct2501:01b.xen





3.这时候候就用到了粘滞位,t,sticky,附加other的权限上,表示为t。
chmodo+|-t/path/somefile

1
2
3
4
5
6
7
8
9
10
11
12
实例操作:
[root@Vmware5~]#ls-ld/tmp/test
drwxrwsr-t.2rootmygrp4096Oct2501:10/tmp/test
[xen@Vmware5test]$ls
a.kvma.xenb.xenc.kvm
[xen@Vmware5test]$echo"beyond">>c.kvm
[xen@Vmware5test]$catc.kvm
beyond
[xen@Vmware5test]$echo"">c.kvm
[xen@Vmware5test]$catc.kvm
[xen@Vmware5test]$rm-rfc.kvm
rm:cannotremove`c.kvm:Operationnotpermitted



可以添加和随意率性修正其他用户的文件,就是不克不及删除其他用户的文件,本身可以删除本身创立的文件。

1
2
3
4
5
6
7
8
9
10
11
[kvm@Vmware5test]$touchc.kvm
[kvm@Vmware5test]$ls
a.kvma.xenb.xenc.kvm
[kvm@Vmware5test]$rmc.kvm
[kvm@Vmware5test]$ls
a.kvma.xenb.xen
[xen@Vmware5test]$ll
total0
-rw-rw-r--.1kvmkvm0Oct2500:51a.kvm
-rw-rw-r--.1xenxen0Oct2500:50a.xen
-rw-rw-r--.1xenmygrp0Oct2501:01b.xen







本文出自“岁月在流逝,辉煌仍然在”博客,请务必保存此出处http://taokey.blog.51cto.com/4633273/1329992


欢迎大家来到仓酷云论坛!
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-16 23:42:53 | 只看该作者

CentOS教程之CentOS特别权限位之setuid、setgid和sticky

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
透明 该用户已被删除
板凳
发表于 2015-1-24 14:43:22 | 只看该作者
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
若天明 该用户已被删除
地板
发表于 2015-2-1 18:14:50 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
精灵巫婆 该用户已被删除
5#
发表于 2015-2-22 20:12:03 | 只看该作者
发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
小魔女 该用户已被删除
6#
发表于 2015-3-14 15:21:34 | 只看该作者
老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
7#
发表于 2015-3-21 13:25:55 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表