remote Xfce4 desktop on ArchLinux

Hi everybody!

Few weeks ago I installed Arch linux on my RaspberryPI, to try this particular distro. ArchLinux is a “nerd” distro of Linux, where you must setup every single part that you need to use.
(You can find instructions to setup ArchLinux on Raspberry here)

In this post I don’t want to explain the setup of every single parts into ArchLinux, because there are already many guides for that (best guide is, but I want to talk about a particular situation like mine, where there is a Raspberry PI without monitor and keyboard, with only the ethernet cable to talk with any user, and the need to use the GUI of the Raspberry.
So the question is how get remote Xfce4 desktop on ArchLinux through SSH terminal?.

For first, you need to connect to your remote SSH terminal and install Xorg and Xfce4 on the machine. You also need to install vncserver provided by the package tigervnc.

After that, you only need to create the file ~/.vnc/xstartup (if already exists, delete it and create a new file), and into that file you must write:

exec /bin/sh /etc/xdg/xfce4/xinitrc

that starts an Xfce4 session at every VNC connection of the user owner of that home sub-folder.

The last operation to do is to start on the remote machine a vnc remote desktop, using the command

$ vncserver

that print the number ID of the new remote desktop created.
Then, you can connect to that remote desktop using a simple VNC program, like xvnc4viewer or the graphical remote desktop client remmina of Ubuntu, using as remote IP the format <remoteIP>:<dekstopID> like this:

or, otherwise if you need to setup the connection PORT, you only have to sum the standard VNC port 5900 to the ID of the desktop (if the new desktop created is the number 2 the remote port will be 5902).

Enjoy! 😉


PS: to delete the created remote dekstop (for example the desktop 2), the command is

$ vncserver -kill :2

APT proxy connection

In some cases I needed to connect to internet through a proxy.
There are many ways to set the proxy data into browsers or other applications, and sometimes the APT needs an own proxy configuration.

If your APT does not connects to internet and you must use a proxy, you need to execute this command:

# echo "Acquire::http::proxy \"http://username:pwd@proxyIP:port\";" >> /etc/apt/apt.conf

where username and pwd are your username and password used to login into proxy server, proxyIP and port are the IP address and port of your proxy server.

If the file /etc/apt/apt.conf is not already present into system, this command creates the file and writes into it.
If the file is already present, it can have a standard line for proxy settings, that you have to modify with your settings or to delete after the execution of the command.

After that, you can test the connection of APT with:

# apt-get update

and you should have a normal update of the repositories.

Enjoy! 😉

setup SquirrelMail (HTTP email client)

Hi everyone!!

Today I want to describe how to install SquirrelMail on your personal server. This software is an HTTP MTA (Mail Transfert Agent) like Thunderbird, Evolution and others, but it must be used by an HTTP web page instead a gui interface.
For this, is like a webmail MTA like the web GUI of, yahoo or anyone other email manager, but it is personalized and it can be used where you don’t have a web GUI of your email, or if you want a simple interface, without annoying advertisements or useful parts.

I used that to manage a personal email on my always-on RasperryPI at home, because at work all the MTA application are blocked by proxy and I don’t like the web interface of, then now I use this.  😀

The installation in really simple, by the command:

$ sudo apt-get install squirrelmail

and after, you need to configure the MTA

$ sudo /usr/sbin/squirrelmail-configure

that opens a configuration menu

SquirrelMail Configuration : Read: config.php (1.4.0)
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> 

with many options to configure your software.

So, under “Server Settings” (“2” and Enter) you can insert the server parameters (i used Yahoo for the example)

SquirrelMail Configuration : Read: config.php (1.4.0)
Server Settings

1.  Domain                 :
2.  Invert Time            : false
3.  Sendmail or SMTP       : SMTP

A.  Update IMAP Settings   : (other)
B.  Update SMTP Settings   :

R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Command >>

and using the command “A” and “B” you can configure the specific IMAP and SMTP parameters

(command A)

SquirrelMail Configuration : Read: config.php (1.4.0)
Server Settings

1.  Domain                 :
2.  Invert Time            : false
3.  Sendmail or SMTP       : SMTP

IMAP Settings
4.  IMAP Server            :
5.  IMAP Port              : 993
6.  Authentication type    : plain
7.  Secure IMAP (TLS)      : true
8.  Server software        : other
9.  Delimiter              : detect

B.  Update SMTP Settings   :
H.  Hide IMAP Server Settings

R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Command >>

(command B)

SquirrelMail Configuration : Read: config.php (1.4.0)
Server Settings

1.  Domain                 :
2.  Invert Time            : false
3.  Sendmail or SMTP       : SMTP

SMTP Settings
4.   SMTP Server           :
5.   SMTP Port             : 465
6.   POP before SMTP       : false
7.   SMTP Authentication   : plain (with custom username and password)
8.   Secure SMTP (TLS)     : true
9.   Header encryption key : 

A.  Update IMAP Settings   : (other)
H.  Hide SMTP Settings

R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Command >> 

After that configuation, setup SquirrelMail into your Apache Web Server

$ sudo echo "Include /etc/squirrelmail/apache.conf" >> /etc/apache2/apache2.conf
$ sudo /etc/init.d/apache2 restart

Now, your SquirrelMail MTA should be online!! Try it at: http://my-server-ip/squirrelmail where you only need to usw your username and password related to the smtp and imap servers configurated.

This is an example on how is the login page

and how the mail looks like

Enjoy! 😉

Setting up SSH public/private keys

SSH can be set up with public/private key pairs to have a personal security control onto your ssh connection.

To obtain your public and private keys, on your client machine you only need to type:

$ ssh-keygen -t rsa -C "John Doe "

where instead “John Doe” you must insert your name and surname.
The output is:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/fra/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

where you have to insert the filename for your key (for example “fcastagnotto_key”) and the passphrase to protect the use of your private key (lika a password).

After that, the command shows the key fingerprint and the key’s randomart image of your public key and then, your keys are created!!

You can find your private key (for me is the file fcastagnottoLINUX_key) and your public key (for me is the file under the directory where you have been done this procedure.

Then, if your keys aren’t under your ~/.ssh/ folder, you have to move them there. For my keys, this is the command:

$ sudo mv fcastagnottoLINUX_key* .ssh/ -v

To complete the setup for the key recognition, you must copy your public key into your remote server whit the command

$ ssh-copy-id user@

where the you have to replace user with your remote user and whit the IP address of your remote machine. This command place your public key into the remote machine’s authorized_keys file. (This command ask you to insert the remote user’s password for the copy of the key)

At this point, you can test your remote recognition with

$ ssh user@

and you should have to insert your passphrase, to correct login into your remote machine!!

Enjoy! 😉

Reinstall GRUB with a GNU\Linux LiveCD or LiveUSB

Sometimes, I had to install Windows in addition to GNU\Linux on the same machine. Sad days.

Best way to do this, is to start with the Linux installation -that opens the partition program- to have a right division of your disk. After this installation, I install Windows in its own partition, but this OS doesn’t like the linux bootloader and it rewrite the disk MBR with the reference to start the Microsoft Bootloader.

So in this condition, to reinstall the GRUB bootloader (the best used bootloader with new GNU\Linux distros) you can use the live distro on the CD or pendrive.
When the live-system starts, you need to know the system name of the linux partition. To know that, use the command

$ sudo fdisk -l

that shows the various partitions of the machine. Then you can identify your linux partition and know the system name that is “/dev/sdaX” or “/dev/hdaX” where X is a number.

Then, you only need to write these commands:

$ su
# mkdir /disk
# mount /dev/sdaX disk
# mount --bind /dev disk/dev
# mount -t proc none disk/proc
# chroot disk /bin/bash
# grub-install /dev/sda
# update-grub

In case you have the /boot folder into a different partition, you need to write also

# mount /dev/sdaX disk/boot

before the chroot command.

After that, you can do a normal restart of your system from HD and the bootloader is restored!

Automatic “1st result” on Firefox

This is not a post only for linux user, but is for all the “Firefox users“.

Here I simply post the method to allow Firefox to show the first result of the Google search, only tiping some keywords in the adress bar, without clicking on the results list of Google.
This function was implemented in the older versions of Firefox (like the 7th-8th), but in the modern versions it appears the list of Google and you must select the result that you want.

So, to enable this function, go to the address bar and type
and then promise to Firefox that you’ll be careful with the configuration parameters.   XD

In the Search field, type keyword: it can show only few item.

  1. set  keyword.enabled   to   true
  2. set   keyword.URL   to


Now, enjoy you new searches!   ;o)

Compare files and folders

When you need to compare files and folders (and folder trees), you can use the bash command diff.

I analyze the complex case of compare folder trees, for example when you have two directory trees maked in the same mode, but not really equal.
So, you must type:

$ diff -rw project1/ project2/ | diffstat

where i use the -r option to recursively compare any subdirectories, and the option -w to ignore all whte spaces.
At the end, i use the diffstat command to make histogram from diff-output, that transform the output in a best view.

If you have too many files and folders to analyze, you can read in the best way using the less command, appended after diffstat with a pipe.


Enjoy!!  😉