Linux Common Folder Custodian


Keywords
fcust
License
GPL-3.0
Install
pip install fcust==1.0.0

Documentation

Folder Custodian

Documentation Status Updates

Linux Common Folder Custodian

  • Free software: GNU General Public License v3
  • Documentation: Read the Docs

Why?

The family computer runs Fedora, has many users and we want to share some files with each other. To achive this we create a shared common folder. This package solves the problems that come with our use case.

Features

This package is intended to perform maintenance over a folder shared across many users in a Fedora Workstation. The folder should belong to a group for which all users are members.

  • Go through a folder's content and enforce common group ownership.
  • Go through a folder's content and enforce common group read and write permissions as well as set groupid sticky bit.
  • Provide a command line command with sane defaults for enforcing common folder group ownership and permissions.
  • Write logs to /tmp/fcust/$USER.log.
  • Provides user systemd service to periodically enforce common folder group ownership and permissions. Runs on user log out.

The key problem this package intends to solve is that files moved from one location to another do not inherit proper permissions in the commonly used folder and therefore when another user tries to access them they encounter problems.

Quick Start Guide

  • Install fcust:

    $ sudo dnf copr enable iolaum/fcust
    $ sudo dnf install fcust
    
  • Manually create a common group and add as members the users that will have access to it. For example:

    $ sudo groupadd family
    $ sudo usermod -a -G family user1
    $ sudo usermod -a -G family user1
    
  • Create that folder and assign proper permissions:

    $ mkdir /path/to/common/folder/
    $ chown :family /path/to/common/folder/
    $ chmod 2775 /path/to/common/folder/
    
  • Setup fcust:

    $ fcust setup /path/to/common/folder/
    $ fcust activate
    
  • In order to run fcust manually on a properly permissioned common folder run:

    $ fcust run /path/to/common/folder/