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命令显⽰⽂件的详细信息,其中包括权限。
Shell脚本中的用户和权限管理的高级技巧
Shell脚本中的用户和权限管理的高级技巧在Shell脚本中,用户和权限的管理是非常重要的一项技巧。
通过合理地设置用户和权限,可以确保系统的安全性和稳定性。
本文将介绍一些Shell脚本中用户和权限管理的高级技巧。
一、用户管理在Shell脚本中,可以通过用户管理命令来管理用户,例如"adduser"、"usermod"和"userdel"等命令。
1. 添加用户使用"adduser"命令可以添加新用户。
在使用"adduser"命令时,可以通过参数指定一些附加属性,如用户的家目录、默认Shell环境等。
例如,下面的命令将添加一个名为"testuser"的新用户:adduser testuser2. 修改用户属性使用"usermod"命令可以修改用户的属性。
例如,可以使用"usermod -l"命令修改用户的用户名,使用"usermod -d"命令修改用户的家目录。
例如,下面的命令将将用户名为"testuser"的用户修改为"newuser":usermod -l newuser testuser3. 删除用户使用"userdel"命令可以删除用户。
例如,下面的命令将删除名为"testuser"的用户:userdel testuser二、权限管理在Shell脚本中,可以使用权限管理命令来管理文件和目录的权限,例如"chmod"和"chown"等命令。
1. 修改文件权限使用"chmod"命令可以修改文件的权限。
其中,权限可以使用数字或符号表示。
例如,使用数字表示权限时,可以使用"chmod 755 file"命令将文件的权限设置为rwxr-xr-x。
深入理解linux的权限设置和SUID,SGID以及粘滞
深入理解linux的权限设置和SUID,SGID以及粘滞位我们知道文件的权限可以用三个八进制数字表示。
其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个。
那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限。
这个八进制数字的三个位是:SUID SGID sticky-bit的含义分别是:set uid ;set gid;sticky bit区别每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.setuid: 在执行时具有文件所有者的权限.setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。
如何设置:操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户) chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名) chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)2) 采用八进制方式. 这一组八进制数字三位的意义如下,abca - setuid位, 如果该位为1, 则表示设置setuidb - setgid位, 如果该位为1, 则表示设置setgidc - sticky位, 如果该位为1, 则表示设置sticky设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)如:rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)理解文件权限所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。
SUID和SGID
1、先解释一下这suid和guid(sgid)的概念。
网上流传比较广的说法,对guid(sgid)的解释不太好理解:suid:A用户对属于他自己的shell脚本文件设置了这种权限,那么其他用户在执行这个脚本的时候就拥有了A用户的权限。
所以,如果root用户对某一脚本设置了这一权限的话,则其他用户执行该脚本的时候则拥有了root用户权限。
这个是对所有其他用户开放的权限,范围比较大。
guid(sgid):A用户对属于他自己的shell脚本文件设置了这种权限,那么只有和A用户在同一组的其他用户才有执行此脚本的权限,和A用户不在同一组的用户不具有执行权限。
如果A用户是root用户,那么只有Wheel组的其他用户才能执行此脚本。
这个范围比较小,只是同一组才有权限。
两个比较起来,能用guid(sgid)的尽量不要去用suid,因为安全性相对高一些。
2、suid和guid(sgid)有什么用处呢?例如有几个大型的数据库系统,对它们进行备份需要有系统管理权限。
可以写几个脚本,并设置了它们的guid(sgid),这样就可以指定的一些用户来执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。
通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。
3、在Linux和Unix里有相当一些命令也设置了suid和guid(sgid)。
如果想找出这些命令,可以查看一下/bin、/sbin或/usr/bin目录,执行下面的命令:root# ls -l /bin | grep '^...s'root# ls -l /sbin | grep '^...s'root# ls -l /usr/bin | grep '^...s'以上面的命令是用来查找suid文件的;root# ls -l /bin | grep '^...s..s'root# ls -l /sbin | grep '^...s..s'root# ls -l /usr/bin | grep '^...s..s'上面的命令是用来查找suid和guid(sgid)的。
linux系统下特殊权限的概念和功能
linux系统下特殊权限的概念和功能在Linux系统下,特殊权限是一种用于文件和目录的权限设置,不同于普通的读、写、执行权限,特殊权限可以提供更加细粒度的权限控制和保护。
特殊权限主要包括Set-User-ID(SUID)、Set-Group-ID(SGID)和Sticky Bit。
这些权限用于提供额外的功能和安全性,确保系统和用户的安全。
首先,我们来看一下SUID权限。
SUID权限是一种特殊的权限,它允许一个普通用户在执行一个程序时,该程序以拥有文件所有者的权限来执行。
这样做可以允许普通用户执行一些仅有root权限才能执行的操作,同时确保系统的安全性。
举个例子,我们知道passwd这个命令可以用来更改用户的密码,而这个命令通常是只有root用户才能执行的。
但是,如果将passwd命令设置为SUID权限,那么普通用户也可以使用passwd命令来更改自己的密码,因为当普通用户执行passwd命令时,实际上是以root用户的身份来执行这个命令的。
接下来是SGID权限。
SGID权限是一种特殊权限,它允许一个普通用户在执行一个程序时,该程序以属组拥有者的权限来执行。
同样,这种权限也可以用来确保系统的安全性。
举个例子,假设有一个目录,里面有多个用户共享文件,如果将这个目录设置了SGID权限,那么在这个目录下创建的文件的属组会自动继承这个目录的属组。
这样可以确保不同用户创建的文件都可以被共享,并且只有属组成员才能对这些文件进行操作。
最后是Sticky Bit权限。
Sticky Bit权限是一种特殊权限,它通常用于目录,它可以防止用户误删其他用户的文件,同时确保目录的安全性。
举个例子,假设有一个共享目录,多个用户可以在这个目录下创建文件。
如果将这个目录设置了Sticky Bit权限,那么只有文件的拥有者和root用户才能删除这些文件,其他用户是无法删除这些文件的。
这样可以确保文件的安全性,防止用户误删其他用户的文件。
鸟哥笔记-专题一:Linux文件的权限rwx、特殊权限sst、隐藏权限ia
鸟哥笔记-专题⼀:Linux⽂件的权限rwx、特殊权限sst、隐藏权限ia鸟哥笔记-专题⼀:Linux⽂件的权限rwx、特殊权限sst、隐藏权限ia==========================================================================================⽬录:==========================================================================================正⽂:⼀、Linux⽂件和⽬录的权限1、可读可⾏可执⾏(r,w,x),⽬录⽂件和链接(d,-,l)Linux⽂件权限的内容我们可以知道⼀个⽂件有若⼲个属性,包括读写执⾏(r, w,x)等基本权限,及是否为⽬录(d)与⽂件(-)或者是链接⽂件(l)等等的属性!形如:drwxrwxrwx 777r—权重4w—权重2x—权重17=4+2+1,即为有rwx权限。
2、要修改属性的⽅法(chmod,chown,chgrp)修改权限chmod 770 1.txtchmod u+w 1.txt修改拥有者、组chown lisi.myweb 1.txt只修改所属组可以⽤chgrp myweb 1.txt⼩结:chmod:改变⽂件的权限,SUID,SGID,SBIT等等的特性。
chown:改变⽂件拥有者。
chgrp:改变⽂件所属群组。
3、默认权限(umask)umask 就是指定 “⽬前使⽤者在创建⽂件或⽬录时候的权限默认值”,那么如何得知或设置 umask 呢?(1)得知默认权限umask的值:[root@study ~]# umask0022 # 与⼀般权限有关的是后⾯三个数字![root@study ~]# umask -Su=rwx,g=rx,o=rx如果以上⾯的例⼦来说明的话,因为 umask 为 022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是w 这个权限),那么当使⽤者:创建⽂件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--创建⽬录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-xroot⽤户的umask默认值为022,普通⽤户的umask默认值为002。
Solaris 10 文件权限
不管在什么操作系统中,文件和文件系统都是非常重要的概念。
文件可以简单定义为有名字的一组相关信息的集合。
在Solaris 10 系统中,文件的准确定义是不包含有任何其它结构的字符流。
也就是说,文件中字符与字符之间除了同属于一个文件之外,不存在任何其它的关系。
文件中字符关系是由使用文件的应用程序来建立和解释的。
每一个文件都具有特定的属性。
Solaris 10系统的文件属性比较复杂,主要包括文件类型和文件权限两个方面。
一、Solaris 10文件类型Solaris 10 下的文件可以分为5种不同的类型:普通文件、目录文件、链接文件、设备文件和管道文件。
1.普通文件这是一类常见的文件,也是常使用的一类文件,其特点是不包含有文件系统的结构信息。
通常所接触到的文件,包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。
这种类型的文件按其内部结构又可细分为文本文件和二进制文件。
2.目录文件目录文件是用于存放文件名及其相关信息的文件,是内核组织文件系统的基本节点。
目录文件可以包含下一级目录文件或普通。
3.链接文件链接文件是一种特殊的文件,实际上是指向一个真实存在的文件的链接。
这有点类似于Windows下的快捷方式。
根据链接文件的不同,它又可以细分为硬链接文件和符号链接文件。
4.设备文件设备文件是Solaris 10 中最特殊的文件。
正是由于它的存在,使得Solaris 10 系统可以十分方便地访问外部设备。
Solaris 10 系统为外部设备提供一种标准接口,将外部设备视为一种特殊的文件。
用户可以像访问普通文件一样访问外部设备,使Solaris 10 系统可以很方便地适应不断发展的外部设备。
通常Solaris 10 系统将设备文件放在/dev目录下,设备文件使用设备的主设备号和次设备号来指定某外部设备。
根据访问数据方式的不同,设备文件又可以细分为块设备和字符设备文件。
5.管道文件管道文件是一种很特殊的文件,主要用于不同进程间的信息传递。
Shell脚本编写的高级技巧文件权限管理
Shell脚本编写的高级技巧文件权限管理文件权限是Linux系统中非常重要的一个概念,它用来控制用户对文件的读、写和执行的权限。
在Shell脚本编写中,文件权限管理是高级技巧之一,可以提高脚本的安全性和可靠性。
本文将介绍Shell脚本编写的高级技巧文件权限管理。
一、文件权限简介在Linux系统中,每个文件都有对应的权限,包括读、写和执行权限。
这些权限分为三类,即所属用户、所属组和其他用户。
通过对这些权限的设置,可以控制对文件的访问权限。
文件的读权限(r)用来控制用户是否可以读取文件的内容。
如果拥有读权限,则可以查看文件内容;如果没有读权限,则无法查看文件内容。
文件的写权限(w)用来控制用户是否可以编辑和修改文件。
如果拥有写权限,则可以修改文件内容;如果没有写权限,则无法修改文件内容。
文件的执行权限(x)用来控制用户是否可以执行文件。
对于脚本文件,需要有执行权限才能运行脚本。
二、文件权限的设置方法1. 使用chmod命令设置文件权限在Shell脚本编写中,可以使用chmod命令设置文件的权限。
该命令的使用格式为:```chmod [mode] [file]```其中,mode是权限的表示方式,可以使用数字(例如777)或字母(例如rwxrwxrwx)表示;file是要设置权限的文件名或目录名。
2. 使用符号方式设置文件权限除了使用数字和字母表示方式设置文件权限外,还可以使用符号方式设置。
符号方式包括加号(+)、减号(-)和等号(=)。
使用加号(+)可以添加权限,使用减号(-)可以删除权限,使用等号(=)可以设置权限。
例如,使用符号方式给文件添加写权限的命令如下:```chmod +w [file]```三、文件权限的高级应用1. 文件权限的继承与传递在Linux系统中,文件的权限是可以继承的。
当目录的权限被更改时,该目录下的所有文件和子目录的权限都会被相应地更改。
在Shell脚本编写中,可以利用这一特性,通过设置目录的权限来达到对文件的批量管理的目的。
简述sgid特殊权限的功能
简述sgid特殊权限的功能
Sgid(Service GROUP Identifier)是一种用于标识网络服务分组的标识符。
它是在Linux操作系统中用于划分网络服务的一种重要工具,可以让不同的服务在不同的组中运行,从而提高系统的安全性和可管理性。
Sgid的特殊权限功能主要包括以下几个方面:
1. 服务分组管理:Sgid可以根据一定的规则对网络服务进行分组,比如可
以根据服务名称、IP地址、端口号等属性进行分组,以便更好地管理和调度服务。
2. 服务权限控制:通过配置Sgid,可以控制每个分组中服务的运行权限,比如可以限制只有指定的服务可以在特定分组中运行,或者禁止所有服务在指定分组中运行。
3. 服务优先级控制:通过配置Sgid,可以控制每个分组中服务的运行优先级,以便更好地实现负载均衡和服务质量。
4. 服务监控:通过Sgid,可以实时监控网络服务的运行状态和性能指标,以便及时发现和解决问题。
Sgid的特殊权限功能在Linux系统中具有重要的作用,可以帮助管理员更好地管理和调度网络服务,提高系统的安全性和可管理性。
sgx使用方法
sgx使用方法SGX使用方法概述SGX(Software Guard Extensions)是英特尔推出的一种硬件扩展技术,用于提供安全的执行环境,保护敏感数据免受恶意软件的攻击。
本文将介绍SGX的使用方法,包括环境搭建、应用程序开发和安全性验证等方面。
一、环境搭建1. 硬件要求:SGX要求使用支持SGX的英特尔处理器。
请确保你使用的处理器支持SGX,并在BIOS中开启SGX功能。
2. 软件要求:安装最新版本的英特尔SGX驱动程序和软件开发工具包(SDK)。
3. 编译器支持:使用支持SGX的编译器进行开发,如英特尔C++编译器。
二、应用程序开发1. 引入SGX库:在应用程序中引入SGX库,可以使用英特尔提供的SGX SDK提供的库文件。
2. 定义安全区域(Enclave):在应用程序中定义一个安全区域,即将需要保护的敏感代码和数据放入该区域。
3. 编写Enclave代码:在安全区域内编写需要保护的代码,可以使用C或C++编写。
4. 编写应用程序代码:编写与Enclave交互的应用程序代码,调用Enclave中的函数进行安全计算和数据处理。
5. 编译和链接:使用SGX编译器和链接器编译和链接应用程序,生成可执行文件。
三、安全性验证1. 静态验证:使用英特尔提供的静态验证工具对Enclave代码进行验证,检测是否存在漏洞和安全隐患。
2. 动态验证:运行应用程序,使用英特尔提供的动态验证工具对Enclave进行验证,检测是否存在运行时漏洞和攻击。
四、安全性注意事项1. 输入验证:在应用程序中对输入数据进行验证,防止恶意输入导致的安全漏洞。
2. 内存安全:在Enclave中使用安全的内存管理和访问控制机制,防止缓冲区溢出和内存访问错误。
3. 密钥管理:合理管理和保护Enclave中使用的密钥,防止密钥泄露和非法使用。
4. 安全升级:及时更新和升级SGX驱动程序和SDK,以获取新的安全补丁和功能改进。
5. 安全通信:在Enclave与外部环境之间的通信中使用安全的协议和加密算法,防止数据泄露和篡改。
SGID权限简介
SGID权限简介SGID简介:1.只有可执⾏⼆进制程序才能设置SGID权限2.命令执⾏者要对该程序拥有执⾏(x)权限3.命令执⾏者在执⾏程序的时候,组⾝份升级为该可执⾏程序⽂件的属组4.SGID权限只在该程序执⾏过程中有效,也就是组⾝份只在程序执⾏过程中发⽣改变,命令结束⽤户组⾝份恢复.以⽂件查找命令locate为例说明1 [vampire@LAMP ~]$ ll /usr/bin/locate2 -rwx--s--x. 1 root slocate 35548 Sep 242012 /usr/bin/locate//拥有SGID权限,普通⽤户执⾏该命令时,组⾝份会切换到slocte使⽤locate命令查找⽂件时,实际是在/var/lib/mlocate/mlocate.db数据库中查找1 [vampire@LAMP ~]$ ll /var/lib/2 total 1403 -rw-r--r--. 1 root root 728 May 2009:32 logrotate.status4 drwxr-xr-x. 2 root root 4096 May 22016 misc5 drwxr-x---. 2 root slocate 4096 May 2009:32 mlocate //可以看到属主和所属组成员才能看到该⽬录下的⽂件67 [vampire@LAMP ~]$ cd /var/lib/mlocate/8 -bash: cd: /var/lib/mlocate/: Permission denied9 [vampire@LAMP ~]$ ll /var/lib/mlocate/10ls: cannot open directory /var/lib/mlocate/: Permission denied普通⽤户使⽤locate命令可以查找⽂件是因为执⾏locate命令时组⾝份切换到该⽬录所属组slocateSGID针对⽬录的作⽤1.普通⽤户必须对该⽬录拥有rx权限,才能进⼊此⽬录2.普通⽤户在该⽬录中的有效组会变成该⽬录的属组3.若普通⽤户对此⽬录拥有w(可创建⽂件)权限时,新创建的⽂件的默认属组是这个⽬录的属组1 [root@LAMP tmp]# chmod2775 test2 You have new mail in /var/spool/mail/root3 [root@LAMP tmp]# ll4 total 205 drwxrwsr-x 2 root root 4096 May 2016:24 test将⾝份切换为vampire1 [vampire@LAMP ~]$ cd /tmp/test/2 [vampire@LAMP test]$ ll3 total 04 [vampire@LAMP test]$ touch one.file//普通⽤户vampire没有权限在test⽬录中创建⽂件,上⾯给test⽬录赋予2775,普通⽤户只有rx权限,没有w权限5touch: cannot touch `one.file': Permission denied将test⽬录权限修改为27771 [root@LAMP ~]# chmod2777 /tmp/test/2 [root@LAMP ~]# ll /tmp/test/3 total 04 [root@LAMP ~]# ll /tmp/5 total 206 drwxrwsrwx 2 root root 4096 May 2016:24 test再将⾝份切换为vampire创建⽂件1 [vampire@LAMP ~]$ cd /tmp/test/2 [vampire@LAMP test]$ touch one.file3 [vampire@LAMP test]$ ll4 total 05 -rw-rw-r-- 1 vampire root 0 May 2016:37 one.file//新建⽂件的默认属组是这个⽬录(test)的属组(root)。
简述sgid特殊权限的功能
简述sgid特殊权限的功能sgid特殊权限是一种特殊权限,用于设置在目录上。
与普通的rwx权限不同,sgid权限具有特殊的功能和用途。
sgid特殊权限的功能如下:1.继承属组权限:当文件或目录被设置为sgid权限时,该文件或目录创建后,其所属组将继承原目录的组,而不是创建者的组。
这样可以确保新创建的文件或目录与原目录拥有相同的组权限,避免了手动设置权限的繁琐和错误。
例如,如果一个目录的组为group1,设置了sgid权限后,新创建的文件或目录将自动属于group1组,而不是创建者本身的组。
这在多用户共享目录或团队协作环境中特别有用,可以确保所有文件和目录都具有相同的组权限,便于组内成员进行协作和管理。
2.保持目录的属组一致性:通常情况下,用户在一个目录中创建的文件或目录将继承该目录的组。
但是,如果目录的属组更改了,后续创建的文件或目录将使用新的组。
而通过设置sgid权限,可以确保目录的属组保持一致,不受后续用户或操作的影响。
例如,如果一个目录的属组为group1,但后续用户创建的文件或目录的属组为group2。
如果这个目录设置了sgid权限,则新创建的文件或目录将自动属于group1组,而不受后续创建者自身组的影响。
这样可以确保目录中所有文件和目录的属组都一致,不需要手动调整。
3.限制删除权限:sgid权限还可以限制对目录的删除权限。
当一个目录设置了sgid权限,并且具有适当的权限设置时,即使用户拥有对目录的写权限,也无法删除该目录。
这在某些情况下非常有用,例如,当一个目录是一个公共共享目录,多个用户可以对其进行写操作但不允许删除。
通过设置sgid权限,可以确保目录的完整性和持久性,防止误删除或恶意删除。
4.影响文件传递属性:sgid权限还可以影响文件的传递属性。
当一个目录设置了sgid权限时,如果向该目录中复制一个文件或目录,复制的文件或目录将继承自身的属组,并且传递属性中的sgid位将被设置。
- 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。