zoukankan      html  css  js  c++  java
  • Linux-day2-上课笔记

    UGO权限

    1) 文件对于拥有者的权限   User

    2) 文件对于所属组里面的用户的权限 Group

    3) 文件对于其他人的权限  Others

    对于文件的权限

    1)对于文件可读  r

    2)对于文件可写  w

    3)可执行文件    x

    权限体现在什么地方?

    [root@jenny ~]# ll /usr/sbin/useradd

    -rwxr-x---. 1 root root 118232 Oct 31 00:33 /usr/sbin/useradd

    1位 显示了文件的类型

    - 普通文件

    d 目录文件

    l 链接文件

    c 字符设备文件

    b 块设备文件

    s 套接字文件

    p 管道文件

    2-4位 代表的是User的权限

    5-7位 代表的是Group的权限

    8-10位 代表的是Others的权限

    修改权限相关指令

    1) chown   修改文件的拥有者

    chown jenny file  将文件拥有者修改为jenny用户

    chown :testgroup file  将文件所属组变更为testgroup

    chown root:root file 同时将文件拥有者和所属组修改为root

    2) chgrp   修改文件的所属组

    chgrp GROUP FILENAME

    3) chmod   修改文件的权限值

    通过字符表达方式修改文件权限:

    chmod u + r file

          g - w

          o = x

    通过数字表达方式修改文件权限:

    r-- = 100 = 4

    -w- = 010 = 2

    --x = 001 = 1

    rw- = 4+2 = 6

    r-x = 4+1 = 5

    rwx =7

    [root@jenny srv]# chmod 645 file

    [root@jenny srv]# ls

    file

    [root@jenny srv]# ll

    total 0

    -rw-r--r-x. 1 root root 0 Apr 20 09:55 file

    练习:

    1.添加用户carol,jenny,ivy

    2.创建文件/tmp/file

    3.要求

       1) carol用户能够vim file文件,并正常保存退出    将文件拥有者变更为carol,rw-

       2) jenny用户能够看到file文件的内容,不允许修改  r--

       3) ivy用户也能够看到file文件的内容,不允许修改  r--

       4) 其他剩余用户对于文件没有任何权限   ---

    答案:

    [root@jenny tmp]# ll /tmp/file

    -rw-r-----. 1 carol testgroup 23 Apr 20 10:21 /tmp/file

       55  chown carol file

       64  groupadd testgroup

       65  usermod -aG testgroup ivy

       66  usermod -aG testgroup jenny

       67  id ivy

       68  id jenny

       69  ll

       70  chown :testgroup file

    对于文件的权限

    1)对于文件可读  r

    2)对于文件可写  w

    3)可执行文件    x

    对于目录的权限

    - r: 可读取目录结构和权限

    - w: 可更改目录结构列表、新建 / 删除 / 重命名 / 转移子文件 / 目录。

    - x: 表示用户可进入到该目录中

    目录/testdir:

        carol: r-x

        ivy|jenny: rwx

        others: r-x

       86  mkdir /testdir

       87  ll -d /testdir/

       88  chown carol:testgroup /testdir/

       89  ll -d /testdir/

       90  chmod 575 /testdir/

       91  ll -d /testdir/

    文件testfile:

        carol:rw-

        ivy|jenny: r--

        others: ---

    创建文件、目录默认权限和umask值有关

    公式: 最大权限值-umask=默认权限值

    目录:  777 - 022 = 755

    文件默认权限: 666 - 022 = 644

    权限分类

    1) UGO 基础权限 - 控制文件、目录的用户行为

    root 用户是不受UGO权限限制的

    2) ACL 权限 - UGO权限的补充

    alice r--

    bob rw-

    jenny rwx

    ivy    r-x

    设置的方式

           setfacl -m u:user:permission file

           setfacl -m g:group:permission file

    删除某一条规则

           setfacl -x u:user    file

           setfacl -x g:group   file

    罗列ACL规则

           getfacl file

    3) 特殊权限

       SUID: 文件,任何人在执行指定文件的时候,临时拥有文件拥有者用户的权限  /usr/bin/passwd

       设置方式 chmod u+s filename

       SGID: 目录,继承目录所属组

       设置方式 chmod g+s dirname

       STICKY: 目录, 只有 root 用户和文件拥有者有权删除目录中的文件

           设置方式 chmod +t dirname

    4) ATTR权限(隐藏权限)

       设置命令:

            chattr +权限值 file

       查看:

            lsattr file

       权限的含义:

            i: 文件不可被删,不可被改变(root也不行)

            a: 文件仅可被追加内容,不可被修改

           A: 不修改文件的访问时间

    5) selinux

    一般情况下,在生产环境中,关闭selinux

    查看selinux

           [root@jenny tmp]# getenforce

           Enforcing

    设置的方式

          1. [root@jenny tmp]# setenforce 0

            Permissive

           注意:上述针对当前环境有效,服务器重启后无效

           2. vim /etc/selinux/config

           SELINUX=disabled

           注意:重启服务器后生效

    回家作业

    1. man chattr查看attr具有哪些权限,分别对应的含义

    2、权限相关作业:

    题目
    创建用户carol,ivy,jenny,kevin,alice
    创建/test目录,并在目录下创建testfile1,testfile2,testfile3

    要求:

    1) 所有用户能够查看testfile1的内容。

    usermod -aG testgroup carol
    usermod -aG testgroup ivy
    usermod -aG testgroup jenny
    usermod -aG testgroup jenny
    usermod -aG testgroup alice
    chown :testgroup /test/testfiel1
    chmod g+r /test/testfiel1

    2) carol、ivy、jenny能够修改testfile1

    setfacl -m u:carol:rw /test/testfiel1
    setfacl -m u:ivy:rw /test/testfiel1 
    setfacl -m u:jenny:rw /test/testfiel1


    3) kevin、alice能够修改testfile2

    setfacl -m u:kevin:rw /test/testfiel2
    setfacl -m u:alice:rw /test/testfiel2

    4) kevin、alice能够管理目录下的创建、删除文件操作

    setfacl -m u:kevin:rwx /test
    setfacl -m u:alice:rwx /test

    5) carol、ivy、jenny不能够删除、也不能创建文件

    setfacl -x u:carol /test
    setfacl -x u:ivy /test
    setfacl -x u:jenny /test

    6) testfile3 仅允许追加内容,不允许修改

    chattr +a /test/testfiel3

    7) 创建/tmp/testdir目录,要求该目录下创建的所有文件所属组都为testgroup这个组

              sgid权限

              mkdir /tmp/testdir

        chgrp testgroup /tmp/testdir

              chmod g+s /tmp/testdir

    查找
    whereis 查找命令绝对路径(及其帮助文档)对应的指令
    which 查找命令绝对路径所在位置
    locate 基于文件名寻找文件路径 (安装locate程序:yum -y install mlocate.x86_64)
    1. locate 运行机制
    每隔一天,遍历操作系统文件,并将遍历的结果存放至/var/lib/mlocate/mlocate.db
    当搜索的时候,直接读取/var/lib/mlocate/mlocate.db,将结果显示出来
    locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
    可以通过执行updatedb,遍历操作系统文件
    2. locate 特点
    1)搜索的速度是相对较快的
    2)不是实时的
    3)模糊匹配
    4)不是全系统扫描
    /etc/updatedb.conf
    5)查找条件比较单一
    find 全方位搜索 
    1. 特点
    1)实时查找 --> 慢
    2)查找条件丰富 权限、大小、时间、文件类型
    3)可以指定查找后动作
    2. find命令格式
    find [路径] 查找条件 [执行动作]
    一个条件一个参数,一个find命令可以有多个条件

    例子: 
    1. 查找系统中名称为useradd的文件
    find / -name useradd
    查找系统中/usr/sbin目录下,文件名称不叫useradd的文件
    find /tmp ! -name test
    2. 查找系统中占用大小大于7M的文件
    find / -size +7M

    du -sh    *   查看当前目录下所有文件大小
    查找系统中文件大小在7M到10M之间的文件
    find / -size +7M -size -10M
    find / -size +7M -size -10M 2> /dev/null
    3. 查找系统中的块设备文件
    find / -type b
    4. 基于用户和组的查找
    -user -group
    -uid -gid
    5. 查找7天内内容修改过的文件名
    find / -mtime 7
    6. 基于权限查找
    find / -perm 644 代表完全匹配644
    find / -perm -644 代表需满足的最小权限
    找jenny用户可写的文件,且jenny用户是文件的拥有者
    find / -user jenny -perm -200
    执行动作, {}替代找到的文件 ;代表语句结束符
    -ok 交互式的执行方式
    find /tmp -name test -ok ls -l {} ;
    -exec 非交互的执行方式
    find /tmp -name test -exec ls -l {} ;

    作业:
    1) 查找系统中文件名为wtmp的文件

    find / -name wtmp


    2) 查找系统中文件大小超过10M的文件名

    find / -size  +10M


    3) 查找access time比/etc/fstab更新的文件


    4) 查找系统中拥有者是root,并且所属组是input的文件

    find / -user root -group input


    5) 查找文件类型是链接文件的名称

    find / -type l


    6) 将查找文件名为test的文件移动到/srv目录

    find / -name '*test*' -exec mv {} /srv ;

    打包、压缩
    1. zip程序
    yum -y install zip
    压缩
    zip [zipfile] [file]
    zip -r test2.zip test # 压缩目录加-r选项
    解压
    yum -y install unzip 
    unzip [zipfile] # 默认情况下,解压到当前目录
    unzip test2.zip -d /opt/ # 指定解压到/opt目录
    2. gzip 程序 、bzip2程序、xz程序
    命令的用法
    gzip 压缩 gunzip 解压
    bzip2 压缩 bunzip2 解压
    xz 压缩 unxz 解压
    特点
    1)压缩时,源文件会自动被压缩程序处理,源文件会不存在
    2)解压时,压缩文件会消失,源文件出现
    3)不能够压缩目录
    4)无法将多个文件压缩至一个压缩包
    3. tar ---> 打包
    用法:
    打包 tar -cf /tmp/test.tar [file]
    解包 tar -xf /tmp/test.tar
    打包并压缩 tar -czf /tmp/test.tar.gz [file] # 调用gzip程序完成压缩
    tar -cjf /tmp/test.tar.bz2 [file] # 调用的bzip2 程序完成压缩
    tar -cJf /tmp/test.tar.xz [file] # 调用xz程序完成压缩
    解压并解包
    tar -xzf test.tar.gz  test  #调用gzip完成解压
    tar -xjf  test.tar.bz2 test #调用bzip2完成解压
    tar -xJf test.tar.xz test  #调用xz程序完成解压

    指定位置解压:
    tar -xzf test.tar.gz -C /srv/
    实验:
    1. 在/tmp/创建 test目录,压缩包名为/tmp/test.tar.xz 对该目录调用xz方式进行压缩

    tar -cJf /tmp/test.tar.xz /tmp/test

    2. 将/tmp/test.tar.xz解压,解压到/opt目录

    tar -xJf /tmp/test.tar.xz /tmp/test

    注意: tar路径问题
    如果被打包的文件是绝对路径,tar会自动将其变为相对路径。
    tar -czf /tmp/efg /srv/file1 /srv/file2
    tar: Removing leading `/' from member names
    [root@jenny srv]# tar -xzf /tmp/efg.tgz -C /opt/
    [root@jenny srv]# cd /opt/
    [root@jenny opt]# ls
    srv
    [root@jenny opt]# cd srv/
    [root@jenny srv]# ls
    file1 file2

    重定向作业:

    1. uid最大的一个用户名字显示出来

       sort -t: -k 3 -n /etc/passwd | tail -n1  | cut -d: -f1

    2. /var/log目录下的文件根据文件大小排序

       ll | sort -k5 -n -r

    3. /etc/fstab文件中非注释行(#开头的行为注释行) 写入/tmp/fstab文件中

       grep -v ^# /etc/fstab  > /tmp/fstab

    4. boot目录下的vmlinuz文件的拥有者截取出来

       ll /boot/vmlinuz-* | cut -d' ' -f3

  • 相关阅读:
    nginx 特定目录禁止php执行
    linux awk命令详解
    漫谈大型网站架构
    ThinkPHP 自动验证实例
    使用jquery时一些小技巧的总结
    fputcsv 导出CSV、Excel DownLoad
    文件操作总结
    rc.local 开机自启脚本无法启动
    Windows pycharm Terminal使用Anaconda 的Prompt
    解决hash冲突方法
  • 原文地址:https://www.cnblogs.com/lz-tester/p/10762260.html
Copyright © 2011-2022 走看看