`
xitong
  • 浏览: 6159035 次
文章分类
社区版块
存档分类
最新评论

linux安全之权限篇

 
阅读更多

1。权限 ugo ( r - w - x )

*******************************************************************************

当一个用户访问一个文件的时候

1.如果当前用户的UID与文件owner的UID匹配,那么就遵守第一个三位组的权限,如果不匹

配那么看GID

2.如果当前用户的GID与文件group的GID匹配,那么就遵守第二个三位组的权限

3.如果当前用户的UID与GID和文件的owner与group都不匹配,那么就看第三个三位组other

的权限

了解到匹配权限的过程之后,先面我们介绍一个三位组中rwx是什么意思

文件 目录

r 浏览(cat) 浏览(ls)

w 编辑(vim) 创建/删除(touch,rm)

x 执行(script) 改变(cd)

- 无 无

2.默认权限与umask

*******************************************************************************

默认情况下管理员的umask 022,普通用户的umask 002.

下面我们就以文件默认权限是666,umask是033,来讲解一下最后我们得到一个文件的权限。

1).666的权限是rw- rw- rw-,换算成2进制 110 110 110

2).umask033 权限是 --- -wx-wx ,换算成2进制 000 011 011

3).umask 2进制取反 000 011 011 -------->111 100 100

4).umask 取反后的2进制和默认权限做与运算

umask 111 100 100

默认权限 110 110 110

--------------------------------------

110 100 100

rw- r-- r--

5).得到最终的权限 644

3.SUID SGID Sticky

*******************************************************************************

可执行文件SUID SGID

执行可执行文件的时候,不以执行者的身份去运行,而是以文件所属人(组)的身份去执行

目录 SGID Sticky

SGID:当一个A目录具有SGID的时候,在这个目录下新建的文件文件夹默认所属组会是A目

录的所属组

Sticky:当A目录具有Sticky位的时候,在A目录下的文件只有文件的所属人才能够删除文件,

其他人哪怕对A目录有写的权限也不能删。

设置suid和SGID

给文件加SUID和SGID的命令如下:

chmodu+s filename 设置SUID位

chmodu-s filename 去掉SUID设置

chmodg+s filename 设置SGID位

chmodg-s filename 去掉SGID设置

注意:

出 于安全考虑,现代的大部分 UNIX 类系统都会忽略掉SHELL脚本的 suid ,只有二进制可执行程序

的 suid 有效 。所以直接给脚本文件设置 suid 是达不到预期效果的。

例如有shell脚本 apk.sh

即使执行命令 #chmod 4755 apk.sh ,系统也会忽略该脚本的SUID位。

所以如果确实需要给脚本文件设 suid,常见的做法是用 C 写一个封装程序,在这个程序里调用脚本。

这样,给封装程序(二进制可执行程序)设上 suid(chmod 4755 a.out) 就可以达到给脚本文件设 suid

的效果了

4。ext3文件系统属性

*******************************************************************************

chattr lsattr

lsattr [-aR]

参数说明:

-a:将隐藏文件的属性也显示出来

-R:连同子目录的数据一并显示出来

chattr [+-=][ASacdistu] [文件或目录名称]

A:当设定了属性A,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免诸如手提电

脑容易产生磁盘I/O错误的情况;

S:这个功能有点类似sync,是将数据同步写入磁盘中,可以有效避免数据流失;

a:设定a后,这个文件将只能增加数据而不能删除,只有root才能设定这个属性;

c:设定这个属性后,将会自动将此文件压缩,在读取时自动解压缩。但是在存储的时候,会现进行

压缩在存储(对于大文件很有用);

d:当dump(备份)程序执行时,设定d属性将可使该文件(或目录)具有dump功效;

i:这个参数可以让一个文件”不能被删除、更名、设定链接,也无法写入数据,对于系统安全有

很大的助益

j:当使用ext3文件系统格式时,设定j属性将使文件在写入时先记录在日志中,

但是当filesystem设定参数为data=journalled时,由于已经设定了日志,所以这个属性无效

s:当文件设定了s参数时,它会被完全移出这个硬盘空间

u:与s相反,当使用u配置文件时,数据内容其实还可以存在于磁盘中,可以用来取消删除

测试效果:

1》

[root@andyguo tmp]#ls

file1

[root@andyguo tmp]#stat file1

File: “file1”

Size: 15 Blocks: 16 IO Block: 4096 一般文件

Device:fd00h/64768d Inode: 163203 Links: 1

Access:(0644/-rw-r--r--) Uid: ( 0/root) Gid: ( 0/root)

Access: 2012-12-1015:18:02.000000000 +0800

Modify: 2012-12-1015:19:28.000000000 +0800

Change: 2012-12-1015:19:28.000000000 +0800

[root@andyguo tmp]#lsattr file1

-------A----- file1

注意Modify和Change的时间都比Access time晚,说明access time 不做更新,但是redhat 6.2

access time更新不及时

2》

[root@andyguo tmp]#cat file1

diafdsafsafsaf

afdsa

afdsa

[root@andyguo tmp]#echo "afdsa">file1

-bash: file1: 不允许的操作

[root@andyguo tmp]#echo "afdsa">>file1

[root@andyguo tmp]#cat file1

diafdsafsafsaf

afdsa

afdsa

afdsa

[root@andyguo tmp]#rm -fr file1

rm: 无法删除 “file1”: 不允许的操作

5.文件系统的访问控制列表

*******************************************************************************

setfacl -m (--modify)u:user:permission file | directory 对文件或者文件夹设置facl权限

setfacl -m (--modify)u:group:permission file | directory 对组设置facl权限

setfacl -m (--modify) d:u:user:permissiondirectory 任何人新建的文件都会变成文件夹所有人

getfacl file 查看file文件的权限

setfacl -x u:soft test 去掉单个用户的权限

setfacl -b test 删除test目录的所以acl权限

测试:

1》

[root@andyguo tmp]# mkdir dir1

[root@andyguo tmp]# chmod 700 dir1/

[root@andyguo tmp]# setfacl -mu:test:rwx dir1

[root@andyguo tmp]# su test

[test@andyguo tmp]$ cd dir1/

[root@andyguo tmp]# setfacl -b dir1/

[root@andyguo tmp]# su test

[test@andyguo tmp]$ cd dir1/

bash: cd: dir1/: 权限不够

===============================================================================

我们的linux操作系统跟外部设备(如磁盘、光盘等)的通信都是通过设备文件进行的,应用程序可

以打开、关闭、读写这些设备文件,从而对设备进行读写,这种操作就像读写普通的文件一样easy。

linux为不同种类的设备文件提供了相同的接口,比如read(),write(),open(),close()。

所以在系统与设备通信之前,系统首先要建立一个设备文件,这个设备文件存放在/dev目录下。

其实系统默认情况下就已经生成了很多设备文件,但有时候我们需要自己手动新建一些设备文件,这个

时候就会用到像mkdir, mknod这样的命令。

mknod 的标准形式为: mknod DEVNAME {b | c} MAJORMINOR

1, DEVNAME是要创建的设备文件名,如果想将设备文件放在一个特定的文件夹下,就需要先

用mkdir在dev目录下新建一个目录;

2, b和c 分别表示块设备和字符设备:

b表示系统从块设备中读取数据的时候,直接从内存的buffer中读取数据,而不经过磁盘;

c表示字符设备文件与设备传送数据的时候是以字符的形式传送,一次传送一个字符,比如

打印机、终端都是以字符的形式传送数据;

3,MAJOR和MINOR分别表示主设备号和次设备号:

为了管理设备,系统为每个设备分配一个编号,一个设备号由主设备号和次设备号组成。主设备号标示

某一种类的设备,次设备号用来区分同一类型的设备。linux操作系统中为设备文件编号分配了32位无符

号整数,其中前12位是主设备号,后20位为次设备号,所以在向系统申请设备文件时主设备号不好超过

4095,次设备号不好超过2^20 -1。


下面,我们就可以用mknod命令来申请设备文件了。

mkdir -p/dev/cobing

mknod /dev/cobing/mydev1 c 128 512

查看系统设备的主设备号可以参考/usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt

文件系统的挂载选项

noexec exec

*****************************************************************

[root@node0 ~]# mount /dev/hdb1 /test/

[root@node0 ~]# echo"hello" > /test/file1

[root@node0 ~]# cp /bin/cat /test/

[root@node0 ~]# cd /test/

[root@node0 test]# ./cat file1

hello

[root@node0 test]# mount -oremount,noexec /test/

[root@node0 test]# ./cat file1

bash: ./cat: Permission denied

ro rw

*******************************************************************

[root@node0 test]# mount -oremount,ro /test/

[root@node0 test]# echo"abc" >> /test/file1

bash: /test/file1: Read-only filesystem

nosuid suid

*******************************************************************

[root@node0 test]# mount /dev/hdb1/test/

[root@node0 test]# ls

catcdrom file1 lost+found

[root@node0 test]# chmod 640 file1

[root@node0 test]# ls -l file1

-rw-r----- 1 root root 6 Mar 3 16:04 file1

[root@node0 test]# chmod u+s cat

[root@node0 test]# su - user1

[user1@node0 ~]$ cd /test/

[user1@node0 test]$ ./cat file1

hello

[root@node0 test]# mount -oremount,nosuid /test/

[root@node0 test]# su - user1

[user1@node0 ~]$ cd /test/

[user1@node0 test]$ ./cat file1

./cat: file1: Permission denied

nodev dev

*******************************************************************

[root@node0 test]# ls -l /dev/cdrom

lrwxrwxrwx 1 root root 3 Mar 3 14:47 /dev/cdrom -> hdd

[root@node0 test]# ls -l /dev/hdd

brw-rw---- 1 root disk 22, 64Mar 3 14:47 /dev/hdd

[root@node0 test]# mknod cdrom b 2264

[root@node0 test]# mount cdrom /mnt/

mount: block device cdrom iswrite-protected, mounting read-only

[root@node0 test]# umount /mnt/

[root@node0 test]# mount -oremount,nodev /test/

[root@node0 test]# ls -l cdrom

brw-r--r-- 1 root root 22, 64Mar 3 16:13 cdrom

[root@node0 test]# mount cdrom /mnt/

mount: block device cdrom iswrite-protected, mounting read-only

mount: cannot mount block devicecdrom read-only

[root@node0 test]# ls /mnt/

noauto auto

****************************************************************

[root@node0 ~]# vim /etc/fstab


/dev/hdb1 /test ext3 noauto

[root@node0 ~]# mount -a

noatime atime

***************************************************************

Update inode access time foreach access. Thisis the default.

async sync

***************************************************************


分享到:
评论

相关推荐

    Kali Linux渗透测试技术详解

    介绍了Linux安全透简介、安装及配置KaliLinux 操作系统、配置目标测试系统:第2篇为信息的收集及利用,介绍了信息收集、漏洞扫描、漏洞利用等技术:第3篇为各种渗透测试,介绍了权限提升、密码攻击、无线网络攻击、...

    Linux 服务器安全配置

    第一部分:RedHat Linux篇 1.概述 Linux服务器版本:RedHat Linux AS 对于开放式的操作系统—Linux,系统的安全设定包括系统服务最小化、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全...

    安全重保服务方案及应急响应全面知识体系合集.zip

    入侵排查篇/日志分析篇/权限维持篇/Windows实战篇/Linux实战篇/Web实战篇/恶意样本库/CISP认证应急响应知识体系与课件 NIST计算机信息安全应急处置指南 应急响应模型体系 应急响应与灾难恢复培训PPT 勒索病毒防护...

    Linux培训教程-共8讲

    介绍 bash Linux shell lscp mv (标准的),为您展示如何充分利用如、和这样的标准Linux 命令,并向您讲解的权限和所有权模型以及更丰富的内容 2.第二讲: 演示如何使用正则表达式在文件中搜索文本模式。接着,...

    Vsftpd配置权限

    linux下vsftpd的安装及配置,本篇主要是介绍Vsftp的虚拟用户,虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟...

    应急响应实战笔记.rar

    权限维持篇:Windows权限维持--后门篇、Linux权限维持--隐藏篇、Linux权限维持--后门篇、三大渗透测试框架权限维持技术、常见WebShell管理工具;Windows实战篇:FTP暴力破解、蠕虫病毒、勒索病毒、ARP病毒、挖矿病毒...

    Linux VPS安全设置之二 禁用ROOT账户

    继前一篇”修改SSH端口“设置我们的Linux VPS安全性能之后,今天继续完成其他方法。不管是想尝试入侵我们网站是软件扫描,还是人为的操作端口的扫描弱命令是一种方法,其次就是猜测ROOT权限账户。一般的我们使用账户...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

    cmd操作命令和linux命令大全收集

    78. secpol.msc-----本地安全策略 79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 80. services.msc---本地服务设置 81. Sndvol32-------音量控制程序 82. sfc.exe--------...

    服务器系统安全分析报告.doc

    服务器系统安全详解 一、Linux 篇 1.发行版:Red Hat Enterprise Linux 6.0 2.特点: 1)完全免费 2)高效安全稳定 3)支持多种硬件平台 4)支持多任务、多用户 3.对root登录进行严格限制 1)用"root"身份登录不是一个好...

    Linux应用软件服务篇-五剑客

    第一章节讲解主流的Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间...

    Linux 服务器安全技巧

    毋庸置疑,对于系统管理员,提高服务器的安全性是最重要的事情之一。因此,也就有了许多针对这个话题而生的文章、博客和论坛帖子。 一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制...

    IT运维之Linux服务器监控方案.doc

    利用Linux发行版搭建一个网络服务器可能对于许多人都是一件很容易的事情,但网络服 务器正式上线后,服务器数据流动、连接数、网络流量、系统负荷等各方面都会增加, 安全问题也随之而来,再考虑到日志、数据库的...

    linux programming instances网络编程教程 附源代码

    4.9.6 处理用户登录及权限设置 4.10 本章小结 第5章 tcp套接字编程实例 5.1 tcp客户--服务器实例一 5.1.1 服务器端代码-vcserver.c 5.1.2 客户端代码-vcclient.c 5.1.3 运行结果 5.2 实例之二 5.2.1 ...

    dm8_麒麟系统X86安装包,详细安装方式见安装文档(DM DBA手记之安装篇-达梦数据库-安装手册)

    DM DBA手记之安装篇-达梦数据库-安装手册-安装最佳实践v1.3.pdf https://download.csdn.net/download/u014772458/10976118?utm_medium=distribute.pc_relevant_download.none-task-download-2~default~...

    DM DBA手记之安装篇-达梦数据库-安装手册-安装最佳实践(进阶神器)v1.3.pdf"

    3.1.1网络防火墙以及安全内核检查 14 3.1.2检查磁盘的划分 17 3.1.3Linux下检查操作系统限制 17 3.1.4检查系统时间及时区 19 3.1.5Linux下检查KDE/GNOME环境 20 3.1.6检查安装版本匹配度 20 3.1.7安装程序赋予执行...

    网络安全工程师面试.doc

    5、 安全方面 a) 防火墙的常用三种技术 b) 使用Linux的安全风险有哪些 c) 国内外的不同linux产品(各列举3个) d) 139端口与445端口的区别就是什么? e) 主流的防病毒厂商与产品(国内、外各列举3个) f) 使用过的主流...

    Emergency-Response-Notes:应急响应实战笔记,一个安全工程师的自我修养

    GitHub地址: : GitBook地址: ://bypass007.github.io/Emergency-Response-Notes/ 项目介绍 面对各种各样的安全事件,我们该怎么处理? 这是一个关于安全事件应急响应的项目​​,从系统...第1篇:Windows权限维护

    Windows2003 服务器安全配置详细篇

    这个不同于之前做的两个演示,此演示基本上保留系统默认的那些权限组不变,保留原味,以免取消不当造成莫名其妙的错误. 看过这个演示,之前的”超详细web服务器权限设置,精确到每个文件夹”和”超详细web服务器权限...

Global site tag (gtag.js) - Google Analytics