Monday, November 19, 2012

What Is SSHFS?

SSHFS stands for (Secure SHell FileSystem) client that enable us to mount remote filesystem
and interact with remote directories and files on a local machine using SSH File Transfer Protocol
(SFTP). SFTP is a secure file transfer protocol that provides file access, file transfer and file
management features over Secure Shell protocol. Because SSH uses encryption while transferring 
files over the network from one computer to another computer and SSHFS comes with built-in
FUSE (Filesystem in Userspace) kernel module that allows any non-privileged users to create their
file system without modifying kernel code.
Before we move further with the installation process, We’d like to tell you that the below installation
also works on all RedHat based distributions like RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8
and Fedora 17,16,15,14,13,12.

Install SSHFS in RHEL, CentOS and Fedora

Step 1: Installing SSHFS

By default sshfs packages exists on all major Linux distributions, just use the below Yum command
to install it with their dependencies.
# yum install sshfs

Step 2: Creating SSHFS Mount Directory

Once the sshfs package installed, you need to create a mount point directory where you will mount
your remote file system. For example, we have created mount directory under /mnt/sshfs.
# mkdir /mnt/sshfs

Step 3: Mounting Remote Filesystem with SSHFS

Once you have created your mount point directory, now run the following command as a root user to
 mount remote file system under /mnt/tecmint. In your case the mount directory would be anything.
 The following command will mount remote directory called /home/tecmint under /mnt/tecmint in
local system. (Don’t forget replace x.x.x.x with your IP Address and mount point).
# sshfs user@x.x.x.x:/home/sshfs/ /mnt/sshfs

Step 4: Verifying Remote Filesystem is Mounted

If you have run the above command successfully without any errors, you will see the list of remote
files and directories mounted under /mnt/sshfs.
# cd /mnt/sshfs
# ls
[root@ sshfs]# ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2 

Step 5: Checking Mount Point with df -hT Command

If you run df -hT command you will see the remote file system mount point.
# df -hT
[root@tecmint]# df -hT
Filesystem   Type    Size  Used Avail Use% Mounted on
/dev/sda2 ext3     75G   21G   51G  29% /
/dev/sda5   ext3     24G   21G  1.5G  94% /home
/dev/sda3   ext3     29G   25G  2.6G  91% /data
/dev/sda1   ext3    289M   22M  253M   8% /boot
tmpfs    tmpfs    252M    0  252M   0% /dev/shm
sshfs#user@ fuse 457G 129G 305G 30% /mnt/sshfs

Step 6: Mounting Remote Filesystem Permanently

To mount remote filesystem permanently, you need to edit the file called /etc/fstab. To do, open the file with your favorite editor.
# vi /etc/fstab
Go to the bottom of the file and add the following line to it and save the file and exit. The below entry mount remote server file system with default settings.
sshfs#user@x.x.x.x:/home/sshfs/ /mnt/sshfs fuse defaults 0 0
Next, you need to update the fstab file to reflect the changes.
# mount -a

Step 7: Unmounting Remote Filesystem

To unmount remote filesystem, jun issue the following command it will unmount the remote file system.
# umount /mnt/sshfs

Excuse for typo!


Sendmail "cannot open '/etc/mail/local-host-names': World writable directory"

Recently I got some issue with Sendmail. When I tried to check mail queue, then it throw me following error.

/etc/mail/ line 91: fileclass: cannot open '/etc/mail/local-host-names': World writable directory
[root@test ~]# mailq
/etc/mail/ line 91: fileclass: cannot open '/etc/mail/local-host-names': World writable directory
/etc/mail/ line 588: fileclass: cannot open '/etc/mail/trusted-users': World writable directory

As Error clearly incdicate that mentioned file have write access for other and group as well and need to change permission for this. So just change permissions and restart sendmail service as below :

$su (If you not login with root)
#chmod go-w /
#chmod go-w /etc
#chmod go-w /etc/mail
#service sendmail restart
[root@test ~]# mailq
                /var/spool/mqueue (5 requests)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
qAHFnjL8006870      166 Sat Nov 17 07:49
                 (Deferred: Connection refused by
qAG9F7d9023285     5631 Fri Nov 16 01:15 MAILER-DAEMON

Sendmail is strict on the permissions. :)