<left> Contents->Objects

1. Objects
   - File
   - Executable
   - Directory
   - Link
   - FIFO Pipe
   - Block Device
   - Character Device
   - Socket
   - Unknown
   - Error
2. Properties
3. Permissions
4. Ownership

### Objects

Objects are entries on a filesystem, a filesystem is the format (not to be confused with file format) of how data is arranged on a physical or virtual storage device (such as a hard drive, floppy disk, CD, ZIP disk, swap partition, etc). For more information on filesystems and devices see Devices.

Different types of filesystems support different types of objects, the following is a list of object types (listed from most to least common):

### File

Used to store data for long periods of time.

Each file's data has a format, a format is a set of rules that interpret what the data means (such as text, document, image, sound, video, three-dimensional model, etc). The format is usually determined by the file's extension, the extension is the postfix of a file's name separated by a `.` character (such as `.txt`, `.png`, `.tar.gz`, etc).

Formats can be associated with MIME Types in order to determine additional specifications of that format (such as which program should be used to open it and what icon should be used to represent it).

Files are also known as regular objects.

To create a new file, select the directory that you want the new file to reside in and then go to File->New->File.

### Executable

This is basically a file who's permissions are set to allow it to be executed (aka opened or runned).

Executable objects are often programs or scripts, they can be executed/opened by double-clicking on the object or going to File->Open.

To set an object to be executable:

1. Select the object(s) and then go to Edit->Change Permissions...
2. Check the Owner, Group, or Other `X` (eXecutable) permission.
3. Click on Chmod.

You should only set objects to be executable when you know for certain that they are programs, libraries, plugins, or scripts.

See Permissions for more information.

### Directory

Used to organize objects, each directory can contain other objects (including other directories which would be called child directories or subdirectories).

Directories are also known as folders.

To create a new directory, select the directory that you want the new directory to reside in and then go to File->New->Directory.

### Link

Used to refer to another object (including other links). Each link has a value, this value often contains a relative path or an absolute path that specifies the location of its destination object.

Links that do not refer to an existing object are called dangling links and are indicated by a broken link icon.

Links do not have permissions.

Links that are displayed in orange indicate that it may be infinately recursive. Infinately recursive means that it may, at some point, refer back to itself.

Not all filesystems support this type of object.

To create a new link, select the directory that you want the new link to reside in and then go to File->New->Link.

To set the link's value, select the link, and then go to Edit->Properties->Link.

### FIFO Pipe

FIFO stands for First In First Out, they are used to buffer (temporary store) data. Typically, one program writes or sends data to a FIFO pipe and then another program reads or receives that data.

FIFO pipes are often created by other programs for use between programs as a communications medium.

Not all filesystems support this type of object.

To create a new FIFO pipe, select the directory that you want the new FIFO pipe to reside in and then go to File->New->FIFO Pipe.

### Block Device

Used to refer to a physical or virtual device by allowing programs to open them and then read or write data from/to them. Block devices are device nodes that allow programs to have buffered access to the device, whereas character devices have unbuffered serial data access to the device.

Each block device has a pair of device numbers that are used to identify the device. There is a major and a minor device number.

Most block devices are found in the `/dev` directory.

Block devices are also known as device special files.

Not all filesystems support this type of object.

To create a new block device, select the directory that you want the new block device to reside in, and then go to File->New->Block Device.

To set the block device's device numbers, select the block device and then go to Edit->Properties->Device Node.

### Character Device

Used to refer to a physical or virtual device by allowing programs to open them and then read or write data from/to them. Character devices are device nodes that allow programs to have unbuffered serial data access to the device.

Each character device has a pair of device numbers that are used to identify the device. There is a major and a minor device number.

Most character devices are found in the `/dev` directory.

Character devices are also known as device special files.

Not all filesystems support this type of object.

To create a new character device, select the directory that you want the new character device to reside in and then go to File->New->Character Device.

To set the character device's device numbers, select the character device, and then go to Edit->Properties->Device Node.

### Socket

Used to send and receive data between two programs or processes who open this object.

Sockets are often created by other programs for use between programs as a communications medium.

Not all filesystems support this type of object.

To create a new socket, select the directory that you want the new socket to reside in and then go to File->New->Socket.

### Unknown

This is an object who's type is unknown or undeterminable. It may indicate that this object is "damaged" on the media, that it contains errors (see Error object), or it may mean that this object is of a (possibly newer) type that is not (yet) recognized.

This object type was introduced in Endeavour Mark II version 2.6.x.

### Error

This is an object that has been reported by the system to contain errors or it may be a "damaged" object on a "damage' media.

There are many posibilities for encountering error objects, the most common include:

- The object was listed in the directory entries but subsequently moved, renamed, or deleted, and therefore, no longer exists. This sometimes occures when you open a new location and while the objects listing is being loaded, one of the objects was moved, renamed, or deleted by another program.
- The one or more of the object's properties is not supported (sometimes the result of the system call `stat()` not supporting 64-bit data).
- The media (for example, the disk) that the object resides on contains errors, in which case you should run FSCK to check the media that the object is on.

This object type was introduced in Endeavour Mark II version 2.6.x.

Back to the top

### Properties

Every object has a set of properties. Properties are values that describe the object's basic characteristics, such as name, size, last time modified, or physical location on the media.

Depending on the object's type, it may have any of the following properties (listed from most to least common):

- Name - Name of the object.
- Type - Type of object.
- Size - Size of the object's contents or data. For directories this value indicates its allocation size (not the size of its contents and not the entire size of the directory itself).
- Device - Device that this object is located on.
- INode - Index location on the device's media that this object is located on.
- IO Block Size - Optimul or recommended number of bytes at which this object should be read or written at a time based on the media that the object resides on.
- Device Type - The type of device that this object resides on.
- Hard Links - Number of hard links that refer to the object.
- Blocks Allocated - Number of blocks allocated to this object.
- Last Accessed Time - Last time that this object's data was read from or written to.
- Last Modified Time - Last time that this object's data was written to.
- Last Changed Time - Last time that this object's data was written to or its properties was modified.
- Permissions - Accessing rights to the object.
- Owner - User that the object belongs to. This is sometimes refered to as the object's UID.
- Group - Group that the object belongs to. This is sometimes refered to as the object's GID.

To view an object's properties, select the object and then go to Edit->Properties...->Details.

Back to the top

### Permissions

Permissions determine the access rights to an object, whether or not you may read (view), write (create or modify), search (see in a list), and execute an object.

Permissions are typically displayed as the string `rwxrwxrwx`, where the `rwx` triplets apply (respectively) to the owner, group, and other (see Ownership for more information).

- `r` - Allows reading of the object.
- `w` - Allows writing (modification) of the object. In the case of directories, it allows the creating of objects in that directory.
- `x` - Allows execution of the object. In the case of directories, it allows the listing of objects in that directory.
- `S` - Sets the uSer id level of the user who is accessing it to that of the object's owner. This permission is also known as setuid.
- `G` - Sets the Group id level of the user who is accessing it to that of the object's owner's group id. This permission is also known as setgid.
- `T` - STicky bit, allows anyone to read, write, or execute the object (but not delete it).

Some filesystems do not support all of the permissions listed above.

There are two ways to change the permissions of an object:

1. Select the object(s) and then go to Edit->Change Permissions...
2. Select the object and then go to Edit->Properties...->General

Back to the top

### Ownership

Ownership consists of an owner and a group. Each object is owned by an owner and jointly owned by a group. The owner of an object is determined by a user id (UID) value set on the object. The group ownership of an object is determined by a group id (GID) value set on the object.

If your UID level is equal to that of the object's UID then you own that object. In addition, if your UID is `0` (the root user) then you also own the object unconditionally. If you own the object then the first triplet of the permissions would apply to your level of access to that object.

If your GID level is equal to that of the object's GID then you have group ownership of that object. If you have group ownership of the object then the second triplet of the permissions would apply to your level of access to that object.

If you do not own the object then the last triplet of the permissions would apply to your level of access to that object.

Not all filesystems support ownership.

To change the UID or GID of an object, you would need to run Endeavour as the root user:

- `su`
- (enter the password for the root user)
- `/usr/bin/endeavour2 &`

Be careful when running Endeavour as the root user, since you have the ability to modify or remove any object on the system. If you make a mistake then your system may be rendered inoperable!

Once you are running Endeavour as the root user, there are two ways to change the object's UID and/or GID:

1. Select the object(s) and then go to Edit->Change Ownership...
2. Select the object and then go to Edit->Properties...->General

Back to the top

Endeavour Mark II is Copyright © 1997-2006 WolfPack Entertainment

</left>