Novell Home

If you're as comfortable with NetWare services as you are in your favorite old jeans, we've got good news: the NetWare services you've grown to know and love are also available on Novell Open Enterprise Server for Linux. The arguably better news is that getting and keeping Open Enterprise Server for Linux up and running is easier than you might think and this series intends to prove it to you.

This is the sixth article in a nine-part series designed to help you bridge your NetWare skills to Open Enterprise Server for Linux. Like Novell's free training program upon which it is based, this series seeks to demystify the process of deploying and managing Open Enterprise Server for Linux. (See http://www.novell.com/products/openenterpriseserver/migrate.html.)

The first three articles in this series provide primarily background information, including a summary of the Linux history, a discussion of Linux fundamentals, and an introduction to Novell Open Enterprise Server. (If you haven't already, check these out: See Part 1, Part 2, Part 3)

Parts 4 and 5 in this series move beyond this necessary foundation and take the first big steps toward achieving the series' goal. Bridging the gap between your NetWare know-how and Linux naivete, Part 4 walks through commonly used NetWare tasks to highlight their functional equivalents on Open Enterprise Server for Linux. (See Part 4.) Further illustrating that NetWare knowledge serves you well in a Novell Linux environment, Part 5 discusses two familiar sewww.rver management tools for Open Enterprise Server for Linux: Novell Remote Manager for Linux and Novell iManager 2.5. (See Part 5.)

This article is the first of two articles designed to better your understanding of Linux file systems. Working toward this end, this article touches upon these four topics concerning the Linux file systems:

  • System choices
  • System structure
  • File facts
  • Commands and permissions

Gentlemen, Choose Your Systems
In the comfort of the NetWare zone, you have only two choices when it comes to file systems: Novell Storage Services (NSS) or the NetWare Traditional File System. Open Enterprise Server for Linux, on the other hand, offers considerably more choices. (See Figure 1.) In addition to NSS, the Open Enterprise Server for Linux kernel supports several traditional Linux file systems, including Reiser File System (ReiserFS), Second Extended File System (Ext2), Third Extended File System (Ext3), Journaled File System (JFS) and Extended File System (XFS).

Each of these file systems has unique strengths and weaknesses designed to meet different needs. For example, Ext2 and Ext3 are sturdy Linux file systems that fare well under small loads. However, Ext2 and Ext3 slow as they grow and, therefore, are limited in the amount of data and number of users and files they can efficiently support.

Unlike Ext2 and Ext3, XFS and JFS shine under large loads. XFS and JFS are advanced 64-bit systems that are adept at handling very large files and directories as large as 9,000 Petabytes (PB). Despite this impressive capability, XFS and JFS are not as feature rich as NSS.

FHS: What You'll Find and Where

The Linux file system layout is described in the File System Hierarchy Standard (FHS), which defines main directories and their contents. In addition to the directories explained in the text of this article, FHS directories include these:

/media Mountpoints for removable media
/mnt Mountpoint for temporarily mounted file systems
/srv Data directories for servers
/var Spool directories for mail, print; log and lock files
/usr Unix Special Resources, containing another layer of directories, including
/usr/X11R6 files of the X Window System
/usr/bin executable programs
/usr/lib libraries for programs in /usr/bin and /usr/sbin
/usr/sbin programs for system administration
/usr/src source files, for instance of the kernel
/dev Device files
/proc Virtual directory that provides information about the running system; not
located on the hard disk; kernel creates it upon system startup
/sys Virtual directory similar to /proc that contains hardware information

In fact, NSS offers more features than are available in any other Linux file system. Consequently, NSS, like XFS and JFS is ideal for enterprise systems that store a lot of data in large and numerous files and directories. Furthermore, NSS offers highly sophisticated and finely-grained access control mechanisms, which make it a wise choice for protecting data in environments with thousands of users. However, this level of sophistication might be overkill in smaller environments supported by only an Oracle database or Web application server. (For more information, see "In Good Company".)

How will you choose the file system that is ideal for your network situation? You know what to do: familiarize yourself with your options. Novell helps with this endeavor by providing an overview of each of the aforementioned systems in the "SUSE Linux Enterprise Server 9 Administration Guide for OES." (To view this guide, go to the http://www.novell.com/documentation/, find and click "SUSE Linux Enterprise Server 9" and from there, click to select the aforementioned guide. From this guide, click to select "File Systems in Linux" from the System chapter. For more detail, you might also try these links:

From the Root Stems All
The good news is that these many and varied file systems have a lot in common. That said, what these systems have in common is different than what you are used to seeing in NetWare.

For example, in NetWare, you are accustomed to dealing with the sys volume as well as other key directories, such as \login, \public, \system, and \etc. In Linux, all of the directories and files stem from a root directory, denoted by what Novell Advanced Trainer Frank Moore calls a "backwards" slash, by which he means the forward slash (/).

The Linux file system is like a large, upside-down tree, with root (/) at the top. Whether users are accessing directories stored on local drives, such as their CD-ROM drive, or accessing files by way of a sharing mechanism (such as Samba), they see only one file system structure. The user stores files in a directory without knowing (and without needing to know) where his or her files are physically being stored. Linux takes care of that.

Regardless of the file system you use, when you look under the root (/), you will spot several of the same, main directories, including /boot, /bin, /lib, and /home. The name and content of these main directories is defined in the File System Hierarchy Standard (FHS).

For example and as dictated by FHS, the /boot directory contains bootloader packages, such as GNU GRUB or LILO. In the /bin directory, you will find essential binaries for all users, and in the /sbin directory, system binaries that only the root or admin user typically uses. Libraries are in the /lib directory and configuration files in /etc.

OES Meets FHS

In addition to the read, write and execute permissions in Linux, you may apply these three permissions to files and directories:

Executables /opt/novell/bin /opt/novell/< prod >/bin
Shared Libraries /opt/novell/lib /opt/novell/< prod >/lib
Headers /opt/novell/include /opt/novell/< prod >/include
Man Pages /opt/novell/man /opt/novell/< prod >/man
Conf Files /etc/opt/novell /etc/opt/novell/< prod >/
Variable Data /var/opt/novell /var/opt/novell/< prod >/
/etc/init.d/ /etc/init.d/novell-< prod >  

The Linux file system also includes a /home directory that contains all user directories except the admin user's directory. (The admin user's directory is a separate directory called /root, which is in the main /root directory.) You also will find FHS directories for variable data (/var), temporary files (/tmp) and third-party applications (/opt). (For a list of still more FHS directories, see "FHS: What You'll Find and Where."

Open Enterprise Server for Linux complies with FHS 2.2. As a consequence, most Novell-specific files are stored in the /opt directory, which FHS defines as the directory for third-party applications. For example, Novell stores executables for Open Enterprise Server for Linux in /opt/Novell/bin. Executables for specific products are in subdirectories within this directory and are denoted by their product name, that is, /opt/Novell/product/bin. (For more information about where to find files on Open Enterprise Server for Linux, see "OES Meets FHS."

File Facts
Linux file systems support filenames that are as long as 255 characters but be careful: filenames in the Linux world are case sensitive. If you name a file "BAD News" and try to access it later by typing in "BAD news," it is not going to work for you. The point is this: be conscious of your case selection.

Now suppose you named a file "BAD $News." You might be surprised to learn that such a file name will work: Linux supports special characters in filenames. However, you might be wise to make a practice of avoiding certain characters except where they are explicitly required. For example, a leading period in a filename indicates a hidden file, and if you start a filename with a $, that $ might be mistaken for a variable.

A complete path name, including slashes, can be up to 4,096 characters long. Of course, if you make them that long, you have a lot of typing to do (and an impressive memory).

Linux file systems support several different file types. As you might expect, Linux has its fair share of the normal files you are accustomed to working with, including text, ASCII and executable files. However, Linux has these file types as well:

  • Directory files
  • Link files (both hard and soft, the latter also called symbolic links)
  • Device files (to which programs read and write)
  • Socket files (which are bidirectional communication paths between running programs or processes)
  • FIFO (first in, first out) files (which are unidirectional data paths between running programs)

Handy Commands for Handling Files
As you might guess, you have several commands at your disposal for handling files from the system command line. For example, to create a file or to update the access time on an existing file, you use the touch command.

To view a file, you use the cat command. If you need to see only a few lines, try the head or tail commands, which enable you to view a file's first or last few lines, respectively. (By default, a "few" lines amounts to ten lines.) If you want to scroll through the file, you might consider using the less command, which ironically does more than the more command. While more enables you to scroll down through a file, less enables you to scroll up and down and also to search the file for patterns.

You also can create links to files (using ln), copy files (using cp) and move or rename files (using mv). (For a more complete list of file system and other basic Linux commands, see the second article in this series: "Back to Basics," Novell Connection, Q1 2006)

Permission Granted

Novell is working to ensure that Open Enterprise Server for Linux complies with File System Hierarchical Standard (FHS) 2.2. To that end, Open Enterprise Server for Linux stores familiar files in new directories under the Linux /root:

Permission Files Directories
SUID File executes with permission of user owner No effect
SGID File executes with permission of group owner All files and subdirectories owned by group owner
Sticky Bit No effect All files and subdirectories can be deleted only by the owner or root

Getting and Setting Permissions
As you might guess, you have several commands at your disposal for handling files from the system command line. For example, to create a file or to update the access time on an existing file, you use the touch command.

Commands also exist for assigning permissions (also called modes) that help you control access to your files and directories. There are three basic types of permissions (see below). For information about three additional permissions, see "Permission Granted."

r (read)
w (write)
x (execute)

The effect of these permissions varies, depending upon whether you have applied them to a file or to a directory, as indicated below:

Files Directories
-r read the file -r list the content
-w write to the file -w create/delete files
-x execute the file -x change into the directory

You assign permissions to users (u), groups (c) or others (o) using the chmod command. Options for this command include (but certainly are not limited to) the following:

chmod g+w filename Add write permission to named file for the group
chmod o-r filename Remove read permission to named file for others
chmod a+r filename All (user, group, others) have only read permission, regardless of the permissions they had before

You also can substitute numbers in place of the r, w, and x chmod options, where r=4, w=2 and x=1. The order you list the numbers represents for whom these permissions are intended, that is, user, group or others in that order. Furthermore, you can add these numbers together to signify a combination of permissions. For example, suppose you want to assign read and write permissions for the user but only read permissions for the group and others. The command to do so would be chmod 644 file, where 6 (in the user position) is the sum of 4 (read) + 2 (write). Thus, chmod 755 file would assign read, write, and execute (4+2+1) permissions to the user and read and execute (4+1) to the group and others.

Moving Forward
The next article in this series will continue this introduction to the Linux file system by discussing these topics:

  • Linux disk partitions
  • NSS on Linux
  • File system access control
  • NetWare Core Protocol (NCP) server and file access
  • Native client file access EndOfArticleRedN


© 2014 Novell