MST

星途 面试题库

面试题:Bash脚本安全加固之权限控制

在Bash脚本中,如何确保脚本执行时拥有恰当的文件和目录权限,以防止权限过度开放带来的安全风险?请举例说明如何设置文件权限来保障脚本安全,以及在脚本中如何使用umask。
29.5万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试

确保脚本执行时拥有恰当权限的方法

  1. 文件权限设置
    • 在创建脚本文件时,使用chmod命令设置合适的权限。一般对于脚本文件,推荐的权限是755,即文件所有者有读、写、执行权限,同组用户和其他用户只有读和执行权限。例如,假设脚本文件名为test.sh,可以使用以下命令设置权限:
    chmod 755 test.sh
    
    • 对于脚本中涉及的其他文件和目录,根据需要设置权限。比如,如果脚本需要读取一个配置文件config.txt,可以设置config.txt的权限为644,即文件所有者有读、写权限,同组用户和其他用户只有读权限:
    chmod 644 config.txt
    
  2. 使用umask
    • umask用于设置在创建新文件或目录时的默认权限掩码。新文件或目录的实际权限是通过从默认权限(文件默认666,目录默认777)中减去umask值得到的。
    • 在脚本中,可以在开头设置umask。例如,设置umask022,这样创建的文件默认权限为644666 - 022 = 644),创建的目录默认权限为755777 - 022 = 755)。示例脚本如下:
    #!/bin/bash
    umask 022
    touch new_file.txt
    mkdir new_directory
    
    • 这样,new_file.txt会具有644的权限,new_directory会具有755的权限,避免了权限过度开放的风险。同时,脚本本身也应设置合适的执行权限,如上述设置为755