Friday, January 4, 2013

Centos/Redhat installation using NetInstall 6



CentOS NetInstall 6

Download netinstall

you should be able to google and find the download location or go to centos site and find the mirror page and download on your local system. I used it on vmware and was able to use 64 bit to install 32 bit redhat 6.3 as well as centos 6.3. Either you can use centos iso image directly and boot off of it and on grub menu press tab and enter the following entries.
for eg,

linux repo=http://192.168.10.110/yum resolution=800x600 ip=192.168.10.130 netmask=255.255.255.0
gateway=192.168.10.1 dns1=192.168.10.1
or,
If you are following netinstall iso image, boot off this image and just follow the prompt. Keep following the prompt and you will be prompted for the installation method with options: cd/hard disk/nfs/http. Based on your setup and the requirement, choose the supply the required values.

the best choice is to copy the http or ftp location from the mirror site and simply put it here and run it.

Once you enter the values and click on, you should be able to see Retriving /install.img .. with some percentage...

now, just follow the prompt.
its that simple ...

Wednesday, January 2, 2013

Create ISO image from the content of the directory.

Create ISO image from the content of the directory.

[root@sama opt]# mkisofs -o /home/CnOS6.3.iso /opt/My_Cent_OS_6.3/

 98.69% done, estimate finish Wed Jan  2 21:49:50 2013
 99.02% done, estimate finish Wed Jan  2 21:49:49 2013
 99.35% done, estimate finish Wed Jan  2 21:49:49 2013
 99.69% done, estimate finish Wed Jan  2 21:49:49 2013

Note: Pls verify you have enough space to hold your ISO image.

To mount an iso image,
# mkdir /opt/OS_Image; mount -o loop /home/CnOS6.3.iso /opt/OS_Image
# cd  /opt/OS_Image; ls -l

DHCP configuration


DHCP ( Dynamic Host Configuration Protocol ) helps you to assign IP address to the clients automatically based on the predefined pool of IP addresses.

A. DHCP server set up

1. Install DHCP software package
# yum install dhcp

2. Once installed, configure your dncp
# cat /etc/sysconfig/dhcpd
    –DHCPDARGS=eth1
Note: You specify your interface here.

3. Now, copy sample dhcp configuration for your DHCP configuration
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

4. Edit the config file and make following parameter change.
# cat  /etc/dhcp/dhcpd.conf
option domain-name "expanor.local";
option domain-name-servers 192.168.10.110, 192.168.10.8;


default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

# Update subnet details as per your network.
# our network is 192.168.10.0/24
subnet 192.168.10.0 netmask 255.255.255.0

{
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-search "expanor.local";
option domain-name-servers 192.168.10.110;
# Specify Eastern Standard Time
option time-offset -18000;
range 192.168.10.2 192.168.10.210;
}

## Pre-assign IP address to your host

host sama
{
option host-name "ruma.expanor.local";
hardware ethernet 00:0B:DB:C6:05:07;
fixed-address 192.168.10.120;
}

5. Now, restart the services

# service dhcp stop
# service dhcp start
# chkconfig –levels 345 dhcp on

6 Configure log server to capture log
Note: syslog might have already been installed. if now
# rpm -qa | grep rsyslog
# yum search rsyslog
# yum install rsyslog

a. Append the following at the end of the config file
# tail -f /etc/rsyslog.conf
     –local7.* /var/log/dhcpd.log

Once you made change, restart the syslog service
# service rsyslog restart

b. Once you restart the service, it should start writing to log file.
# tail -f /var/log/dhcpd.log

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

B. Configure DHCP Client

1. Login to your system and edit network configuration
# cat  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes

# service network restart
# ifconfig

Note: Most of the places, you will see commercial products used on most of the companies. They are for specific purpose and might be for specific environment. On real production, we always use static IP

Tuesday, January 1, 2013

How to create RAID1 on Redhat 6

1. Create the disk partition for your mirror device

fdisk /dev/sdb  ==> /dev/sdb1
fdisk /dev/sdc  ==> /dev/sdc1
Note: Make sure you mdadm (multiple device program) package is installed.

2. scan the partition table,
# partprobe /dev/sdb
# partprobe /dev/sdc
or
# echo 1 > /sys/block/sdb/device/rescan

3. Create your mddevice.
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1
or
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Options:
-C -> --create ; -l-> --level= ; -n -> --raid-devices; -Q, --query ; -D -> --detail

4. Check the sync status between the array.
# watch cat /proc/mdstat

5. Create a filesystem
# mkfs.ext4 /dev/md0

6. Mount the miror device
# mkdir /opt/myRAID1; mount /dev/md0 /opt/myRAID1
# df -h /opt/myRAID1

7. Add entry to the fstab to make it persistent across the reboot.
# echo '/dev/md0 /opt/myRAID1 ext4 defaults 0 0' >> /etc/fstab

8. Get the detail info about the mddevice.
# mdadm -Q -D /dev/md0

================= Detail =======================

Make sure you mdadm (multiple device program) package is installed.

1. List the disks on your system.
[root@localhost ~]# fdisk -l | more

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bb87b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        2354    18598912   83  Linux
/dev/sda3            2354        2611     2064384   82  Linux swap / Solaris

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f391

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00053115

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdd: 2147 MB, 2147483648 bytes
22 heads, 16 sectors/track, 11915 cylinders
Units = cylinders of 352 * 512 = 180224 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a467f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1       11916     2097151+  8e  Linux LVM

Disk /dev/sdf: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009422c

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdg: 5368 MB, 5368709120 bytes
181 heads, 40 sectors/track, 1448 cylinders
Units = cylinders of 7240 * 512 = 3706880 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdg1               1        1449     5242879+  8e  Linux LVM

Disk /dev/sdh: 5368 MB, 5368709120 bytes
181 heads, 40 sectors/track, 1448 cylinders
Units = cylinders of 7240 * 512 = 3706880 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdh1               1        1449     5242879+  8e  Linux LVM

Disk /dev/sde: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006dc8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1          42      337333+  82  Linux swap / Solaris
[root@localhost ~]#

2. Prepare the disk you will be using for mirro
=================================================

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f391

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00053115

   Device Boot      Start         End      Blocks   Id  System

=================================================

3. Create disk partition.

a. Creae a partition on first disk /dev/sdb



[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):
Using default value 261

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f391

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         261     2096451   fd  Linux raid autodetect

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#

b. Create second disk partition,

[root@localhost ~]# fdisk /dev/sdc

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):
Using default value 261

Command (m for help): p

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00053115

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         261     2096451   83  Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#


====================================================

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f391

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         261     2096451   fd  Linux raid autodetect

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00053115

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         261     2096451   fd  Linux raid autodetect

====================================================

4. Now, scan the partition table,
[root@localhost ~]# partprobe /dev/sdb
[root@localhost ~]# partprobe /dev/sdc

or
# echo 1 > /sys/block/sdb/device/rescan

5. Create raid 1 (mirror) device

Devices:-

/dev/sdb1
/dev/sdc1

CREATE MODE
Usage: mdadm --create md-device --chunk=X --level=Y --raid-devices=Z devices

# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1
or
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Options detail

-C, --create  --> Create a new array. [ give the name of the metadevice ]
-l, --level=   -->  RAID level [ options are: linear, raid0, 0, stripe, raid1, 1, mir-ror, raid4, 4, raid5, 5, raid6, 6, raid10, 10, multipath, mp, faulty, container. ]

-n, --raid-devices -->> specify the number of active device followed by the name of the device/s
-r, --remove  --> remove listed devices.  They must not be active.  i.e. they should be failed or  spare  devices.
-f, --fail    --> mark listed devices as faulty.
-Q, --query   --> Examine  the device
-D, --detail  --> Print details the md device/s.

[root@localhost ~]# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]#

6. Check the sync status between the array.

[root@localhost ~]# watch cat /proc/mdstat

Every 2.0s: cat /proc/mdstat                                                                       Wed Jan  2 00:01:37 2013

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
      2095415 blocks super 1.2 [2/2] [UU]
      [==================>..]  resync = 94.7% (1985024/2095415) finish=0.0min speed=21262K/sec

unused devices: <none>

Every 2.0s: cat /proc/mdstat                                                                       Wed Jan  2 00:01:45 2013

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
      2095415 blocks super 1.2 [2/2] [UU]

unused devices: <none>


7. Create a filesystem

[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 523853 blocks
26192 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

8. Mount the miror device

[root@localhost ~]# mkdir /opt/myRAID1; mount /dev/md0 /opt/myRAID1
[root@localhost ~]# df -h /opt/myRAID1
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              2.0G   35M  1.9G   2% /opt/myRAID1
[root@localhost ~]#

9. Add entry to the fstab to make it persistent across the reboot.
# echo '/dev/md0 /opt/myRAID1 ext4 defaults 0 0' >> /etc/fstab
[root@localhost ~]# umount /opt/myRAID1/
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  4.9G   12G  30% /
tmpfs                 504M  420K  504M   1% /dev/shm
/dev/sda1             291M   30M  247M  11% /boot
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  4.9G   12G  30% /
tmpfs                 504M  420K  504M   1% /dev/shm
/dev/sda1             291M   30M  247M  11% /boot
/dev/md0              2.0G   35M  1.9G   2% /opt/myRAID1
[root@localhost ~]#

10. Get the detail info about the mirror mddevice.

[root@localhost ~]# mdadm -Q -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jan  1 23:59:43 2013
     Raid Level : raid1
     Array Size : 2095415 (2046.65 MiB 2145.70 MB)
  Used Dev Size : 2095415 (2046.65 MiB 2145.70 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Jan  2 00:05:12 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : f15ed0ed:59c969c9:f2e4174c:6d0bbaa4
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
[root@localhost ~]#


Sunday, December 23, 2012

fsck didn't fix the issue with disk error



After rebooting the system, it went to the single user mode. Complaining about /dev/sdb. fsck the device but it failed. remounted the root fs with rw option and removed the entry from fstab. rebooted it.

1. fsck the device in single user mode.
# fsck.ext4 /dev/sdb

Tried to fsck but got the error below.

fsck.ext4: Device or resource busy while trying to open /dev/sdb Filesystem mounted or opened

exclusively by another program?

2. The root file system is currently mounted read -only. remounted the root fs with read/write option
# mount -n -o remount,rw /

3. Edited the fstab and commented out the filesystem entry for /dev/sdb
# vi /etc/fstab
# /dev/sdb /data ext4 defaults 1 2

4. Rebooted the machine
# shutdown -r now

---------------
The super block could not e read or does not describe a correc ext2 filesystem. e2fsck -b 8193
<device>
/dev/Sam_Vol/Sam_LV
(Repair filesystem) 2 #
rsync -bazv -e ssh /home root@destination:

Thursday, November 22, 2012

Mount cdrom/iso image on Redhat

If cdrom is not mounted by default, you can use the following...

[root@sama mnt]# cd /media/
[root@sama media]# ls
[root@sama media]#

[root@sama /]# mount -t iso9660 /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
 
[root@sama ~]#  dmesg | tail
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts
eth0: no IPv6 routers present
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
SELinux: initialized (dev sr0, type iso9660), uses genfs_contexts
[root@sama ~]#

[root@sama ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_sama-lv_root
                       41G  5.6G   33G  15% /
tmpfs                1011M   88K 1011M   1% /dev/shm
/dev/sda2             485M   30M  430M   7% /boot
/dev/sr0              2.9G  2.9G     0 100% /mnt

[root@sama /]# cd /mnt
[root@sama mnt]# ls
 
# eject -v /dev/cdrom-device && mount -v /dev/cdrom-device && echo $? 
 
Mounting an ISO Image 
# mount -o ro,loop My_ISO_Image.iso /media/cdrom 

Creating a Shared Mount Pointby default removable media is mounted at /media and /mnt for temporary mount point. Using the shared mount, you can share the same content on both shared.

Now, make /media directory as a shared one,
# mount --bind /media /media
# mount --make-shared /media

now, create duplicate in /mnt 
# mount --bind /media /mnt

Verify the info.

# mount /dev/cdrom /media/cdrom
# ls /media/cdrom
# ls /mnt/cdrom

You can also verify info with USB dirve as well.

# mount /dev/dsc1 /mnt/flashdisk
# ls /media/flashdisk
# ls /mnt/flashdisk

 
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/sect-Using_the_mount_Command-Mounting-Bind.html 

Thursday, June 14, 2012

How to Configure ACL on a directory?

$ /sbin/ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:56:be:00:41 brd ff:ff:ff:ff:ff:ff
    inet 165.135.239.38/24 brd 165.135.239.255 scope global eth0
    inet6 fe80::250:56ff:febe:41/64 scope link
       valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
[bhusal@valentine ~]$

------------------------------------------------------------------

Configure the ACL of a directory.

1. as a root

[root@valentine ~]# cd /tmp
[root@valentine tmp]# mkdir acl_test
[root@valentine tmp]# chmod 700 acl_test
[root@valentine tmp]#

2. as a normal user

[bhusal@valentine ~]$ cd /tmp/acl_test/
-bash: cd: /tmp/acl_test/: Permission denied
[bhusal@valentine ~]$

3. as a root,

[root@valentine tmp]# getfacl acl_test
# file: acl_test
# owner: root
# group: root
user::rwx
group::---
other::---

[root@valentine tmp]#

4. as a root user,

add an extended ACL using the following command as a root.

[root@valentine tmp]# setfacl -m u:bhusal:rwx acl_test/

now, display the extended ACL of the directory,

[root@valentine tmp]# getfacl acl_test
# file: acl_test
# owner: root
# group: root
user::rwx
user:bhusal:rwx
group::---
mask::rwx
other::---

[root@valentine tmp]#


5. now, try as a normal user,

[bhusal@valentine ~]$  cd /tmp/acl_test/
[bhusal@valentine acl_test]$


------------------------------------------

Configure default ACL for a directory


6. as a root,

[root@valentine acl_test]# touch without_default_acl
[root@valentine acl_test]# getfacl without_default_acl
# file: without_default_acl
# owner: root
# group: root
user::rw-
group::---
other::---

[root@valentine acl_test]#

you see, no default ACL of the parent directory was assigned to the file..

now, set the default ACL for the acl_test directory.

[root@valentine acl_test]# touch with_default_acl
[root@valentine acl_test]# getfacl with_default_acl
# file: with_default_acl
# owner: root
# group: root
user::rw-
user:bhusal:rw-
group::---
mask::rw-
other::---

[root@valentine acl_test]# ls -l
total 8
-rw-rw----+ 1 root root 0 Jun 14 15:09 with_default_acl
-rw-------  1 root root 0 Jun 14 15:07 without_default_acl
[root@valentine acl_test]#


7. Delete an ACL

[root@valentine acl_test]# setfacl -x u:bhusal with_default_acl

Display the acl,

[root@valentine acl_test]# getfacl with_default_acl
# file: with_default_acl
# owner: root
# group: root
user::rw-
group::---
mask::---
other::---

[root@valentine acl_test]#


8. now, you see the ACL for the user bhusal has been removed...

View the file attributes,
[root@valentine acl_test]# ls -l
total 8
-rw-------+ 1 root root 0 Jun 14 15:09 with_default_acl
-rw-------  1 root root 0 Jun 14 15:07 without_default_acl
[root@valentine acl_test]#

9. here, you see the extended attribute "+" still on the output.
To remove all the ACLs

[root@valentine acl_test]# setfacl -b with_default_acl
[root@valentine acl_test]# ls -l
total 8
-rw------- 1 root root 0 Jun 14 15:09 with_default_acl
-rw------- 1 root root 0 Jun 14 15:07 without_default_acl
[root@valentine acl_test]#

[root@valentine acl_test]# getfacl with_default_acl
# file: with_default_acl
# owner: root
# group: root
user::rw-
group::---
other::---

[root@valentine acl_test]#

Now, you see ACL has been removed.