Solving the USB Storage Permission Issue & Cross System Compatibility Problem

The GNU/Linux Solution (ext4)

Pros:

1. Filesystem supports files over 4GB in size
2. Filesystem supports partitions over 2TB in size
3. Works out of the box on GNU/Linux
4. No driver packages to install due to patent restrictions

Negatives:

1. Requires the installation of Ext2 File System Driver on Microsoft Windows
2. This will compromise security controls (but is what you want for ease of use)
3. It's not well supported by devices like printers, cameras, etc

Using Access Control Lists(ACL) any user on just about any GNU/Linux system system will be able to read and write data to your removable media. Access control list (ACL) provides an additional, more flexible permission mechanism for file systems.

Commands to run:

# format the drive
sudo mkfs.ext4 /dev/sdX1

# enable acl on the drive
sudo tune2fs -o acl /dev/sdX1

# mount the drive and set yourself as owner
sudo mount /dev/sdX1 /mnt
sudo chown username: /mnt

# make readable, writable and executable by everyone
chmod 777 /mnt
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt

# unmount the drive
sudo umount /mnt

The Maximum Compatibility Solution: GNU/Linux & Other Operating Systems (fat32)

Pros:

1. Works out of the box on near all modern operating systems
2. No driver packages to install due to patent restrictions

Negatives:

1. Filesystem does not support files over 4GB in size
2. Major operating system support limits partitions to 2TB in size
3. No security controls (but is probably what you want)

This is by far the best supported solution, but may not be desirable for users with drives over 2TB in size or needing to write files larger than 4GB in size.

# Use your package manager (example: Software Center) or appropriate distribution command to install gparted
apt-get install gparted

# Open gparted
gparted

# Select your drive from the drop down menu on the right

# Go to Device > Create Partition Table

# Select a partition table type (msdos or gpt) and click apply

# Go to Partition > New

# Select fat32 under File system, enter a partition name, and label (or whichever fields are available) and click Add

# Click Apply

# When pending operations are completed click Close and exit out of the application

Decent Compatibility Solution for Larger Drives: GNU/Linux & Other Operating Systems (ntfs)

Pros:

1. Works out of the box on near all major modern desktop operating systems
2. No driver packages to install due to patent restrictions
3. Supports files over 4GB
4. Supports drives up 256TB
5. No permission issues

Negatives:

1. Read only support on some operating systems (GNU/Linux has support for read & write)
2. Relies on a reverse engineered driver that may introduce a slight risk to data
3. Not supported on many devices such as digital cameras, printers, etc

This is a decent solution for users who need to format a large drive over 2TB in size and maintain compatibility with Microsoft Windows.

# Use your package manager (example: Software Center) or appropriate distribution command to install gparted
apt-get install gparted

# Open gparted
gparted

# Select your drive from the drop down menu on the right

# Go to Device > Create Partition Table

# Select a partition table type (gpt) and click apply

# Go to Partition > New

# Select ntfs under File system, enter a partition name, and label (or whichever fields are available) and click Add

# Click Apply

# When pending operations are completed click Close and exit out of the application