Ubuntu 22.04, コマンドラインでパスワードをハッシュ化する(htpasswd bcrypt, doveadm SHA-512, openssl SHA-512)

htpasswd + bcrypt $ sudo apt install apache2-utils $ sudo apt list --installed apache2-utils apache2-utils/jammy-updates,now 2.4.52-1ubuntu4.6 amd64 [installed] $ htpasswd -nB myuser New password: password Re-type new password: password myuser:$2y$05$aw7xqaxQ207POKX8bavQleo52mb1jxRT7WenwvXqW21FA4wnygHjq password - Compute bcrypt hash from command line - Unix & Linux Stack Exchange doveadm + SHA-512 $ sudo apt install dovecot-core $ sudo apt list --installed dovecot-core dovecot-core/jammy-updates,now 1:2.3.16+dfsg1-3ubuntu2.2 amd64 [installed] $ doveadm pw -s SHA512-CRYPT Enter new password: password Retype new password: password {SHA512-CRYPT}$6$jtT1Mdke./dCtWSp$5ptqP0pgduBjHiRHCfh0nrWstAI46Jmytf88VlrJgpMsBPSNVhFG1cdgxkHVAXLporwb0d9pcYskAfFPqdtEy1 security - How to create SHA512 password hashes on command line - Unix & Linux Stack Exchange openssl + SHA-512 $ sudo apt list --installed openssl openssl/jammy-updates,jammy-security,now 3.0.2-0ubuntu1.12 amd64 [installed] $ openssl version OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022) $ openssl passwd -6 Password: password Verifying - Password: password $6$TmbOcErpIJRy.gWH$phJqAZzmdBj206D4kQEJNEq638KJyUwcnLbK61yBQeVsImjIg0SYXeClDjyMFCVCAvjqeNszhwtz1aUtTPKo70 security - How to create SHA512 password hashes on command line - Unix & Linux Stack Exchange LinuxでSHA-512のパスワードハッシュ作成方法まとめ #Python - Qiita

2023年11月1日 · aoirint

Dockerfileでイメージ内の既存ディレクトリ宛にADD/COPYした場合の挙動を調べた

Docker Engine 24.0 Dockerイメージのビルド時に、イメージ内のディレクトリ構造に、同じディレクトリ構造をもつホスト側ディレクトリを追加した場合の挙動を確認したい。 cp -rやrsync -aのような挙動を期待するが、動作を検証してみた。 結果として、cp -rやrsync -aのように、既存のディレクトリ内容を維持して、新しいファイルを追加し、重複するファイルがあれば上書きする挙動をした。 ADD - Dockerfile reference | Docker Docs ADDでファイルが重複しない場合 イメージ内に以下のようなディレクトリ構造を構築する。 /hoge fuga piyo/ hogera RUN <<EOF set -eu mkdir /hoge touch /hoge/fuga mkdir /hoge/piyo touch /hoge/piyo/hogera EOF ビルドコンテキストディレクトリに以下のようなディレクトリ構造を構築する。 このディレクトリを先ほどのイメージ内の/hogeにADDする。 hoge/ fugera piyo/ hogerara ADD ./hoge /hoge/ 結果表示用のtreeコマンドをインストールするコマンドを加えて合わせると、以下のようなDockerfileになる。 # syntax=docker/dockerfile:1.6 FROM ubuntu:22.04 RUN <<EOF apt-get update apt-get install -y \ tree apt-get clean rm -rf /var/lib/apt/lists/* EOF RUN <<EOF set -eu mkdir /hoge touch /hoge/fuga mkdir /hoge/piyo touch /hoge/piyo/hogera EOF ADD ./hoge /hoge/ docker build -t doco . docker run --rm -it doco # tree /hoge /hoge |-- fuga |-- fugara `-- piyo |-- hogera `-- hogerara 1 directory, 4 files 既存のディレクトリの内容を維持したまま、新しいファイルが追加される。 ...

2023年10月13日 · aoirint

SNS・Fediverseの投稿インテントURL

Twitter (X)、Misskey、Mastodonには、URLのGETパラメータに投稿本文などを付けて、ミニブログの入力を補助する機能(投稿インテントURL機能)があります。 この記事では、各サービス・ソフトウェアの投稿インテントURLの仕様について記載します。 Twitter Web Intent (2023-07-19時点) ドキュメント: Web Intent | Docs | Twitter Developer Platform https://twitter.com/intent/tweet GETパラメータ 備考 text url hashtags via related in_reply_to Misskey 共有フォーム (v13.13.2時点, 2023-07-13) ドキュメント: 共有フォーム | Misskey Hub Misskey.ioを例とします。 https://misskey.io/share?text=hello GETパラメータ 備考 title text url replyId replyUri renoteId renoteUri visibility localOnly visibleUserIds visibleAccts fileIds Mastodon (v4.1.4時点, 2023-07-08) ドキュメント: 見つけられなかった 実装はここ: https://github.com/mastodon/mastodon/blob/3f5af768c8f1401f77d14ad5b6aeccdb7e02a9f0/app/helpers/application_helper.rb#L196-L204 mstdn.aoirint.comを例とします。 ...

2023年8月7日 · aoirint

Pythonプロジェクトの作成(pyenv + Poetry)

バージョン情報 pyenv 2.4.0 Poetry 1.8.2 Python 3.11.9 定義・ディレクトリ構成 説明のため、プロジェクトディレクトリ名my_project、パッケージ名my-project、主要なモジュール名my_projectとします。 以下のようなディレクトリ構成にすることを想定しています。 - my_project/ - pyproject.toml - Dockerfile - my_project/ - __init__.py - __main__.py - cli.py - tests/ - __init__.py - test_my_project.py Python/Poetryのインストール pyenvでPythonをインストールします。 記事作成時点で最新のリビジョン(0.0.x)を記載していますが、適宜新しいバージョンが出ているか確認し、 更新してください。 マイナーバージョン(0.x.0)を変更する場合、依存する予定のライブラリが動作するかなど、プロジェクトの要件と相談してください。 env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.11.9 PYTHON_CONFIGURE_OPTS="--enable-shared"は、PyInstallerが動作するようにするために設定しています。 pyenv and PyInstaller — PyInstaller 6.5.0 documentation Poetryをインストールします。 Poetry Installation # Linux, macOS, WSL curl -sSL https://install.python-poetry.org | python3 - # Windows (PowerShell) (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - Poetryプロジェクトの作成 Poetryのグローバル設定を変更し、Python仮想環境がプロジェクトのディレクトリ/.venvに作成されるようにします。 これは、VSCode拡張機能のPylanceがPython仮想環境を認識できるようにする、または手動で設定しやすくするための変更です。 ...

2023年8月7日 · aoirint

Ubuntu コマンドの実行を1度だけスケジュールする(atコマンド)

sudo apt install at コマンドは/bin/shで実行される。 次の18:00に1度だけコマンドを実行 echo 'wondershaper clear eno1' | sudo at 18:00 2023年6月29日 18:00に1度だけコマンドを実行 echo 'wondershaper clear eno1' | sudo at 18:00 2023-06-29 実行スケジュール(ジョブ一覧)を確認する sudo at -l ジョブ1番の実行スケジュールをキャンセルする sudo at -d 1 https://yuya-hirooka.hatenablog.com/entry/2021/01/22/215657

2023年6月28日 · aoirint

Ubuntu ネットワーク帯域を制限する(Wondershaper)

sudo apt install wondershaper # 上下300kbpsに制限 sudo wondershaper eno1 300 300 sudo wondershaper enp0s31f6 300 300 # 下り1000kbps、上り300kbpsに制限 sudo wondershaper eno1 1000 300 sudo wondershaper enp0s31f6 1000 300 # 帯域制限を解除 sudo wondershaper clear eno1 sudo wondershaper clear enp0s31f6 https://askubuntu.com/questions/20872/how-do-i-limit-internet-bandwidth rootユーザで/bin/shによるコマンド実行をスケジュール(atコマンド) echo "wondershaper eno1 300 300" | sudo at 18:00 2023-06-29 echo "wondershaper clear eno1" | sudo at 2:00 2023-06-29

2023年6月28日 · aoirint

Ubuntu ネットワーク通信量をターミナルからグラフで見る(Speedometer)

Ubuntu Server 22.04 sudo apt install speedometer 通信量を見たいネットワークデバイスの名前を調べる(eno1、enp0s31f6、enp3s0、eth0、wlan0など)。 ip addr eno1を目的のデバイスの名前に置き換えて、以下のコマンドを実行する。 speedometer -l -r eno1 -t eno1 -m $(( 1024 * 1024 * 3 / 2 )) # other examples speedometer -l -r enp0s31f6 -t enp0s31f6 -m $(( 1024 * 1024 * 3 / 2 )) speedometer -l -r enp3s0 -t enp3s0 -m $(( 1024 * 1024 * 3 / 2 )) speedometer -l -r eth0 -t eth0 -m $(( 1024 * 1024 * 3 / 2 )) speedometer -l -r wlan0 -t wlan0 -m $(( 1024 * 1024 * 3 / 2 )) 参考 networking - How to display network traffic in the terminal? - Ask Ubuntu

2023年5月19日 · aoirint

GitLab CI, DockerイメージをビルドしてContainer Registryにpushする(2023年版)

前回の記事(2021年版)から、以下の内容でアップデートしました。 Docker Engine 24.0 BuildKit レイヤーキャッシュ(Registry cache) タグによるバージョン付け 注意:Self Hosted GitLab RunnerでのDockerデーモンを使ったイメージビルドは推奨しません DinDでのビルドのため、ホストOSのroot権限が取得可能な、コンテナの特権実行(--privileged)、またはDockerソケットのマウント(DooD)が要求されます。 GitLab.comのShared Runnerは使い捨てのGCPインスタンスで提供されるため、コンテナブレイクアウト等によりホストのroot権限が取得されても、 Dockerエンジンのホストである仮想マシンごと破棄されますが、そのような工夫をしていないRunner(VPSやベアメタル)では、 CIジョブの実行により、ホストのroot権限で悪意ある操作が実行され、また、その影響が持続する危険性があります。 Dockerデーモンを必要としない、代替ソフトウェアによるDockerイメージビルドを検討してください。 リポジトリ構造 .gitlab-ci.yml Dockerfile .gitlab-ci.yml # License: CC0-1.0 stages: - build build: stage: build image: docker:24.0 services: - docker:dind rules: # Release - if: $CI_COMMIT_TAG variables: DOCKER_IMAGE_NAME_AND_TAG: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" DOCKER_CACHE_FROM: "type=registry,ref=${CI_REGISTRY_IMAGE}:latest-buildcache" DOCKER_CACHE_TO: "" # Default branch - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH variables: DOCKER_IMAGE_NAME_AND_TAG: "${CI_REGISTRY_IMAGE}:latest" DOCKER_CACHE_FROM: "type=registry,ref=${CI_REGISTRY_IMAGE}:latest-buildcache" DOCKER_CACHE_TO: "type=registry,ref=${CI_REGISTRY_IMAGE}:latest-buildcache,mode=max" script: - apk add --no-cache git - docker buildx create --use - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}" - > docker buildx build . -t "${DOCKER_IMAGE_NAME_AND_TAG}" --cache-from "${DOCKER_CACHE_FROM}" --cache-to "${DOCKER_CACHE_TO}" --push ※ docker buildx buildのコマンドは複数行になっていますが、2行目以降を1行目と異なるインデント数にしないでください。2行目以降が別のコマンド扱いになり、動作しなくなります。 docker buildx create --use docker buildx build実行時に、以下のようなエラーが出るため追加しています。 ...

2023年5月18日 · aoirint

7 Days to Die Dedicated Server in Docker

vinanrra/7dtd-server - Docker Image | Docker Hub vinanrra/Docker-7DaysToDie: 7 days to die server using LinuxGSM in Docker with backups, monitor, auto-installable mods and more aoirint/seven-days-server-test: 7 Days to Die Dedicated ServerのDocker Compose構成テスト vinanrra/7dtd-serverを使用します。 7 Days to Die α20.7 パーティ人数は7 Days to Dieの仕様で8人まで 9人以上の仲間で遊ぶ場合は複数パーティ組むなどの工夫が必要 もしくはDLL改変で上限を外せる可能性がある UnKnoWnCheaTs - Multiplayer Game Hacking and Cheats - View Single Post - [Question] 7 days to die - Max players in group/party RAM: 8人・マップPREGEN6kで8GB程度はほしい、1人でも最低4GB docker-compose.yml # Based on https://github.com/vinanrra/Docker-7DaysToDie/blob/d5dbbb4e2ec65614b985d653f51725932d171dc7/docs/usage.md version: '3.8' services: 7dtdserver: image: "vinanrra/7dtd-server:v0.5.0" restart: always # INFO - NEVER USE WITH START_MODE=4 or START_MODE=0 environment: - START_MODE=1 # Change between START MODES - VERSION=alpha20.7 # Change between 7 days to die versions - PUID=1000 # Remember to use same as your user - PGID=1000 # Remember to use same as your user - TimeZone=Asia/Tokyo # Optional - Change Timezone - BACKUP=NO # Optional - Backup server at 5 AM - MONITOR=NO # Optional - Keeps server up if crash volumes: - ./volumes/7DaysToDie:/home/sdtdserver/.local/share/7DaysToDie/ - ./volumes/LGSM-Config:/home/sdtdserver/lgsm/config-lgsm/sdtdserver/ - ./volumes/ServerFiles:/home/sdtdserver/serverfiles/ # Optional - serverfiles folder - ./volumes/log:/home/sdtdserver/log/ # Optional - Logs folder - ./volumes/backups:/home/sdtdserver/lgsm/backup/ # Optional - If BACKUP=NO, backups folder ports: - 26900:26900/tcp # Default game ports - 26900:26900/udp # Default game ports - 26901:26901/udp # Default game ports - 26902:26902/udp # Default game ports # - 8080:8080/tcp # OPTIONAL - WEBADMIN # - 8081:8081/tcp # OPTIONAL - TELNET # - 8082:8082/tcp # OPTIONAL - WEBSERVER https://7dtd.illy.bz/wiki/Server%20fixes 7 Days to Dieサーバ本体のアップデート https://github.com/vinanrra/Docker-7DaysToDie/blob/9327daecb66d412b520532f739111955e7985aa5/docs/parameters.md#start-modes docker-compose.ymlのenvironmentを以下のように変更します。 ...

2023年4月24日 · aoirint

Selenium HTTPリクエストのURLを記録する(Chrome, Python)

Selenium 4.9.0 Chrome 112 ChromeDriver 112.0.5615.49 Python 3.11 import time import json from selenium.webdriver import ( Chrome, DesiredCapabilities, ) desired_capabilities = DesiredCapabilities.CHROME desired_capabilities["goog:loggingPrefs"] = { "performance": "ALL", } driver = Chrome( desired_capabilities=desired_capabilities, ) driver.implicitly_wait(5) driver.get("https://www.google.com/") known_url_set = set() while True: performance_log_entries = driver.get_log("performance") for log_entry in performance_log_entries: log_message = json.loads(log_entry.get("message", "{}")).get("message", {}) method = log_message.get("method") params = log_message.get("params", {}) if method == "Network.responseReceived": response = params.get("response", {}) url = response.get("url") if url in known_url_set: continue known_url_set.add(url) print(url) time.sleep(1) Python+SeleniumでChromeデベロッパーツールのNetworkタブ相当の情報を取得する - Qiita java - Using Selenium how to get network request - Stack Overflow

2023年4月24日 · aoirint