hacktricks/linux-hardening/linux-environment-variables.md
2023-07-07 23:42:27 +00:00

9.7 KiB
Raw Blame History

Linux環境変数

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

グローバル変数

グローバル変数は子プロセスによって継承されます。

現在のセッションのためにグローバル変数を作成するには、次のようにします:

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

この変数は現在のセッションとその子プロセスからアクセスできます。

変数を削除するには、次のようにします:

unset MYGLOBAL

ローカル変数

ローカル変数は、現在のシェル/スクリプトからのみアクセスできます。

LOCAL="my local"
echo $LOCAL
unset LOCAL

現在の変数のリスト

To list the current environment variables in Linux, you can use the printenv command. This command will display all the variables and their values.

Linuxで現在の環境変数をリストするには、printenvコマンドを使用します。このコマンドは、すべての変数とその値を表示します。

$ printenv

This will output a list of all the environment variables currently set on your system.

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

永続的な環境変数

すべてのユーザーの動作に影響を与えるファイル:

  • /etc/bash.bashrc: このファイルはインタラクティブシェル(通常のターミナル)が起動されるたびに読み込まれ、ここに指定されたすべてのコマンドが実行されます。
  • /etc/profile および /etc/profile.d/*: このファイルはユーザーがログインするたびに読み込まれます。したがって、ここで実行されるすべてのコマンドは、ユーザーがログインする時点で一度だけ実行されます。
  • **例: **

/etc/profile.d/somescript.sh

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

特定のユーザーの動作に影響を与えるファイル:

  • ~/.bashrc: このファイルは /etc/bash.bashrc ファイルと同じように動作しますが、特定のユーザーのみに対して実行されます。自分自身の環境を作成したい場合は、このファイルをホームディレクトリに変更または作成してください。
  • ~/.profile, ~/.bash_profile, ~/.bash_login: これらのファイルは /etc/profile と同じです。違いは実行方法です。このファイルは、このファイルが存在するユーザーがログインしたときにのみ実行されます。

抜粋元: こちら および こちら

一般的な変数

From: 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 現在のコマンドシェルへのパス(例: /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

プロンプトの表示方法を変更します。

こちらを作成しました(別のものを基にしています、コードを読んでください)。

ルートユーザー:

通常のユーザー:

バックグラウンドで実行されているジョブが1つ、2つ、3つある場合

バックグラウンドで実行されているジョブが1つあり、1つが停止しており、最後のコマンドが正常に終了していない場合

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥