As subtle as a flying brick.

Be careful what you show the world.
You never know when the wolf is watching.

― Jennifer Donnelly, Revolution

Latest

Half-Life 2 For Steam on Linux

The first-person shooter Half-Life 2 released for Steam on Linux. I truly enjoyed Counter Strike, and I am going to install Half-Life 2 this weekend. From the release notes:

Half Life 2 logo

Half-Life 2, Half-Life 2: Episode 1, Half-Life 2: Episode 2 and Half-Life 2: LostCoast are now available as a Beta. This beta adds Linux support and converts the game to the new Steam Content delivery system.

Linux users can simply install the games access the beta. For Windows and OS X users right click the game in your Library, choose properties and then go to the Beta tab. Select the SteamPipe beta to start testing. Under Windows and OS X to opt out of testing simply deselect the beta option on this same page.

I think Valve has done a good job, and I’m hoping more game developers will release popular games on Linux.

 

Image

These cups do not runneth over.

The Little Prince – A photo series by Matej Peljhan

Muscular dystrophy is a disorder that weakens a person’s muscles over time. Those who have the disease gradually lose the ability to do things people normally take for granted—such as walking, playing basketball, dancing and even swimming.

A photographer based in Slovenia named Matej Peljhan took photos of a  12-year-named Luka who suffers from muscular dystrophy depicting the child doing things he’s unable to because of his condition. After talking to Luka about his wish to do activities boys his age enjoy like skateboarding and swimming, the photographer created the non-digitally manipulated series which both show sense of humor and an undying spirit. Rather than use some type of digital trickery to make this dream a reality, Peljhan decided to simply use a different perspective.

Created by laying cloth and everyday objects on the ground, and photography trickery, Peljhan helped Luka turn his dreams (and drawings from a notebook) into reality.

These poignant pictures also send a message about the disorder, and remind viewers to appreciate life and live it to the fullest.

You can find larger versions of these photographs in this online gallery.

This is why you test backups.

 

 

 

How to check if a directory exists in a shell script

To check if a directory exists and is a directory use the following syntax:

[ -d "/path/to/dir" ] && echo "Directory /path/to/dir exits." || echo "Error: Directory /path/to/dir does not exits."

The following version also check for symbolic link:

[ -d "/path/to/dir" && ! -L "/path/to/dir" ] && echo "Directory /path/to/dir exits." || echo "Error: Directory /path/to/dir exits but point to $(readlink -f /path/to/dir)."

OR

[ -d "/path/to/dir" && ! -h "/path/to/dir" ] && echo "Directory /path/to/dir exits." || echo "Error: Directory /path/to/dir exits but point to $(readlink -f /path/to/dir)."

Finally, you can use the traditional if..else..fi:

if [ -d "/path/to/dir" ]
then
    echo "Directory /path/to/dir exits."
else
    echo "Error: Directory /path/to/dir does not exits."
fi

Shell script examples to see if a ${directory} exists or not

 
#!/bin/bash
dir="$1"

[ $# -eq 0 ] && { echo "Usage: $0 dir-name"; exit 1; }

if [ -d "$dir" -a ! -h "$dir" ]
then
   echo "$dir found and setting up new Apache/Lighttpd/Nginx jail, please wait..."
   # __WWWJailSetup "cyberciti.biz" "setup"
else
   echo "Error: $dir not found or is symlink to $(readlink -f ${dir})."
fi

In this example, create directories if does not exits:

# Purpose: Setup jail and copy files
# Category : Core
# Override : No
# Parameter(s) : d => domain name
#                action => setup or update
__WWWJailSetup(){
        local d="$1"
        local action="${2:setup}"       # setup or update???
        local index="$d

$d

" # default index.html
        local J="$(_getJailRoot $d)/$d" # our sweet home 
        local _i=""

        [ "$action" == "setup" ] && echo "* Init jail config at $J..." || echo "* Updating jail init config at $J..."
        __init_domain_config "$d"

        [ "$action" == "setup" ] && echo "* Setting up jail at $J..." || echo "* Updating jail at $J..."
        [ ! -d "$J" ] &&  $_mkdir -p "$J"

        for _i in $J/{etc,tmp,usr,var,home,dev,bin,lib64}
        do
                [ ! -d "$_i" ] &&  $_mkdir -p "$_i"
        done
        for _i in $_lighttpd_webalizer_base/$d/stats/{dump,out}
        do
                [ ! -d "$_i" ] &&  $_mkdir -p "$_i"
        done
        for _i in $_lighttpd_webalizer_prepost_base/$d/{pre.d,post.d}
        do
                [ ! -d "$_i" ] &&  $_mkdir -p "$_i"
        done
## truncated 
}

Summary

Use the following to check file/directory types and compare values:

  1. -L "FILE" : FILE exists and is a symbolic link (same as -h)
  2. -h "FILE" : FILE exists and is a symbolic link (same as -L)
  3. -d "FILE" : FILE exists and is a directory
  4. -w "FILE" : FILE exists and write permission is granted

 

Image

Gandalf. Smiling. Dancing.

If it doesn’t animate, click here.

Image

Wrong on many levels

Wrong on so many Levels.

Wrong on so many Levels.

Configure sudo To Send E-mail

sudo sandwich

sudo sandwich (Photo credit: Dan Harrelson)

Sudo can be configured to send e-mail when the sudo command is used. Open /etc/sudoers file, enter:
# vi /etc/sudoers
Configure alter email id:

 
   mailto "admin@staff.example.com"
   mail_always on

Where,

  • mailto “admin@staff.example.com” : Your email id.
  • mail_always : Send mail to the mailto user every time a users runs sudo. This flag is off by default.

Additional options:

Option Description
mail_badpass Send mail to the mailto user if the user running sudo does not enter the correct password. This flag is off by default.
mail_no_host If set, mail will be sent to the mailto user if the invoking user exists in the sudoers file, but is not allowed to run commands on the current host. This flag is off by default.
mail_no_perms If set, mail will be sent to the mailto user if the invoking user is allowed to use sudo but the command they are trying is not listed in their sudoers file entry or is explicitly denied. This flag is off by default.
mail_no_user If set, mail will be sent to the mailto user if the invoking user is not in the sudoers file. This flag is on by default.

Sudo Logfile

By default, sudo logs vis syslog. You can see sudo log in /var/log/auth.log (Debian / Ubuntu) or /var/log/secure (Redhat and friends). However, you can set the path to the sudo log file (not the syslog log file). Setting a path turns on logging to a file; negating this option turns it off. Type the following command to edit the file:
# sudoedit /etc/sudoers
Set path to log file:

 
   Defaults        !lecture,tty_tickets,!fqdn,!syslog
   Defaults        logfile=/var/log/sudo.log

Save and close the file. To see logs type:
# tail -f /var/log/sudo.log
# egrep -i 'foo' /var/log/sudo.log
# egrep -i 'user1|user2|cmd2' /var/log/sudo.log

Sample Outputs:

Jul  1 12:30:13 : vivek : TTY=pts/3 ; PWD=/home/vivek ; USER=root ; COMMAND=/bin/bash
Jul  1 12:34:02 : vivek : TTY=pts/0 ; PWD=/home/vivek ; USER=root ;
    COMMAND=sudoedit /etc/sudoers
Image

Working for a living.

image

Follow

Get every new post delivered to your Inbox.

Join 1,570 other followers

%d bloggers like this: