Allow normal user to mount linux partitions, usb stick / pen device

last updated in Categories CentOS, Debian Linux, File system, Hardware, Howto, Linux, Linux desktop, RedHat/Fedora Linux, Security, Ubuntu Linux, User Management

You need to use autofs. It is use to mount file system on demand. Usually autofs is invoked at system boot time with the start parameter and at shutdown time with the stop parameter. The autofs script can also manually be invoked by the system administrator to shut down, restart or reload the automounters.

autofs will consult a configuration file /etc/auto.master to find mount points on the system.

i) Install autofs if not installed. if you are using Debian / Ubuntu Linux, enter:
# apt-get install autofs
ii) Create dekstop group and add user jimmy to this group:
# groupadd desktop
# usermod -G video,desktop jimmy
# chmod -R a+rx /var/autofs/misc

iii) Configure autofs so that usb stick can be accessed:
# vi /etc/auto.misc

iv) Append following text to auto.misc:
usb -fstype=auto, user, sync, nodev, nosuid, gid=desktop, umask=002 :/dev/sda1
d -fstype=vfat, user, sync, nodev, nosuid,gid=desktop, umask=002 :/dev/hda2

Where,

  • usb : Is directory name, which can be accessed via /var/autofs/misc/usb directory. User in desktop group just need to type cd command (cd /var/autofs/misc/usb) to change the directory.
  • -fstype- auto, user, sync, nodev, nosuid, gid-desktop, umask-002 :- All these are options used to mount the file system by automounter.
  • auto: File system is automatically determined by kernel.
  • user: Normal user are allowed to mount devices
  • nodev: Do not interpret character or block special devices on the file system.
  • nosuid: Do not allow set-user-identifier or set-group-identifier bits to take effect. This is security feature.
  • gid=desktop: This allows file system mounted as as group dekstop. As we have added user jimmy to this group already.
  • umask=002: Setup umask so that users in group desktop can write data to device.

Please note that without gid and umask option normal user cannot write data to device.

v)Restart the autofs:
#/etc/init.d/autofs restart
vi) Test it as user jimmy (make sure usb stick/pen is inserted into usb port):
$ ls /var/autofs/misc/usb
$ cd /var/autofs/misc/usb
$ mkdir testdir
$ ls -l

Linux Desktop How to shutdown, restart or logoff gnome via command / Launcher

last updated in Categories Debian Linux, Howto, Linux desktop, Suse Linux, Ubuntu Linux

It is true that Gnome desktop provides nice facility to logoff, shutdown or restart computer with dialog. You can create a nice shortcut to avoid the GUI confirmation dialog box to speed up work.

(A) Shutdown computer
i) Right click on Desktop > Select Create Launcher
ii) Type the Command in text box “sudo /sbin/shutdown -h 0” and for rest of properties refer following figure:

iii) Click Close to save. Please note that only root will be able to shutdown system. However with the help of sudo it is possible that non-privileged can also shutdown the system (without password). Type following commands:
a) Login as root user

b) Type visudo command:
#visudo

c) Append following text of line, so that all commands will be excuted without password.
vivek localhost= NOPASSWD: /sbin/shutdown -h 0
vivek localhost= NOPASSWD: /sbin/reboot

By default, sudo requires that a user authenticate him or herself before running a
command. This behavior is modified with NOPASSWD flag i.e. shutdown and reboot command would allow user vivek run as root on the localhost as root without authenticating (password) himself

d)Save the file and replace command in above figure with sudo /sbin/shutdown -h now and close the dialog Launcher dialog box.

(B) Restart computer
i) Right click on Desktop > Select Create Launcher
ii) Type the Command in text box “sudo /sbin/restart” and for rest of properties refer following figure:

(C) Logoff Gnome

i) Right click on Desktop > Select Create Launcher
ii) Type the Command in text box “/usr/bin/gnome-session-save –kill” and for rest of properties refer following figure:

iii) Make sure you turnoff user logout dialog box. Type command OR Click on Applications > Desktop Preferences > Advanced > Sessions and clear the option box ‘Prompt on logout’ > Click close to save changes.

You can also use logoff script, to logoff KDE/Gnome desktop session. All these hacks should also work with FreeBSD or OpenSolaris desktop.

Linux wget: Your Ultimate Command Line Downloader

last updated in Categories CentOS, Debian Linux, FreeBSD, Gentoo Linux, Howto, Linux, Linux desktop, Networking, RedHat/Fedora Linux, Shell scripting, Solaris, Suse Linux, Sys admin, Tips, Tuning, Ubuntu Linux, UNIX

It is a common practice to manage UNIX/Linux/BSD servers remotely over the ssh session. You may need to download the software or other files for installation. There are a few compelling graphical download manager exists for Linux and UNIX like operating systems:

Linux: How to use USB pen / flash stick

last updated in Categories Debian Linux, File system, Gentoo Linux, Howto, Linux, Linux desktop, RedHat/Fedora Linux, Suse Linux, Ubuntu Linux

More and more people these days using the USB pen and flash memories instead of floppies and CDs. They come is different sizes from 128MB upto 2 GB. Moreover, may new Linux user find it difficult to use usb devices, the main problem is people don’t understand how it works…

USB devices use SCSI devices names

SCSI devices such as /dev/sda use to represent your first USB pen/stick and equivalent partitions are as follows:

Sample 256 MB USB PEN (E: is 100 MB, F: is rest of the free space)
Linux Partition => Windows XP/NT
/dev/sda1 => E: (assuming that C: is hard-disk; D: is VD/CD/RW)
/dev/sda2 => F: (assuming that C: is hard-disk; D: is DVD/CD/RW; E: is first drive USB pen 100 MB drive)

Linux Kernel must have support for USB

Linux kernel must compiled with support for
i) SCSI disk
ii) USB Support
iii) USB Mass support

Most of the modern Linux distribution comes with all sort of support. If it is not included, get latest kernel from http://kernel.org/ and make sure you compile it with above features + file system support such as ext2/3, vfat and so on…

Commends to mount USB Pen / Flash memory stick under Linux

a) Log in as the root user (or use sudo command)

b) Create a mount point
# mkdir –p /mnt/pen
# mkdir –p /mnt/pen

c) To mount the disk run mount command:
# mount /dev/sda1 /mnt/pen

This command will mount MS-Windows XP/Vista E: into /mnt/pen

d) To use it or to see your files:
# cd /mnt/pen
# ls –l

e) To copy files from /home/rdl/*.c to directory to pen drive us cp command:
# cp –v /home/rdl/*.c /mnt/pen

f) You can use rest of the all command such as rm, rmdir, mv etc to copy, move or delete files.

g) To format the /dev/sda2 as Linux ext3 partitions use the following command:
# mkfs.ext3 /dev/sda2

h) To delete all partition and to create new partition use run fdisk program:
# fdisk /dev/sda

Refer to fdisk man page for more information on how to delete and create partitions.

g) To list all partition on all devices use the following command:
# fdisk –l

h) Use dmesg command to get more info on your USB devices:
# dmesg | grep –i "usb"

i) Run scandisk (window like stuff) on /dev/sda1:
# umount /dev/sda1
# fsck /dev/sda1

Further readings:

=> See the detailed guide USB Flash Memory HOWTO

Linux: Download all file from ftp server recursively

last updated in Categories FreeBSD, Gentoo Linux, Howto, Linux, Linux desktop, RedHat/Fedora Linux, Shell scripting, Solaris, Suse Linux, Sys admin, Tips, Ubuntu Linux, UNIX

You can use ncftpget command to download entire ftp directory and sub directories from remote ftp server. Let us say you would like to download /www-data directory and all subdirectories inside this one from ftp.nixcraft.net server. You need to use ncftpget command.

Install ncftp client

ncftp client software can be downloaded from http://www.ncftp.com/ncftp/ and works with FreeBSD, Solaris and all most all UNIX variant. You can also run command as follows to install ncftp:
$ sudo apt-get install ncftp

FTP get directory recursively

ncftpget is Internet file transfer program for scripts and advance usage. You need to use command as follows:
$ ncftpget –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data
Where,

  • -R : Copy all subdirectories and files (recursive)
  • -v : Verbose i.e. display download activity and progess
  • -u “USERNAME” : FTP server username, if skipped ncftpget will try anonymous username
  • ftp.nixcraft.net : Ftp server name
  • /home/vivek/backup : Download everything to this directory
  • /www-data : Remote ftp directory you wish to copy

If you get an error which read as follows:

tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
Could not read directory listing data: Connection reset by peer

Then add –T option to ncftpget command:

$ ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data

Where,

  • -T : Do not try to use TAR mode with Recursive mode

Linux: Burn multi session CDs on Linux

last updated in Categories CentOS, Debian Linux, File system, Gentoo Linux, Hardware, Howto, Linux, Linux desktop, RedHat/Fedora Linux, Suse Linux, Ubuntu Linux

Under Linux you can use tool called cdrecored (use to record audio or data Compact Discs) with mkisofs (use to create an hybrid SO9660/JOLIET/HFS filesystem with optional Rock Ridge attributes ) for this purpose.

Step #1: Create first session as follows

1) Create an iso image first:

# mkisofs -R -o /tmp/cd.iso /backup/06-07-2004/

Where,

  • -R : Uses Rock Ridge naming convention/attributes
  • -o : Name of new iso file (cd.iso)
  • /backup/06-07-2004/ : Everything in /backup/06-07-2004/ will be put into cd.iso file

2) Burning the disk (or an ISO image) for first session:

# cdrecord -dev=0,0,0 -multi -data -v -eject -speed=4 /tmp/cd.iso

Where,

  • -dev=0,0,0 : device number (tip you can use cdrecord -scanbus command to get this number)
  • -multi : Start multi session disk
  • -data : This option required for HP and Sony CD Writer only.
  • -v : Verbose i.e show info while burning the disk
  • -eject : Ejects the CD when done
  • -speed=4 : Write speed (4x)
  • cd.iso : Name of image being burned

3) Mount cdrom and see the contains:

# mount /mnt/cdrom
# ls /mnt/cdrom
# rm -f /tmp/cd.iso

OR< pre># mount /dev/hda /mnt/cdrom; ls /mnt/cdrom; rm -f /tmp/cd.iso
4) You can also verify that how many sessions written so far:

# umount /mnt/cdrom
# cdrecord -dev=0,0,0 -toc

Where,

  • -dev=0,0,0 : Device number
  • -toc : Retrieve and print out the table of content

Step #2: Burning the disk (or ISO image) for next session

Next session is bit tricky. You need to specify last sessions starting and ending sector numbers this information can be obtained from the following command:

# cdrecord -dev=0,0,0 -msinfo

Output:

0,11063

1) Create next session ISO file:

# mkisofs -o /tmp/ses2.iso -R -V session2 -C $(cdrecord -dev=0,0,0 =msinfo)
-M 0,0,0 /backup/07-07-2004

Where,

  • -C $(cdrecord -dev=0,0,0 –msinfo) : This option is needed when mkisofs is used to create the image of a second session or a higher level session for a multi session disk
  • -M 0,0,0 : Specifies path to existing iso9660 image to be merged.

2) Burning the disk (or an ISO image) for second session:

# cdrecord -dev=0,0,0 -multi -data -v -eject -speed=4 /tmp/ses2.iso

3) Mount cdrom and see the contains:

# mount /mnt/cdrom; ls /mnt/cdrom; rm -f /tmp/ses2.iso

OR

# mount /dev/hda  /mnt/cdrom; ls /mnt/cdrom; rm -f /tmp/ses2.iso

Note: When you wish to close disk (multi session cd), omit the -multi option for last session.

Online references:

SSH Public Key Based Authentication on a Linux/Unix server

last updated in Categories CentOS, Debian Linux, FreeBSD, Gentoo Linux, Howto, Linux, Linux desktop, Linux laptop, OpenBSD, RedHat/Fedora Linux, Solaris, Suse Linux, Sys admin, Tips, Ubuntu Linux, UNIX

The SSH protocol recommended a method for remote login and remote file transfer which provides confidentiality and security for data exchanged between two server systems. The SSH depends upon the use of public key cryptography. The OpenSSH server offers this kind of setup under Linux or Unix-like system. This how-to covers generating and using ssh public keys for automated usage such as:

  1. Automated Login using the shell scripts
  2. Making backups
  3. Run commands from the shell prompt and more
  4. Login without password