SGID与执行权限的验证
linux基础教程之特殊权限SUID、SGID和SBIT

linux基础教程之特殊权限SUID、SGID和SBIT前⾔对于linux中⽂件或⽬录的权限,应该都知道普通的rwx权限。
Linux的权限不是很细致,只有RWX三种r(Read,读取):对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览⽬录的权限。
w(Write,写⼊):对⽂件⽽⾔,具有新增,修改,删除⽂件内容的权限;对⽬录来说,具有新建,删除,修改,移动⽬录内⽂件的权限。
x(eXecute,执⾏):对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录了来说该⽤户具有进⼊⽬录的权限。
1、⽬录的只读访问不允许使⽤cd进⼊⽬录,必须要有执⾏的权限才能进⼊。
2、只有执⾏权限只能进⼊⽬录,不能看到⽬录下的内容,要想看到⽬录下的⽂件名和⽬录名,需要可读权限。
3、⼀个⽂件能不能被删除,主要看该⽂件所在的⽬录对⽤户是否具有写权限,如果⽬录对⽤户没有写权限,则该⽬录下的所有⽂件都不能被删除,⽂件所有者除外4、⽬录的w位不设置,即使你拥有⽬录中某⽂件的w权限也不能写该⽂件我们先看看下⾯两个的权限是什么⾮常奇怪,/tmp⽬录和 passwd⽂件的权限怎么怪怪的,怎么有s和t权限呢。
看了下⾯的内容你就明⽩了。
1 SUID当s出现在⽂件拥有者的x权限上时,如我们上⾯看到的/usr/bin/passwd这个⽂件的权限时-rwsr-xr-x,此时就被称为SET UID简称SUID.SUID对于⼀个⽂件有什么限制和功能呢?SUID权限仅对⼆进制可执⾏⽂件有效执⾏者对于该⽂件具有x的权限本权限仅在执⾏该⽂件的过程中有效执⾏者将具有该⽂件拥有者的权限例如普通⽤户⽤passwd修改⾃⼰的命令,实际上最终更改的是/etc/passwd⽂件. 此⽂件时⽤户管理配置⽂件,只有root权限才能更改。
既然是root⽤户才拥有此权限,为什么我们可以通过passwd命令来修改密码呢,那这就要归功于passwd设置了suid权限位了。
此时普通⽤户通过执⾏passwd命令,临时拥有root权限,间接的修改/etc/passwd,以达到修改⾃⼰密码的权限。
基于Linux的网络安全策略和保护措施

基于Linux的网络安全策略和保护措施因为较之微软的Windows NT网络操作系统而言,Linux系统具有更好的稳定性、效率性和安全性。
操作系统需具备相当的实时性、可靠性和稳定性,因此整个系统广泛采用Linux操作系统作为应用的基础平台。
而Linux系统内核是开放的源代码,网络本身的安全也面临着重大的挑战,随之而来的信息安全问题也日益突出。
Linux网络操作系统是用于管理计算机网络中的各种软硬件资源,实现资源共享,并为整个网络中的用户提供服务,保证网络系统正常运行的一种系统软件。
如何确保网络操作系统的安全,是网络安全的根本所在。
只有网络操作系统安全可靠,才能保证整个网络的安全。
因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。
1. Linux网络操作系统的基本安全机制Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。
因此,网络系统管理员必须谨慎地设置这些安全机制。
1.1 Linux系统的用户帐号在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。
在Linux系统中,系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。
在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。
但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。
进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。
1.2 Linux的文件系统权限Linux文件系统的安全主要是通过设置文件的权限来实现的。
每一个Linux 的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。
centos7用户,组及文件权限管理

centos7⽤户,组及⽂件权限管理centos7安装过程中如果没有创建⽤户的话,默认只有ROOT⽤户,这个⽤户是具有最⾼权限的帐户,可以做任何事情,但实际⽣产环境中我们⼀般不会使⽤这个⽤户,因为权限太⼤了,很危险。
所以在⽣产环境中就要创建⼀个或多个⽤户帐户,分配合适的权限来使⽤,⽤过windows的都知道,windows也是多⽤户,多任务的操作系统,每个⽤户也都有配置⽂件,⽤来定义和保存⽤户的环境变量,包括⽤户的家⽬录,桌⾯等的配置。
那么linux同样也是多⽤户,多任务操作系统,同样可以创建多个⽤户,定义每个⽤户的所属组,家⽬录,登录的shell,邮件等等环境变量。
在centos7中和⽤户相关的配置⽂件主要包括以下这么⼏个/etc/passwd此⽂件保存着:⽤户名:密码:UID:GID:⽤户描述:主⽬录:登录shell/etc/shadow此⽂件记录的⾏与passwd中的⾏⼀⼀对应,保存着:⽤户名:密码:最后⼀次修改时间:最⼩时间间隔:最⼤时间间隔:警告时间:不活动时间:失效时间:标志/etc/group此⽂件保存着:⽤户组名称:⽤户组密码:GID:⽤户列表(多个⽤户之间⽤,分隔)/etc/gshadow此⽂件与/etc/group⽂件中的⾏对应,保存着:⽤户组名:加密码后的密码:组管理员(多个⽤,分隔):组成员(多个⽤,分隔)/etc/default/useradd这个⽂件主要保存着创建账户时的默认值,使⽤useradd –D查看到的内容就是这个⽂件中的内容。
/etc/skel这是个⼀个⽬录,相当于windows中公⽤的账号环境设置,⽐如,可以在这个⽬录⾥放⼀个⽂本⽂件,当创建⽤户时,在每个⽤户的家⽬录⾥都可以看到这个⽂件,当然也可以放置公共的配置⽂件,创建⽤户时就可以延⽤这个配置。
/etc/login.defs这个是⽤来设置⽤户帐号限制的配置⽂件,⽐如密码的最⼤过期天数,长度等,但优先级⼩于/etc/shadow/etc/profile这个⽂件主要⽤来保存环境变量的,是全局的,由系统管理员管理~/.bashrc .bash_history .bash_profile .bash_logout 等这些⽂件主要⽤来定义⽤户的环境变量的。
Linux 第4组权限(特殊权限)的概念

运行如下 4条命令
对以上的4条命令的解释: 第1条给file+3x.test的u加特殊权限suid,因为 其u原来有x权限,所以它的x权限变为小写的s。
第2条命令给file+2x.test的g加特殊权限sgid,因 为其g原来有x权限,所以它的x权限变为小写的s。 第3条命令给file+2x.test的o加特殊权限sticky, 因为其o原来没有x权限,所以它的x权限变为大写 的T。
s
suid代替所有者(u) 最后一位执行权限
s
sgid代替用户组(g) 最后一位执行权限
t
sticky代替其它用户(o) 最后一位执行权限
suid sgid sticky U G O -r w x r - x r - x drw - r - - r - -
这个文件的所有用户 都 具有执行权限Βιβλιοθήκη 这个文件夹的所有用户 都 没有执行权限
文件加suid后 文件夹加suid后
suid sgid sticky U G O -r w s r - x r - x drwS r - - r - suid sgid sticky U G O -r w x r - s r - x drw - r - S r - suid sgid sticky U G O -r w x r - x r - t drw - r - - r - T
Linux 第4组权限(特殊权限的概念)
suid sgid sticky U G O -r w x r - x r - x drw x r - x r - x
suid sgid sticky U G O -r w x r - x r - x drw x r - x r - x
suid sgid sticky U G O -r w x r - x r - x drw x r - x r - x
网络安全的评估标准

1.4 网络安全的评估标准
1.4.1
为实现对网络安全的定性评价,美国国防部所属的国家计 算机安全中心(NCSC)在20世纪90年代提出了网络安全性标准 (DoD5200.28-STD),即可信任计算机标准评估准则(Trusted Computer Standards Evaluation Criteria),也叫橘黄皮书(Orange Book)。该标准认为要使系统免受攻击,对应不同的安全级别, 硬件、软件和存储的信息应实施不同的安全保护。 安全级别对 不同类型的物理安全、用户身份验证(Authentication)、操作系 统软件的可信任性和用户应用程序进行了安全描述。
5
第1章 网络安全 4. B1级 B级又称作被标签的安全性保护,分为三个子级别。 B1 级或称标准安全保护(Labeled Security Protection),是支持多 级安全的第一个级别,这一级说明了一个处于强制性访问控 制之下的对象, 不允许文件的拥有者改变其许可权限。
6
第1章 网络安全 5. B2级 B2级也称为结构保护(Structured Protection),要求计算 机系统中所有对象都加标签,而且给设备分配单个或多个安全 级别。 这是提出的较高安全级别的对象与另一个较低安全级 别的对象相互通信的第一个级别。
管理员可能容易损害系统安全。另外, 许多日常系统管理任务能由
以root注册的用户来执行。 随着现在计算机系统的分散化,随便走
进一个组织,你都会发现两三个以上的人知道根口令,这已经是司
空见惯的事,由于过去无法区分具体是哪个人对系统所做的改变,
因此这本身就是一个问题。
4
第1章 网络安全 3. C2
除C1包含的特征外,C2级还包括其它的创建受控访问环境 (Controlled-access environment)的安全特性。该环境具有进一步 限制用户执行某些命令或访问某些文件的能力。这不仅基于许可 权限,而且基于身份验证级别。另外,这种安全级别要求对系统 加以审核。审核可用来跟踪记录所有与安全有关的事件, 比如哪 些是由系统管理员执行的活动。审核的缺点是它需要额外的处理 器和磁盘子系统资源。使用附加身份验证,对于一个C2系统的用 户来说,是可能在没有根口令的情况下有权执行系统管理任务的, 这时单独的用户执行了系统管理任务而可能不是系统管理员。 附 加身份验证不可与SGID和SUID许可权限相混淆,它是允许用户 执行特定命令或访问某些核心表的特定身份验证,如,无权浏览 进程表的用户,当执行ps命令时,只能看到自己的进程。
SUID、SGID、Sticky 区别

[root@srv tmp]# chmod u+s test6
l 为文件test8增加SUID属性。在使用数字表示时,原来的三位不变,只是增加了一个千位专门用于SUID、SGID、Sticky属性。下面的4就是SUID属性。
[root@srv tmp]# chmod 1755 test5/
l 为目录test1增加SGID和Sticky属性,3=2(SGID)+1(Sticky)。
[root@srv tmp]# chmod 3755 test1/
l 执行上述更改命令后当前目录的情况。
如果在浏览文件时,发现拥有组权限的第三位是一个大写的"S"则表明该文件的SGID属性无效,比如将SGID属性给一个没有执行权限的文件。
Sticky属性
Sticky属性只能应用在目录,当目录拥有Sticky属性所有在该目录中的文件或子目录 无论是什么权限只有文件或子目录所有者和root用户能删除 。比如当用户test8在"/charles"目录中建立一个文件并将该文件权限配置为777,当/charles目录拥有Sticky属性时,只有root和test8用户可以将该文件删除。在使用"ls -l"或"ll"命令浏览目录时,如果其他用户权限的第三位是一个小写的"t"就表明该执行文件或目录拥有Sticky属性。
l #为文件test7增加SUID和SGID属性,6=4(SUID)+2(SGID)。
[root@srv tmp]# chmod 6555 test7
l 为目录test4增加Sticky属性。
unix文件权限

unix⽂件权限⼀、UNIX下关于⽂件权限的表⽰⽅法和解析SUID 是 Set User ID, SGID 是 Set Group ID的意思。
UNIX下可以⽤ls -l 命令来看到⽂件的权限。
⽤ls命令所得到的表⽰法的格式是类似这样的:-rwxr-xr-x 。
下⾯解析⼀下格式所表⽰的意思。
这种表⽰⽅法⼀共有⼗位:9 8 7 6 5 4 3 2 1 0- r w x r - x r - x第9位表⽰⽂件类型,可以为p、d、l、s、c、b和-:p表⽰命名管道⽂件d表⽰⽬录⽂件l表⽰符号连接⽂件-表⽰普通⽂件s表⽰socket⽂件c表⽰字符设备⽂件b表⽰块设备⽂件第8-6位、5-3位、2-0位分别表⽰⽂件所有者的权限,同组⽤户的权限,其他⽤户的权限,其形式为rwx:r表⽰可读,可以读出⽂件的内容w表⽰可写,可以修改⽂件的内容x表⽰可执⾏,可运⾏这个程序没有权限的位置⽤-表⽰例⼦:ls -l myfile显⽰为:-rwxr-x--- 1 foo staff 7734 Apr 05 17:07 myfile表⽰⽂件myfile是普通⽂件,⽂件的所有者是foo⽤户,⽽foo⽤户属于staff组,⽂件只有1个硬连接,长度是7734个字节,最后修改时间4⽉5⽇17:07。
所有者foo对⽂件有读写执⾏权限,staff组的成员对⽂件有读和执⾏权限,其他的⽤户对这个⽂件没有权限。
如果⼀个⽂件被设置了SUID或SGID位,会分别表现在所有者或同组⽤户的权限的可执⾏位上。
例如:1、-rwsr-xr-x 表⽰SUID和所有者权限中可执⾏位被设置2、-rwSr--r-- 表⽰SUID被设置,但所有者权限中可执⾏位没有被设置3、-rwxr-sr-x 表⽰SGID和同组⽤户权限中可执⾏位被设置4、-rw-r-Sr-- 表⽰SGID被设置,但同组⽤户权限中可执⾏位没有被社其实在UNIX的实现中,⽂件权限⽤12个⼆进制位表⽰,如果该位置上的值是1,表⽰有相应的权限:11 10 9 8 7 6 5 4 3 2 1 0S G T r w x r w x r w x第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上⾯的三组rwx位。
Linux文件权限详解

Linux⽂件权限详解在Linux中的每⼀个⽂件或⽬录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些⽂件和⽬录。
通过设定权限可以从以下三种访问⽅式限制访问权限:只允许⽤户⾃⼰访问;允许⼀个预先指定的⽤户组中的⽤户访问;允许系统中的任何⽤户访问。
同时,⽤户能够控制⼀个给定的⽂件或⽬录的访问程度。
⼀个⽂件活⽬录可能有读、写及执⾏权限。
当创建⼀个⽂件时,系统会⾃动地赋予⽂件所有者读和写的权限,这样可以允许所有者能够显⽰⽂件内容和修改⽂件。
⽂件所有者可以将这些权限改变为任何他想指定的权限。
⼀个⽂件也许只有读权限,禁⽌任何修改。
⽂件也可能只有执⾏权限,允许它想⼀个程序⼀样执⾏。
三种不同的⽤户类型能够访问⼀个⽬录或者⽂件:所有着、⽤户组或其他⽤户。
所有者就是创建⽂件的⽤户,⽤户是所有⽤户所创建的⽂件的所有者,⽤户可以允许所在的⽤户组能访问⽤户的⽂件。
通常,⽤户都组合成⽤户组,例如,某⼀类或某⼀项⽬中的所有⽤户都能够被系统管理员归为⼀个⽤户组,⼀个⽤户能够授予所在⽤户组的其他成员的⽂件访问权限。
最后,⽤户也将⾃⼰的⽂件向系统内的所有⽤户开放,在这种情况下,系统内的所有⽤户都能够访问⽤户的⽬录或⽂件。
在这种意义上,系统内的其他所有⽤户就是other⽤户类。
每⼀个⽤户都有它⾃⾝的读、写和执⾏权限。
第⼀套权限控制访问⾃⼰的⽂件权限,即所有者权限。
第⼆套权限控制⽤户组访问其中⼀个⽤户的⽂件的权限。
第三套权限控制其他所有⽤户访问⼀个⽤户的⽂件的权限,这三套权限赋予⽤户不同类型(即所有者、⽤户组和其他⽤户)的读、写及执⾏权限就构成了⼀个有9种类型的权限组。
--------------------------------------分割线 --------------------------------------Linux⽂件权限和访问模式链接UNIX⽂件权限之“设置⽤户ID位”Linux ⽂件权限 chmod chownLinux权限补充:rwt rwT rws rwS 特殊权限Linux⽤户及⽤户组权限Linux三个特殊权限 setuid setgid stick bitLinux系统⼊门教程:Linux ⽂件权限简单说明Linux下⽤户组、⽂件权限详解--------------------------------------分割线 --------------------------------------我们可以⽤-l参数的ls命令显⽰⽂件的详细信息,其中包括权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对SETGID 的验证经过:
如果给一个可执行文件的属组,再给此文件设置 setgid 位,
那么,属于此组的用户都可以执行此文件,其他的用户不行。
[root@dns02 ~]# groupadd operators
[root@dns02 ~]# ls -lsa /bin/mount
64 -rwsr-xr-x 1 root root 60432 Jan 20 2010 /bin/mount
[root@dns02 ~]# chgrp operators /bin/mount
[root@dns02 ~]#
[root@dns02 ~]# ls -lsa /bin/mount
64 -rwxr-xr-x 1 root operators 60432 Jan 20 2010 /bin/mount
给可执行文件 /bin/mount 设置 setgid,然后去掉其他用户的执行权限
[root@dns02 ~]# chmod g+s,o-rwx /bin/mount
[root@dns02 ~]# useradd gao
[root@dns02 ~]# usermod -G operators gao
[root@dns02 ~]# useradd jian
用属于组 operators 的用户 gao 来验证,看是否可以执行 /bin/mount 指令
[root@dns02 ~]# su - gao
[gao@dns02 ~]$ /bin/mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
mount: warning /etc/mtab is not writable (e.g. read-only filesystem).
It's possible that information reported by mount(8) is not
up to date. For actual information about system mount points
check the /proc/mounts file.
[gao@dns02 ~]$ exit
logout
su
用不属于组 operators 的用户 jian 来验证,看是否可以执行 /bin/mount 指令[root@dns02 ~]# su - jian
[jian@dns02 ~]$ /bin/mount
-bash: /bin/mount: Permission denied
[jian@dns02 ~]$ ls
[jian@dns02 ~]$ exit
logout。