TheBlackzone Logo

Posts tagged with "Linux"

ET:Legacy - Rediscovering a Classic

ET:Legacy Logo Roughly 20 years ago, I spent countless hours immersed in the fast-paced, team-driven world of Wolfenstein: Enemy Territory. It was one of those rare gems - a completely free multiplayer FPS with deep strategy, addictive gameplay, and a passionate community. Like many others, I eventually moved on as newer games and systems came along. But recently, I stumbled across something that instantly brought back all the memories: ET:Legacy.

For those unfamiliar, Wolfenstein: Enemy Territory was released back in 2003 as a standalone, free-to-play multiplayer shooter. It set itself apart with class-based gameplay, objective-driven maps, and a strong emphasis on team coordination. The game had a massive community, loads of creative mods, and was a staple on LAN parties and online servers alike.

Enter ET:Legacy

ET:Legacy Radar Map
ET:Legacy Radar Map

To my surprise and delight, I discovered ET:Legacy, an open-source project that breathes new life into this classic. The goal of the project is simple yet ambitious: modernize Wolfenstein: Enemy Territory while preserving the original feel and gameplay. After diving in, I can confidently say - mission accomplished.

ET:Legacy stands out for a number of reasons. First, it has flawless Linux support. As a Linux user, it’s great to find a game that runs so well out of the box. ET:Legacy has been rock solid on my system, with great performance and no configuration headaches.

Second, the magic of the original is fully intact. Movement, weapons, objectives - it all feels exactly as I remember. The developers have been careful to keep the core experience untouched, even while refining the engine behind the scenes.

Last but not least, many of the classic mods I loved (like “NoQuarter” or “Jaymod”) and map packs still work. That backward compatibility is a huge deal for longtime fans and contributes to the fun.

Probably the most surprising (and heartwarming) part: there are still a ton of people playing. Seriously. Pop into a server and you’ll find active matches, experienced players, and even new folks discovering the game for the first time. The community is very much alive, with ongoing development and community events.

Back to the Battlefield

ET:Legacy Following Player
ET:Legacy Following Player

I won’t pretend I’m spending as many hours on the game now as I did two decades ago (age and responsibilities have a way of doing that). But I’ve been playing regularly again, and I’m loving it! There’s something comforting about returning to a game that shaped your gaming tastes - and finding it not just preserved, but thriving.

ET:Legacy is more than just a nostalgia trip. It’s also a testament to the power of open source, community dedication, and the timeless appeal of great game design. If you were a fan back in the day, or even if you’re just curious about one of the best team-based shooters ever made, I can’t recommend it enough.

Give it a try - you might just find yourself yelling “Fire in the hole!” all over again.

Password Generation in the Linux Console

Creating secure passwords is fundamental to maintaining robust cybersecurity practices. While many users rely on password managers or web-based generators, Linux provides numerous built-in and installable tools for generating strong passwords directly from the command line. As a system administrator, I frequently use a mixture of these methods in my daily work, depending on the specific requirements and security contexts I encounter. This post explores various methods to create passwords using the Linux console, from simple built-in utilities to specialized password generation tools.

Using Linux’s Random Source (/dev/urandom)

Linux provides an excellent source of randomness through /dev/urandom, which requires no additional software installation. This method uses pure “built-in tools” and offers great flexibility.

Alphanumeric Passwords

To create a 16-character password with letters and numbers:

< /dev/urandom tr -dc [:alnum:] | head -c${1:-16};echo

Passwords with Special Characters

For maximum security, include all printable characters (excluding spaces):

< /dev/urandom tr -dc [:graph:] | head -c${1:-16};echo

Letters Only

Sometimes you need passwords with only alphabetic characters:

< /dev/urandom tr -dc [:alpha:] | head -c${1:-16};echo

Mixed Letters and Numbers

A specific combination of digits and letters:

< /dev/urandom tr -dc [:digit:][:alpha:] | head -c${1:-16};echo

Using the dd Command

An alternative approach using dd for a 10-character password:

dd if=/dev/urandom bs=1 count=9 2>/dev/null | base64 -w 0 | rev | cut -b 3- | rev

Quick Password Generation with the date Command

One of the fastest ways to generate a password using Linux built-ins is leveraging the date command combined with md5sum:

Basic Method

date | md5sum

12-Character Password

date | md5sum | cut -c1-12

This method is extremely fast and requires no additional installations, though it’s less cryptographically secure than /dev/urandom methods.

pwgen - The Dedicated Password Generator

pwgen is a popular, purpose-built password generator that offers extensive customization options.

Installation

sudo apt install pwgen

Basic Usage

Generate a block of 160 8-character passwords:

pwgen

Secure 12-Character Passwords

Create secure passwords without ambiguous characters (like “l” and “1”):

pwgen -sB 12

Including Special Characters

pwgen -sBy 12

Batch Generation

Generate ten 12-character passwords in a single column (useful for bulk account creation):

pwgen -sBc 12 -n 10 -1

OpenSSL for Password Generation

OpenSSL, primarily used for encryption certificates and secure data transport, can also generate passwords.

Installation

sudo apt install openssl

Generate Random Password

Create a 12-character random password:

openssl rand -base64 12

Creating Numeric PINs with shuf

The shuf command, typically used for random permutations, excels at generating numeric PINs.

4-Digit PINs

Generate ten 4-digit PINs:

shuf -i 1000-9999 -n 10

8-Digit PINs

Generate ten 8-digit PINs:

shuf -i 10000000-99999999 -n 10

APG - Automated Password Generator

APG offers both pronounceable and random password generation options.

Installation

sudo apt install apg

Basic Usage (Pronounceable Phrases)

apg

Pure Random Characters

apg -a 1

Single 12-Character Random Password

apg -a 1 -m 12 -x 12 -n 1

Specialized Formats

Generate a 32-character hexadecimal password:

apg -a 1 -M nc -n 10 -m 26 -E GHIJKLMNOPQRSTUVWXYZ

Create a 20-digit numeric password:

apg -a 1 -m 20 -M N

Diceware - Word-Based Password Generation

Diceware creates memorable passwords using word lists, based on the concept of using dice rolls for true randomness.

Installation

sudo apt install diceware diceware-doc

Basic English Dictionary

diceware

German Dictionary

diceware -w de

Advanced Options

Five words with two special characters (characters replaced by symbols):

diceware -w de -n 5 -s 2

Five words with custom separator:

diceware -w de -n 5 -d .

Using Real Dice

For maximum security, use actual dice as the randomness source:

diceware -w de -n 5 -r realdice

Choosing the Right Method

The choice of password generation method depends on your specific needs:

Security Considerations

When generating passwords on the command line, remember:

  1. Clear your bash history if it contains sensitive commands
  2. Use /dev/urandom over /dev/random for better performance without sacrificing security
  3. Consider the environment where you’re generating passwords - avoid shared systems for sensitive passwords
  4. For maximum security with Diceware, use real dice rather than computer-generated randomness

Conclusion

Linux provides a wealth of options for password generation directly from the console. From simple one-liners using built-in utilities to sophisticated tools like Diceware, you can generate passwords that meet any security requirement. The key is understanding your specific needs and choosing the appropriate tool for the job. Whether you need a quick password for testing or a highly secure passphrase for production systems, Linux’s command-line tools have you covered.

TMUX and the system clipboard

When I started using TMUX years ago, I frequently updated it from its Github repository, always eager to learn about the latest features of each new version. But, having become the lazy slacker I am nowadays and also having become quite comfortable with my current tmux setup, I haven’t done so for ages.

Today however, I finally did an upgrade to the latest git version and took the opportunity to fix my TMUX configuration regarding a (mildly annoying) shortcoming of not being able to copy mouse selection directly to the system clipboard.

I normaly use the keyboard to copy and paste from or to tmux (CTRL-B being my tmux prefix key):

This behaviour is achieved by these configuraton options:

# Use vi keys for navigation
set-window-option -g mode-keys vi
# begin selection
bind -T copy-mode-vi v send-keys -X begin-selection
# copy to global clipboard
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection prima
# paste from global clipboard
bind p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"

One thing that had never worked for me however was, to copy an area of text from tmux directly to the system clipboard by using the mouse.

To be honest, this had not bothered me enough to put a lot of energy in finding a solution for it, because in my terminal of choice (xfce4-terminal) it is easily possible to just hold down the shift key when doing mouse selections and then shift-right-click to use the terminal’s native copy-paste functionality.

Nevertheless, with the new version of TMUX I finally found an easy solution by adding these settings to my configuration file:

set-option -g mouse on
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard >/dev/null"

It’s the same command as for copying by keyboard, except the keycode being ‘‘MouseDragEnd1Pane’’.

I actually don’t know for how long this solution has been around, but I’m glad I finally learned about it. My TMUX experience now seems to be complete :-)

And, since everybody seems to enjoy looking at other’s configuration settings, here’s my complete ‘’.tmux.conf’’ file:

# TERM
set -g default-terminal "screen-256color"

# Statusbar
set-option -g status on
set-option -g status-bg colour235
set-option -g status-fg colour244
set-option -g status-interval 2

set -g status-right '#[fg=green]#[bg=green]#[fg=black]  #(hostname)  %Y-%m-%d %H:%M #[fg=colour17]#[bg=colour17]#[fg=colour39] #(whoami) #[default]'

# Highlight active window
set-window-option -g window-status-current-style fg=white
set-window-option -g window-status-current-style bg=colour235

set-option -g pane-border-style bg=colour235
set-option -g pane-border-style fg=yellow
set-option -g pane-active-border-style fg=colour244

# key bindings
set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
bind v split-window -h
bind b split-window -v

bind-key C-b last-window
bind C-v paste-buffer

# begin selection
bind -T copy-mode-vi v send-keys -X begin-selection
# copy to global clipboard
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard >/dev/null"
# paste from global clipboard
bind p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"

# options
set-window-option -g clock-mode-colour colour33
set-window-option -g aggressive-resize on

# faster key repeat
set -s escape-time 0

# Activity monitoring
set-window-option -g monitor-activity on
set -g visual-activity on

# mouse support
set-option -g mouse on
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard >/dev/null"

# scrollback
set -g history-limit 128000

# tab numbering starts at 1
set -g base-index 1

# F1 bound to quickly create a multi pane layout for my development work
bind F1 split-window -v -l 8 \; split-window -h -p 50 \; split-window -h -p 50 \; select-pane -t 0 \; split-window -h -p 50

You may have noticed those “special characters” in the status bar setup. These are actually some modified unicode characters coming from the font I use for my terminal, “LiterationMono Nerd Font”, which can be found here.

Adjusting the Linux (Xfce) Volume Control

Like many others I like to listen to music while sitting at my computer. When I am coding or doing other work I need to concentrate on, I do so at a very low volume level, just enough that the music is audible without distracting me. For this reason I use the volume controls of my keyboard quite often to adjust the level according to the current situation.

Normally the volume keys increase or decrease the volume level by 5%, which in most cases is a reasonable setting. But combined with my DELL AC511 sound bar, a step of 5% sometimes goes from “mute” directly to “too loud”, forcing me to use the mouse to make adjustments with the volume slider control.

I was looking for some way to have a more fine-grained control over the amount of volume change when using the keyboard and came up with two solutions to this “problem”.

The first one is specific to the Xfce desktop environment with the “xfce4-pulseaudio-plugin”, which is what I am using, the second one is more generic and works in Xfce as well as in other Linux desktop environments.

Let’s get started…

Read on...

Mounting Truecrypt Volumes in Linux

Today I learned (well not actually today, but a few days ago): You can easily mount Truecrypt containers with cryptsetup in Linux. So let's put a quick reminder here, just in case I need this again...

Set up a loop device

sudo losetup /dev/loop0 /path/to/truecrypt/container

Then open it

sudo cryptsetup open --type tcrypt /dev/loop0 tccontainer

And finally mount the container

sudo mount /dev/mapper/tccontainer /mnt

To close it again, go the other way round...

umount /mnt
sudo cryptsetup close tccontainer
sudo losetup -d /dev/loop0

Done.

You can also mount hidden Truecrypt containers by specifying the type tcrypt-hidden in the cryptsetup open... step.

QMMP Linux Media Player

There are plenty of media players for the Linux platform out there, but the one I like most is the QT-based Multimedia Player QMMP. Maybe one of the reasons for this is, that it feels very much like the original [Winamp Player](http://www.winamp.com/), which I had adopted as my media player of choice back in October 1998 when version 2.03 came out.

Read on...