二周第四次课(3月29日)

时间:2022-06-19 14:23:53

2.18 特殊权限set_uid

set_uid:只用于二进制可执行文件。

  • su - uuu:可切换到uuu用户
  • whoami:查看当前用户
  • 第一权限位权限中的s代表什么:代表set_uid权限,有什么用呢?让B用户临时拥有root用户身份。(临时易容)
    • chmod u+s xxx:给xxx文件第一权限位添加s权限。
      # ls -l /usr/bin/passwd
      -rwsr-xr-x. 1 root root 27832 6月  10 2014  /usr/bin/passwd # 会看到第一权限位权限中有个's'
      
      # 简单介绍
      # ls -l /usr/bin/ls                           # 查看ls文件所属用户
      -rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls     
      # su - longlong02                             # 切换用户
      $ whoami                                # 查看当前用户
      longlong02
      $ ls /root                              # longlong02用户查看ls文件
      ls: 无法打开目录/root: 权限不够                             # 权限不够提示
      $ su - root                             # 切换root用户
      # chmod u+s /usr/bin/ls                       # 给ls文件第一权限位添加's'权限
      # ls -l !$                                    # 查看ls文件权限
      ls -l /usr/bin/ls
      -rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
      # su - longlong02                             # 切换longlong02用户
      $ ls -ld /root                          # longlong02用户查看ls文件,可以正常查看了
      dr-xr-x---. 3 root root 223 8月   9 19:28 /root
      $ su - root                             # 切换root用户
      # chmod u-s /usr/bin/ls                       # ls文件第一权限位取消's'权限
      # !ls                                         # 查看ls文件
      ls -l /usr/bin/ls
      -rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls

2.19 特殊权限set_gid

  • 该权限用于目录,使用了该权限。该目录下创建的文件和子目录和该目录的所属组相同。比如该目录为A组用户创建,把该目录所属组更换成B组后,在该目录下创建的东西所属组都是B组。哪怕是A组用户在其下创建也都所属B组。
  • 该权限用于文件,和set_uid差不多。只是把用户权限换成了用户组权限。
  • 第二权限位权限中的s代表什么:代表set_gid权限,有什么用呢?让B用户临时拥有root所属组身份。(临时换姓氏)
    # chmod g+s /usr/bin/ls                       # 给ls文件第二权限位添加's'权限
    # ls -l !$                                    # 查看ls文件
    ls -l /usr/bin/ls
    -rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls     # 看到ls文件第二权限位有's'权限
    
    # root用户所属组是root组
    # mkdir 234
    # ls -l
    drwxrwxr-x. 2 root root 6 8月  10 22:05 234
    # chmod g+s 234               # 给234目录第二权限为增加's'权限
    # ls -ld 234                  # 查看234目录
    drwxrwsr-x. 2 root root 6 8月  10 22:05 234     # 所属组为root
    # chown :long 234             # 改变234目录所属组
    # ls -ld 234
    drwxrwsr-x. 2 root long 6 8月  10 22:05 234     # 所属组为long
    # touch 234/long              # 创建long文件
    # ls -l 234/
    -rw-r--r--. 1 root long 0 8月  10 22:08 long    # 所属组为long
    # mkdir 234/am                # 创建am目录
    # ls -l 234/  
    drwxr-sr-x. 2 root long 6 8月  10 22:09 am      # 所属组是long
    # chmod g-s 234               # 给234目录第二权限为取消's'权限
    # touch 234/long02            # 创建long02文件
    # ls -l 234/
    drwxr-sr-x. 2 root long 6 8月  10 22:09 am
    -rw-r--r--. 1 root long 0 8月  10 22:08 long
    -rw-r--r--. 1 root root 0 8月  10 22:10 long02  # 所属组是root

2.20 特殊权限stick_bit

防删除位

  • 第三权限位中t权限。除了本用户和root用户,别的用户不能删除该权限目录下文件及目录(文件添加这个权限。不可删除和重命名该文件)
    # ls -ld /tmp
    drwxrwxrwt. 8 root root 104 8月  10 20:38 /tmp

2.21 软链接文件

相当于快捷方式。用于节省空间。删除源文件链接就作废了

  • 比如A、b、c文件运行都需要调用X文件,直接调用含有B文件路径的软连接就可以了。如果每个文件都要把X文件放一起。需要的空间就大了。(文件目录都能用软连接)
  • ln -s 来源 软连接存放位置:软连接写法
    # ln -s /test2/234/xxx(来源) /test2/lll.txt(软连接存放位置)
    # cat /test2/lll.txt
    dfafasdfasdf
    asdfasdfasdf
    # ls -l /test2/lll.txt
    lrwxrwxrwx. 1 root root 14 8月  10 23:15 /test2/lll.txt -> /test2/234/xxx
  • df -h:查看磁盘分区
    # df -h
    文件系统        容量  已用  可用 已用% 挂载点
    /dev/sda3        26G  1.2G   25G    5% /
    devtmpfs        903M     0  903M    0% /dev
    tmpfs           912M     0  912M    0% /dev/shm
    tmpfs           912M  8.6M  904M    1% /run
    tmpfs           912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1       197M  109M   88M   56% /boot
    tmpfs           183M     0  183M    0% /run/user/0

    软连接应用场景。log文件为日志。因为log文件一直不断的追加内容,越来越大,而log存放的分区又准备满了。有什么办法改变现状了,当然删除log文件是不可能的。

    • 首先把log文件cp到大分区里
    • 然后删除原log文件;再ln -s log文件 cp后的log文件。命令用;间隔可以在同一行执行。由分号前后顺序执行。

2.22 硬连接文件

硬连接文件只能用于文件

  • 硬链接意思是,把一个东*起来。然后每个硬链接都是它的窗口,每个窗口看见的东西都是一样的。窗口可以随便删除,只要不删完,都还能看到这个东西。当然也可以创建窗口啦。
  • 硬链接不可以跨分区
  • ln 源  目的:硬链接用法,比软连接少了-s