linux中文件的特殊权限

linux中文件的特殊权限

 

1.sticky 粘制位

 只针对目录有效,当一个目录上有sticky权限时,这个目录中的文件只能被文件的所有者删除

    设定方式:

    chmod o+t direcotry

    chmod 1777 direcotry

    chmod 1xxx direcotry

 

(1)先在超级用户下建立一个目录 mkdir /westos1

然后设置监控命令j监控改目录以及改目录下的文件:

watch -n 1 “ls -ld /westos1 ; ls -l /westos1”

并且在超级用户下设置满权限 chmod 777 /westos1

(2)在超级用户下建立两个普通用户linux1 linux2

分别切换到两个普通用户下建立文件file1 file2
 

useradd linux1

useradd linux2

su - linux1

touch /westos1/file1

exit

su - linux2

touch /westos1/file2

exit

(3)linux1用户可以删除linux2用户建立的文件file2,这样做很不安全

怎样解决这个问题?我们可以设置特殊权限t

su - linux1

rm -fr /westos1/file2

在超级用户模式下给westos1这个目录增加t权限

chmod o+t /westos1

给westos1目录加上t权限以后,linux2用户就不能删除linux1用户建立的file1文件了

su - linux2

rm -fr /westos1/file1

2.sgid 强制位

 设定方式:

    chmod g+s file|dir

    chmod 2xxx file|dir

    对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

(1)首先在超级用户下建立一个目录

并且对这个目录进行监控

mkdir /westos2

watch -n 1 “ls -ld /westos2 ; ls -l /westos2”

查看这个目录的权限:

ls -ld /westos2

(3)在超级用户下建立一个新用户,并且将新建目录的用户组变为刚刚新建的用户

然后在改目录下建立新的文件,发现此文件的用户组仍然为超级用户,

并不是刚刚 新建的那个用户

useradd linux3

chgrp linux3 /westos2

touch /westos2/file3

(4) 为了使在目录中建立的文件都属于目录的用户组,需要在目录上加上s权限

由此可见,当给目录加上s权限时,目录的所有组权限会出现s,此时建立的文件的所有组为目录的所有组。


    对文件:只针对二进制可执行文件,当文件上有s权限时任何人执行此文件产生的进程都属于文件的所有组

chmod g+s /westos2

touch /westos2/file4

ls -ld /westos2

先监控二进制文件的进程:

ps -ax -o user,group,comm | grep watch

ls -l /bin/watch

查看该二进制文件的权限:

ls -l /bin/watch

(3)以rootls -l /bin/watch

身份启动一个进程,这个进程的所有人和所有组均为root

然后将改文件的所有组改为linux3,发现并没有改变,仍为toot

/bin/watch -n 1 date

chgrp linux3 /bin/watch

给二进制文进加上s权限,重新开启一个新的进程

chmod g+s /bin/watch

3.suid 冒险位

作用:只针对二进制可执行文件,当文件上有suid权限时任何人执行这个文件中程序产生的进程都属于文件的所有人

    设定方式:

    chmod u+s file

    chmod 4xxx file


(1)监控二进制文件的进程:

ps -ax -o user,group,comm | grep watch

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值