linux 学习--特殊权限,文本编辑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 学习--特殊权限,文本编辑相关的知识,希望对你有一定的参考价值。

一:特殊权限

SUID:当对一个可执行的二进制文件作用了suid权限之后,任何人在执行该文件时临时拥有其所属人的权限。

SGID:当对一个可执行的二进制文件作用了sgid权限之后,任何人在执行该文件时临时拥有其所属组的权限。

当对于一个目录作用了sgid权限之后,任何人在该目录下创建的文件的所属组与该目录的所属组相同。

         (需要注意的是文件必须是可执行的二进制文件,而非shell等解释型语言文件)

Sticky:当对于一个目录作用了sticky权限之后,该目录下的文件仅其文件的所属人,或目录的所属人及root才能删除。

        chmod u+s 4xxx

        chmod g+s 2xxx

        chmod o+t 1xxx

        即有suid又有sgid  6xxx

        即有suid又有sticky 5xxx

        即有sgid又有Sticky 3xxx

        全有7xxx

        权限位原本有x的,加上特殊权限后,显示为小写,原本无x,显示为大写。

实验一:(1)在/app下创建wuguo文件,将权限改为400,所属人,所属组改为leibei。将/bin/cat拷贝到/app下并将所属人所属组改为刘备,设置权限SUID。

        (2)用echo命令将hello输入到wuguo中。

        (3)运行/bin/cat wuguo 发现不成功,运行/app/lbcat /app/wuguo 成功

         原因:运行/bin/cat wuguo时,受到wuguo文件权限的限制,执行不成功,当运行/app/lbcat /app/wuguo时执行这个文件后,临时拥有了它的所属人权限,执行成功。

 技术分享图片

技术分享图片

实验二:刘备关羽张飞三个用户有一个共享目录叫shuguo,要求三人的主组不一样的情况下,三人在Shuguo目录下所创建的文件,彼此之间可以读取及修改。但不能删除其他人创建的文件。

技术分享图片

技术分享图片

技术分享图片

文件特定权限

    chattr +a 不能删除,不能改名,不能修改,可以追加

    chattr +i 不能删除,不能改名,不能修改,不能追加

    lsattr 查看权限


二:ACL


  1.传统的Linux文件系统的权限控制是通过user、group、other与r(读)、w(写)、x(执行)的不同组合来实现的。随着应用的发展,这些权限组合已不能适应现时复杂的文件系统权限控制要求。例如,我们可能需把一个文件的读权限和写权限分别赋予两个不同的用户或一个用户和一个组这样的组合。传统的权限管理设置起来就力不从心了,为了解决这些问题,Linux开发出了一套新的文件系统权限管理方法,叫文件访问控制列表(Access Control Lists,ACL)。

  2.ACL的作用:实现权限的灵活管理,除了文件的所有者,所属组还可以对更多的用户进行权限设置。

  3.centos6当中对新建分区开启acl的过程 

(1)创建分区

fdisk /dev/sda

n回车

回车

+2G回车

w回车

(2)同步分区表

partx -a /dev/sda

(3)创建文件系统

mkfs.ext4 /dev/sda6

(4)开启acl支持

tune2fs -o acl /dev/sda6

(5)查看acl

tune2fs -l /dev/sda6 |grep option

注:centos7中的所有文件系统以及Centos6随着操作系统安装是划分的文件系统均已默认开启acl。

ACL生效顺序:owner > acl user > group 与 acl group 谁的权限多,谁优先  > other

  4.ACL的查看及设置

getfacl file |directory

setfacl -m u:wang:rwx file|directory

setfacl -Rm g:sales:rwX directory 

setfacl -M file.acl file|directory

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory 

setfacl -x u:wang file |directory

setfacl -X file.acl directory

setfacl -m m:r-x file |directory  设置上限阀值 或chmod g=r-x

setfacl -d -m u/g:username/groupname file |directory 设置默认权限

setfacl -k file |directory 清除默认权限

setfacl -b file |directory 清除acl属性

注意: 一旦设置mask,原本的组权限便不能更改,而且原先显示组权限的地方显示mask,不在显示组权限

技术分享图片

  5.acl权限的备份及还原

getfacl file |directory > acl.txt

setfacl --restore acl.txt

练习:

1、在/testdir/dir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。

思路:在该目录的组上设置特殊权限g+s,然后在该目录上设置默认ACL,设置g2:rwx;g3:r-x。

2、备份/testdir/dir里所有文件的ACL权限到/root/acl.txt中,清除/testdir/dir中所有ACL权限,最后还原ACL权限

getfacl /testdir/dir > /root/acl.txt

setfacl --restore /root/acl.txt

三:文本处理

            1.cat

                -E 显示换行符$

                -v 显示^M

                -T 显示^I即tab

                -A = -EvT

                -n 输出的结果前显示行号

                -b 输出的结果前显示行号,非空行不参与排列

                -s 将连续的空行压缩为一行

                

                

            2.sort

                -n 按数字排列

                -r 倒序排列,默认升序

                -t 指定分隔符

                -k 指定哪一列

                -f 忽略大小写

                -u 删除重复行

            3.head -n 10 /ect/fstab:输出文件前10行

                   -c 10 文件名 按字节查看前10个字节

              tail -n 10 /ect/fstab:输出文件后10行

                   -c 10 文件名 :按字节查看后10个字节。

                   -f 文件名:动态显示,可用来查看日志。 

              cut 

                   -d 指定分隔符(默认为tab)

                   -f 取第几列 

                   -c 安字符切割  

                   --output-delimiter=STRING 指定输出的分隔符

               paste:合并两个文件同一行号到一行。

                        -d 指定分隔符

                        -s 变成一行输出

               例: paste  file1 file2 -d:

             练习:(1)利用df,取出分区利用率的最大值,只要数字。

                    df |tr -s " " : |cut -d: -f5 |sort -n |tail -n 1 |cut -d% -f1

                  (2)列出当前系统中的所有用户的uid

                      cat /etc/passwd|cut -d: -f1,3 --output-delimiter=的UID是  

            4.wc:统计工具

                 -l 只计数行数

                 -w 只计数单词数

                 -c 字节

                 -m 字符

            5.uniq

                 去除连续重复行,往往和sort配合使用,先排序,再去重

                -c 显示重复的次数

                -d 仅显示重复行

                -u 仅显示非重复行

             实验:通过查看httpd的访问日志/var/log/httpd/access_log来显示出访问网站最多的来源ip列表,显示结果时显示出访问次数。

             答案:cut -d" " -f1 access_log  |sort |uniq -c |sort -nr

             网站部署过程

            [[email protected] ~]# service httpd restart

            [[email protected] ~]# iptables -F

            [[email protected] ~]# cd /var/www/html/

            [[email protected] html]# vim index.html   

            

            6. diff 

            diff f1 f2 比较两个文件的不同之处

            diff -u f1 f2 > diff.log

            rm -f f2

            patch -b f1 diff.log

            mv f1 f2

            mv f1.orig f1 

            

            练习:

            以数字方式显示/etc/passwd文件的权限

            stat -c %a /etc/passwd

            stat /etc/passwd |head -4 |tail -1 |tr [:punct:] - |cut -d- -f3 |cut -c 2-4

            技术分享图片

            

            


以上是关于linux 学习--特殊权限,文本编辑的主要内容,如果未能解决你的问题,请参考以下文章

关于Linux,用户,组,权限,文本处理工具,正则表达式,vim文本编辑器

Linux系列教程——Linux文本编辑器vim

Linux:文本编辑器总结(vivim)

Linux命令-文本编辑

#Linux学习# 文本编辑器vim

Linux文本编辑命令