- 浏览: 199754 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
liping0423:
这边文章 的很不错,拿去用了。谢谢
Oracle时间加减 -
Salyang:
黑莓软件还是很多的,而且我有整理,发布在我的站点里了,www. ...
BlackBerry手机常用软件(在8820中测试通过) -
bulktree:
应该有个清单吧
BlackBerry手机常用软件(在8820中测试通过) -
binyan17:
xkorey 写道那些软件都是什么功能?介绍下吧。
里面的软件 ...
BlackBerry手机常用软件(在8820中测试通过) -
xkorey:
那些软件都是什么功能?介绍下吧。
BlackBerry手机常用软件(在8820中测试通过)
一、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表示可执行,可运行这个程序
没有权限的位置用-表示
其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是
1,表示有相应的权限:
11 10 9 8 7 6 5 4 3 2 1 0
S G T r w x
r w x r w x
第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位。
11 10 9 8 7 6 5 4 3 2 1 0
上面的-rwsr-xr-x的值为: 1 0 0 1 1 1 1 0
1 1 0 1
-rw-r-Sr--的值为: 0 1 0 1 1 0 1 0 0 1 0 0
给文件加SUID和SUID的命令如下:
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
chmod g+s filename 设置SGID位
chmod g-s filename 去掉SGID设置
另外一种方法是chmod命令用八进制表示方法的设置。如果明白了前面的12位权限表示法也很简单。
二、SUID和SGID的详细解析
Set UID
会创建s与t权限,是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限。举例来说,我们知道,账号与密码的存放文件其实是 /etc/passwd与 /etc/shadow。而 /etc/shadow文件的权限是“-r--------”。它的拥有者是root。在这个权限中,仅有root可以“强制”存储,其他人是连看都不行的。
但是,偏偏笔者使用dmtsai这个一般身份用户去更新自己的密码时,使用的就是 /usr/bin/passwd程序,却可以更新自己的密码。也就是说,dmtsai这个一般身份用户可以存取 /etc/shadow密码文件。这怎么可能?明明 /etc/shadow就是没有dmtsai可存取的权限。这就是因为有s权限的帮助。当s权限在user的x时,也就是类似 -r-s--x--x,称为Set UID,简称为SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。那么,我们就可以知道,当dmtsai用户执行 /usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。
SUID仅可用在“二进制文件(binary file)”,SUID因为是程序在执行过程中拥有文件拥有者的权限,因此,它仅可用于二进制文件,不能用在批处理文件(shell脚本)上。这是因为shell脚本只是将很多二进制执行文件调进来执行而已。所以SUID的权限部分,还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。当然,SUID对目录是无效的。这点要特别注意。
Set GID
进一步而言,如果s的权限是在用户组,那么就是Set GID,简称为SGID。SGID可以用在两个方面。
文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(effective group)将会变成该程序的用户组所有者(group id)。
目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。
一般来说,SGID多用在特定的多人团队的项目开发上,在系统中用得较少。
Sticky Bit
这个Sticky Bit当前只针对目录有效,对文件没有效果。SBit对目录的作用是:“在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除”。换句话说:当甲用户在A目录下拥有group或other的项目,且拥有w权限,这表示甲用户对该目录内任何人建立的目录或文件均可进行“删除/重命名/移动”等操作。不过,如果将A目录加上了Sticky bit的权限,则甲只能够针对自己建立的文件或目录进行删除/重命名/移动等操作。
举例来说,/tmp本身的权限是“drwxrwxrwt”,在这样的权限内容下,任何人都可以在 /tmp内新增、修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。这个特性也很重要。可以这样做个简单测试:
1. 以root登入系统,并且进入 /tmp中。
2. touch test,并且更改test权限成为777。
3. 以一般用户登入,并进入 /tmp。
4. 尝试删除test文件。
更多关于SUID/SGID/Sticky Bit的介绍,我们会在第11章中再次提及,当前,先有简单的概念即可。
SUID/SGID/SBIT权限设置
前面介绍过SUID与SGID的功能,那么,如何打开文件使其成为具有SUID与SGID的权限呢?这就需要使用数字更改权限了。现在应该知道,使用数字更改权限的方式为“3个数字”的组合,那么,如果在这3个数字之前再加上一个数字,最前面的数字就表示这几个属性了(注:通常我们使用chmod xyz filename的方式来设置filename的属性时,则是假设没有SUID、SGID及Sticky bit)。
4为SUID
2为SGID
1为Sticky bit
假设要将一个文件属性改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID,因此,在原先的755之前还要加上4,也就是使用“chmod 4755 filename”来设置。此外,还有大S与大T的产生。参考下面的范例(注意:下面的范例只是练习而已,所以笔者使用同一个文件来设置,必须知道,SUID不是用在目录上,SBIT不是用在文件上)。
[root@linux ~]# cd /tmp [root@linux tmp]# touch test [root@linux tmp]# chmod 4755 test; ls -l test -rwsr-xr-x 1 root root 0 Jul 20 11:27 test [root@linux tmp]# chmod 6755 test; ls -l test -rwsr-sr-x 1 root root 0 Jul 20 11:27 test [root@linux tmp]# chmod 1755 test; ls -l test -rwxr-xr-t 1 root root 0 Jul 20 11:27 test [root@linux tmp]# chmod 7666 test; ls -l test -rwSrwSrwT 1 root root 0 Jul 20 11:27 test |
# 这个例子要特别小心。怎么会出现大写的S与T呢?不都是小写的吗?
# 因为s与t都是取代x参数的,但是,我们是使用
# 7666。也就是说,user、group以及others都没有x这个可执行的标志
# (因为666)。所以,S、T表示“空的”。
# SUID是表示“该文件在执行时,具有文件拥有者的权限”,但文件
# 拥有者都无法执行了,哪里来的权限给其他人使用呢?当然就是空的
三、文件隐藏属性
文件有隐藏属性,隐藏属性对系统有很大的帮助。尤其是在系统安全(Security)方面,非常重要。下面我们就来谈一谈如何设置与检查这些隐藏的属性。
chattr(设置文件隐藏属性)
[root@linux ~]# chattr [+-=][ASacdistu] 文件或目录名
参数:
+ : 增加某个特殊参数,其他原本存在的参数不动。
- : 删除某个特殊参数,其他原本存在的参数不动。
= : 设置一定,且仅有后面接的参数
A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。
S : 这个功能有点类似sync。就是将数据同步写入磁盘中。可以有效地避免数据流失。
a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。
c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。
d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。
i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。
j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。
s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。
u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除.
注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。
范例:
[root@linux ~]# cd /tmp [root@linux tmp]# touch attrtest [root@linux tmp]# chattr +i attrtest [root@linux tmp]# rm attrtest rm: remove write-protected regular empty file `attrtest'? y rm: cannot remove `attrtest': Operation not permitted |
# 看到了吗?连root也没有办法删除这个文件。赶紧解除设置。
[root@linux tmp]# chattr -i attrtest
这个命令很重要,尤其是在系统的安全性方面。由于这些属性是隐藏的,所以需要用lsattr才能看到。笔者认为,最重要的是 +i属性,因为它可以让一个文件无法被更改,对于需要很高系统安全性的人来说,相当重要。还有相当多的属性是需要root才能设置的。此外,如果是登录文件,就更需要 +a参数,使之可以增加但不能修改与删除原有的数据。将来提到登录文件时,我们再来介绍如何设置它。
lsattr(显示文件的隐藏属性)
[root@linux ~]# lsattr [-aR] 文件或目录
参数:
-a : 将隐藏文件的属性也显示出来。
-R : 连同子目录的数据也一并列出来。
范例:
[root@linux tmp]# chattr +aij attrtest
[root@linux tmp]# lsattr
----ia---j--- ./attrtest
使用chattr设置后,可以利用lsattr来查看隐藏属性。不过,这两个命令在使用上必须要特别小心,否则会造成很大的困扰。例如,某天你心情好,突然将 /etc/shadow这个重要的密码记录文件设置为具有i属性,那么,过了若干天之后,突然要新增用户,却一直无法新增。怎么办?将i的属性去掉即可。
发表评论
-
CentOS7内核优化参数
2015-01-20 15:14 12164参考:http://www.centoscn.com/Cen ... -
CentOS下安装VNCSERVER
2014-05-27 23:59 10321、检查安装包: rpm -q vnc vnc-serve ... -
[转]scp 命令
2014-04-10 09:44 792scp 可以在 2个 linux 主机间复制文件; 命令基 ... -
Apache添加多用户虚拟主机管理模块
2013-01-04 22:30 0wget http://mpm-itk.sesse.net/a ... -
Linux服务器安装札记
2012-10-18 00:39 0所有配置是基于 CentOS 6.2上: 1、查看DN ... -
Nginx在Linux中系统服务配置脚本
2012-09-29 00:56 8959以下代码是在前人的基础上,结合自己服务器实际情况修改的,本人服 ... -
Windows及Linux下的虚拟主机Web管理软件
2012-09-28 21:38 2215Windows平台:Parallels、Zkeys(宏杰虚拟主 ... -
【转】Nginx——防止webshell跨目录
2012-03-19 22:50 1824原文地址: http://www.itdhz.com/post ... -
apache htpasswd命令用法
2012-02-17 21:05 0apache htpasswd命令用法介 ... -
在Centos中yum安装和卸载软件的使用方法
2012-02-17 21:04 1036在Centos中yum安装和卸载软件的使用方法安装方法安 ... -
RPM 安装与卸载命令
2012-02-17 20:44 1171RPM(Red Hat Package Manager) ... -
织梦DedeCMS v5.7全文检索使用说明(sphinx)
2011-12-19 00:20 2312官方网站:http://www.sphinxsearc ... -
Suse 10 下NFS的配置
2011-05-15 21:01 3074服务端的配置:1、编辑 ... -
crontab 文件条目格式
2011-05-06 10:00 1277一个 crontab 文件包含每个 cron 作业的条目。条目 ... -
在Linux系统中如何禁用用户帐号
2010-11-02 17:16 2652通过以下方法来禁用linux用户账户 方法1: ... -
国内Oracle下载镜像
2010-09-14 16:08 5798这里有很多,如果国外网速慢的话,可以考虑: http: ... -
Linux下修改系统时间
2010-06-21 10:58 1001两步(1)date 062111032010 也可以用 dat ... -
使用google-perftools中的TCMalloc库,提高Mysql在大规模高并发下性能
2010-06-05 15:27 0安装google-perftools:wget http:// ... -
chkconfig 命令详解
2010-06-05 00:45 1993chkconfig命令主要用来更新(启动或停止)和查询系统 ... -
nginx 命令 启动 停止 平滑
2010-06-05 00:20 3364【收藏备用】 Nginx ...
相关推荐
Linux下获取root权限的c程序 传递euid和egid给脚本,使脚本具有特殊用户的权限 使脚本实现类于设置了stick位的效果 shell, python, perl等脚本、程序不能取得suid,因为这些脚本程序需要解释器-/bin/bash, /usr/bin/...
本文介绍了linux系统内的2个特殊权限s权限和t权限,简单易懂,大家可以详细看看
Linux运维-运维课程运维基本功d7-权限管理-18-特殊位S.mp4
linux下的syn端口扫描,需root权限运行
在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。 方法如下 ...
Linux基础课件特殊权限设置SBIT权限共9页.pdf.zip
Linux基础课件特殊权限设置SGID权限共9页.pdf.zip
Linux基础课件特殊权限设置SUID权限共10页.pdf.zip
linux有效用户和实际用户的区别以及权限中的S借鉴.pdf
linux有效用户和实际用户的区别以及权限中的S参照.pdf
数字形式即由三位八进制数字组成,其命令格式为: chmod八进制模式 文件名 文件的特殊权限: SUID、 SGID 和Sticky 4、文件的链接: (文件和目录名自拟、自行设计实验步骤) (1)硬链接:不带选项,ln命令创建硬链接。...
众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的,今天的教程就是教大家进行SFTP用户权限... 我们创建一个用户test $ useradd -s /bin/false -G sftpuser test 注意这里我们将test用户
录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命 令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理 解Linux系统。 不同Linux发行版的命令...
Linux添加FTP用户并设置权限 在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test 2、建用户,命令行状态下,在root用户下: 运行命令:...
linux分为:redhat linux系列和debian系列。 X Window是一种协议。 unix图形环境是CDE:common desktop environment通用桌面环境。 linux系统结构:硬件、内核层、shell层、应用层、用户。 在安装linux的时候,会...
pspy-无特权Linux进程监听...64位小版本: pspy64s 静态编译的文件应可在任何Linux系统上使用,但容量很大(〜4MB)。 如果有大小问题,请尝试较小的版本,该版本取决于libc并使用UPX(〜1MB)压缩。 建造 您可以使用系
9. 某文件的权限为:p-wxr--r--,用数值形式表示该权限,则该八进制数为:( 344 ),该文件类型是管道。 10. 在vi编辑环境下,使用(Esc)键进行模式转换。 11. ( $# )代表命令行上除shell脚本名的参数个数。 12. ( $...
最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许...
sh格式,执行 sh linuxinspect.sh即可。...支持linux系统(centos)进行自动化的安全检测,包括账号策略检查、重要文件权限检查、ssh配置检查、日志检查等。 最终输出检查结果到目录:/tmp/out_.txt
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。 为用户指定空口令时,执行下列形式的命令: # passwd -d sam...