hacktricks/linux-hardening/linux-environment-variables.md

4.6 KiB
Raw Blame History

Linux环境变量

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

全局变量

全局变量将会子进程继承。

您可以通过以下方式为当前会话创建一个全局变量:

export MYGLOBAL="hello world"
echo $MYGLOBAL #Prints: hello world

这个变量将可以被当前会话及其子进程访问。

您可以通过以下方式移除一个变量:

unset MYGLOBAL

本地变量

本地变量 只能被 当前的 shell/script 访问。

LOCAL="my local"
echo $LOCAL
unset LOCAL

列出当前变量

printenv
set
env
printenv
cat /proc/$$/environ
cat /proc/`python -c "import os; print(os.getppid())"`/environ

持久环境变量

影响每个用户行为的文件:

  • /etc/bash.bashrc: 每次启动交互式shell普通终端时都会读取此文件并执行其中指定的所有命令。
  • /etc/profile 和 /etc/profile.d/*: 每次用户登录时都会读取此文件。因此,此处执行的所有命令将仅在用户登录时执行一次。
  • **示例: **

/etc/profile.d/somescript.sh

#!/bin/bash
TEST=$(cat /var/somefile)
export $TEST

常见变量

来源: https://geek-university.com/linux/common-environment-variables/

  • DISPLAY X 使用的显示器。此变量通常设置为 :0.0,表示当前计算机上的第一个显示器。
  • EDITOR 用户首选的文本编辑器。
  • HISTFILESIZE 历史文件中包含的最大行数。
  • HISTSIZE 用户结束会话时添加到历史文件中的行数。
  • HOME 您的主目录。
  • HOSTNAME 计算机的主机名。
  • LANG 您当前的语言。
  • MAIL 用户邮件存储位置。通常为 /var/spool/mail/USER
  • MANPATH 用于搜索手册页的目录列表。
  • OSTYPE 操作系统类型。
  • PS1 bash 中的默认提示符。
  • PATH 存储所有目录的路径,这些目录包含您希望通过文件名而不是相对或绝对路径执行的二进制文件。
  • PWD 当前工作目录。
  • SHELL 当前命令shell的路径例如/bin/bash)。
  • TERM 当前终端类型(例如,xterm)。
  • TZ 您的时区。
  • USER 您当前的用户名。

用于黑客的有趣变量

HISTFILESIZE

将此变量的值更改为0,这样当您结束会话时,历史文件~/.bash_history将被删除

export HISTFILESIZE=0

HISTSIZE

将此变量的值更改为0这样当您结束会话时任何命令都不会被添加到历史文件~/.bash_history

export HISTSIZE=0

http_proxy & https_proxy

进程将使用在此处声明的 代理 通过 http 或 https 连接到互联网。

export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080"

SSL_CERT_FILE & SSL_CERT_DIR

进程将信任这些环境变量中指定的证书。

export SSL_CERT_FILE=/path/to/ca-bundle.pem
export SSL_CERT_DIR=/path/to/ca-certificates

PS1

更改您的提示符外观。

这是一个示例

Root:

普通用户:

一个、两个和三个后台作业:

一个后台作业,一个停止和最后一个命令未正确完成: