Tips, Tricks, Guides

Ubuntu: How to check if a software is installed in ubuntu?

Command used to check if a particular software is installed in Ubuntu or not

$ dpkg-query -s firefox

This is the equivalent of “rpm -qa firefox” in RedHat/CentOS


Query string limit in GET data and Size limit in POST Data

RFC 2616 – Section 3 states:

“Servers should be cautious about depending on URI lengths above 255 bytes because some older client or proxy implementations may not properly support these lengths.”

Different browser agents support different URI length acceptance. In addition, servers too play a role in accepting/denying URI’s over certain length which may either truncate the URI or may give lengthy URI message indications.

It is always advisable to rely on shorter URI’s and to post data when more field sets are to be transferred across web pages.

POST data too has its limit. In this case, it is the size of the data which is controlled by the server settings.

Some interesting discussions:

Limit on query string GET URL parameters


Premature end of script headers: apache error

Apache errors and the approach to solve it

Premature end of script headers
500 Internal Server Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Some troubleshooting tips:

i) Check /var/log/apache2/error.log (in ubuntu, check the respective apache error log location for the messages)

ii) Check if the content type of the page is correctly set for the html content output.

print “Content-type: text/html\n\n”;

iii) Check if a valid permission has been given for the file to get executed. The file need permission 755 for it to be executed on the server.

iv) Check if the configuration path, inclusion path are set correctly in the referenced programs


Permission denied: exec of failed in Apache Server

Apache Permission Denied Error can be caused due to one of many configuration mistakes listed below

Check the apache configuration settings

i) The first is the reference to folder where cgi or perl files will reside and its execute permission settings

 <ScriptAlias /cgi-bin/ /usr/local/cgi-bin/>
 <Directory "/usr/local/cgi-bin">
     AllowOverride None
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
     Order allow,deny
     Allow from all

ii) The second is the proper add handlers that are set for the file execution

AddHandler cgi-script .cgi .pl
<Files ~ "\.pl$">
    Options +ExecCGI
<Files ~ "\.cgi$">
   Options +ExecCGI

Check the apache error log for any messages (/var/log/apache2/error.log).


Ubuntu: Change menu order in GRUB loader

GRUB stands for GRand Unified Bootloader. This is to enable the listing of multiple operating systems so the users could choose the OS of their choice.

To change the menu order we need to edit a file called menu.lst

# vi /boot/grub/menu.lst

Look for a line “default 0“. This is the option to indicate that the first menu on the list should be loaded by default. In order for you to set the default menu content in the GRUB loader that needs to get started you can set this parameter.

This is of the form “default <ID>” where ID = N -1. If there are 4 list items in the menu and if you want to load the 4th item by default, you need to set this configuration setting to “default 3”.

Another option for you is to have the menu list with the entry “savedefault = true“. This would enable the last used menu entry to get loaded during the next boot.


Mount, Read, Write, Access USB Flash Drive in Ubuntu

How to access USB Flash Drive?

To know the drives and their partition you need to execute
# fdisk -l

Another option is to list the last 5 entries from /dev to know what devices got attached
$ ls -ltr /dev | tail

And another option is to use the lsusb command.

USB Flash drive will normally be listed down as /dev/sdb1
Continue Reading…


su vs. sudo

The help pages state …

su – run a shell with substitute user and group id’s
sudo – execute a command as another user (or root)

When ‘sudo‘ is used with a command, the command gets executed with privileges set for the user and the group she belongs to. If a password is required and if it is given initially, the session will be valid depending on the time set for each session and the user needn’t have to type the password within that duration. /etc/sudoers is the location where permission settings for sudoers are being set.
Continue Reading…


How to hide Apache version, Modules loaded, PHP Version?

It is often advisable not to disclose information than is necessary when web request are made to Apache server.

By default, Apache displays the version of the server, modules loaded in the server and the version of PHP if PHP is configured with Apache.

In httpd.conf file, set the following directives.

ServerSignature Off
ServerTokens ProductOnly

By default, ServerSignature is set to Off and ServerTokens is set to Full in most Linux distros.


How to burn ISO image from Ubuntu Command Line?

First list down the CD/DVD devices connected to your machine and find the device name. Some of the tools that comes handy in an Ubuntu machine are ‘wodim’, ‘genisoimage’

Wodim stands for Write Data to Optical Disk Media. If you don’t have the software installed in your Ubuntu release do an apt-get

$ apt-get install wodim

To know more about wodim and its parameter definition try man on wodim

To list the CD/DVD devices on the machine, issue

$ wodim –devices

wodim: Overview of accessible drives (2 found) :
0 dev=’/dev/scd0′ rwrw– : ‘HL-DT-ST’ ‘CD-RW GCE-8481B’
1 dev=’/dev/scd1′ rwrw– : ‘HL-DT-ST’ ‘DVD-ROM GDR8161B’

Our read-write CD device is in /dev/scd0. So our command for burning the .iso image

$ wodim dev=/dev/scd0 driveropts=burnfree -v -data ubuntu8desktop.iso

To burn audio files

$ wodim dev=/dev/scd0 driveropts=burnfree -v -audio one.wav two.wav three.wav

Further read
i) ubuntu guide

ii) ubuntu site


Ubuntu, Apache: Virtual Hosting

Virtual Hosting in Ubuntu Hardy Heron: Case Example

Consider the case of two domain names mysite1 and site2 to be served on IP Address (port 80)

Before proceeding let us look at how resolv.conf and hosts file are set up …

$ cat /etc/resolv.conf

$ cat /etc/hosts localhost myserver

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Continue Reading…

Kurinchi Calendar
September 2018
« Oct