欢迎来到腾佑科技,服务器租用托管专家!   

帮助中心

搜索热词:服务器托管vps找回密码发票申请虚拟主机

解析Linux中的文件基本权限

发布时间:2013-7-3 17:39:32      浏览次数:
1、文件的权限
1.1 文件的基本权限
rwx分别对应文件的读权限、写权限和可执行权限,然而,对于目录来说,这三种权限有不同的含义。目录的读权限允许读取目录中文件和子目录的列表,目录的写权限允许在目录中创建或删除文件或目录,目录的可执行权限指明是否可以访问目录中的文件和子目录。
1.2 setuid、setgid和sticky bit
实际上,除了最基本的读、写和执行权限之外,Linux中还有setuid、setgid和sticky bit等三种权限。下面分别解释这三种权限。
1.2.1 setuid权限
setuid可以设置使文件在执行阶段具有文件所有者的权限。setuid属性出往往用用户权限的第三个字符表示:如果用户权限的第三个字符是s,则表示该文件的属主对该文件有可执行权限的同时,该文件还有setuid权限;如果用户权限的第三个字符是S,则表示该文件的属主对该文件没有可执行权限,但是该文件有setuid权限(实际上,从下文也可一看出,这种情况,没有可执行权限只有setuid权限无任何意义)。setuid权限允许用户以其文件拥有者的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。从下面的例子中可以看出setuid权限的意思。
Linux中的密码通常是保存在"/etc/paswd"和"/etc/shadow"文件中,这两个文件对系统安全至关重要,因此只有Root用户才能对其执行读写操作。以管理员的身份登陆系统,在Linux提示符下执行"ls /etc/passwd /etc/shadow"命令,在返回信息中可以看到普通用户对上述这两个文件并没有写权限,因此从文件属性的角度看,普通用户在更改自身密码时,是无法将密码信息写入到上述文件中的,哪么用户是怎样成功的更改密码的呢?实际上,问题的关键不在于密码文件本身,而在于密码更改命令"passwd"。在提示符下执行命令"ls /usr/bin/passwd",在返回信息中的文件所有者执行权限位上显示"s"字样,表示"passwd"命令具setuid权限,其所有者为root,这样普通用户在执行"passwd"命令时,实际上以有效用户root的身份来执行的,并具有了相应的权限(包括读写passwd和shadow文件的权限),从而将新的密码写入到"/etc/passwd"和"/etc/shadow"文件中,当命令执行完毕,该用户的身份立即消失。这样,通过setuid权限,普通用户在执行passwd程序时,也能获得passwd程序属主(root)一样的权限(也可以对文件passwd和shadow进行读写)。这样,普通用户也可以通过passwd工具来修改自身密码。
1.2.2 setgid权限
setgid权限的含义和setuid类似,它允许用户以其拥有者所在的组的权限来执行可执行文件。setgid属性往往用用户组权限的第三个字符表示:如果用户权限的第三个字符是s,则表示该文件的属主对该文件有可执行权限的同时,该文件还有setgid权限;如果用户组权限的第三个字符是S,则表示该文件的属主对该文件没有可执行权限,但是该文件有setgid权限(实际上,从下文也可一看出,这种情况,没有可执行权限只有setuid权限无任何意义)。setgid权限允许用户以其文件拥有者所在组的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。
1.2.3 sticky bit
sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。
sticky bit出现在其他用户权限中的执行权限(x)位置,使用t或T表示。t表示既有可执行权限,又设置了sticky bit,T表示只设置了sticky bit而没有设置可执行权限。
2、管理文件权限
2.1 设置基本权限
2.1.1 用助记符的方式设置文件基本权限
可以采用"chmod u=rwx g=rw o=r filename"来设置文件的权限。其中u代表用户的权限,g代表用户所带组的权限,o代表其它用户的权限。如果要添加权限可以"chmod a+x filename"(给所有的用户添加可执行权限),"chmod o+x filename"给其他用户增加可执行权限。如果要删除相应的权限,可以"chmod a-x filename"(删除所有用户的可执行权限)。
2.1.2 用八进制数的方式设置文件的基本权限
也可以采用八进制数的形式。读、写和执行权限都有与之对应的唯一的8进制数:r(4),w(2),x(1)。我们可以将权限序列的八进制值相加来获得所需的权限组合:rwx(4+2+1=7),rw-(4+2=6),r-x(4+1=5)等。因此,用8进制设置权限的命令为"chmod 765 filename"。
2.2 设置setuid,setgid和sticky bit
2.2.1 用助记符的方式
chmod u +s temp -- 为temp文件加上setuid标志
chmod g +s tempdir -- 为tempdir目录加上setgid标志
chmod o +t temp -- 为temp文件加上sticky标志
2.2.2 采用八进制方式
对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下:
abc
a - setuid位, 如果该位为1, 则表示设置setuid 4xxx
b - setgid位, 如果该位为1, 则表示设置setgid 2xxx
c - sticky位, 如果该位为1, 则表示设置sticky 1xxx
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r-- 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志
对于setuid,setgid和sticky bit,如果表示这写权限的位上本来有x, 则这些特殊标志显示为小写字母 (s, s, t);若无执行权限则显示为大写字母(S, S, T)。
3、其它
文件的权限是为了使用的安全性和方便性而设置的,了解这写权限的含义能是我们更加方便的使用Linux,防制由于文件权限管理不善而带来的安全问题。实际上,在设置文件的权限时,应该慎重考虑,尤其是在使用setuid、setgid和sticky bit等权限的时候。
腾佑科技是一家互联网业务平台服务提供商,是知识和技术密集型的高新技术企业.公司主要向客户提供内容分发与加速、服务器托管服务器租用等互联网业务平台解决方案,是国内最早开展IDC和CDN业务的厂商之一。
腾佑科技作为国内顶级互联网基础应用服务提供商,有自己的自主机房和产权,拥有双线服务器,拥有大型的机房三座,顺应时代发展和客户需求,在服务器托管服务器租用方面,具备多项优势,特别适用于对网站运行质量有较高要求的用户。而且有自己成熟的虚拟化技术,推出了绿谷云云主机平台,经过一部分客户的试用,赢得了一致好评。欢迎广大客户前来选购。
www.tuidc.com提供