SUID及SGID

特殊权限及文件访问控制列表

引入:

# ls –l `which passwd`

特殊权限有三个

SUID:

解释:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者(启动者可以临时拥有root权限)

chmod u+s FILE

chmod u-s FILE

注意:如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)

案例:

备注: 当我们发现一个文件属主是root时,又给了他SUID这时候会给这个文件带来危险,如果还有其他人还有编辑权限就会更加麻烦。

附加

因为普通用户也能自己改密码

实例:写了一个脚本,如果需要获取系统属性,此时必须要有s权限。以前网站后台用perl语言写的脚本都需要有s权限获取信息,这样的网站很容易被入侵。

SGID:

解释:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组

格式:chmod g+s FILE

    chmodg-s FILE

注意:     如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)

实例:

有三个人hadoop,hbase和hive,他们有共同的使用目录/tmp/project要求三个用户都能在这个目录下创建文件由于三个用户创建的文件都属于同一个项目,所以三个用户都能查看和编辑对方的文件。

如何来实现?

问题:三个用户都能查看和编辑对方的文件,但还能删除对方文件,该如何解决?

这就用到了下面的sticky

Sticky:

解释:在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件

格式:chmod o+t DIR(针对目录)

            chmodo-t DIR(针对目录)

案例:还接着上面的

备注:不能删除别人的,但是可以删除自己的文件。

以上的问题就解决了

如何在一个空白文档中写入一段文字,然后保存

按i进入编辑模式

:wq,保存退出

Cat 查看

:s /old/new               将当前行中查找到的第一个字符“old” 串替换为“new”

         :s/old/new/g           将当前行中查找到的所有字符串“old”替换为“new”

         :#,#s/old/new/g      在行号“#,#”范围内替换所有的字符串“old”为“new”

         :%s/old/new/g                 在整个文件范围内替换所有的字符串“old”为“new”

         :.,$-1s/old/new/g   当前行到倒数第二行范围内替换所有的字符串“old”为“new”

         备注:分隔符可以是/,@,#

猜你喜欢

转载自blog.csdn.net/weixin_41906204/article/details/80073529