An interactive Unix file permissions and ownership TUI manager built in Rust with Ratatui and crossterm.
rwx simplifies inspect/audit operations on files and folders, enabling developers and administrators to quickly visualize permissions, toggle individual bits interactively, change owners/groups, and safely apply changes recursively.
- Interactive File Browser: Navigate directories, inspect file sizes, and select files or directories directly within the interface.
- Dual Permission Editors:
- Permissions Grid (Checkboxes): Easily toggle Read (
r), Write (w), and Execute (x) rights across Owner (u), Group (g), and Others (o). - Direct Octal Input: Type octal numbers directly (e.g.,
0755,4755,1777) with real-time validation.
- Permissions Grid (Checkboxes): Easily toggle Read (
- Special Bits Support: Inspect and configure SetUID, SetGID, and Sticky bits.
- Ownership Management: Modify target owner and group names (using
chownandchgrpunder the hood) with live user/group existence validation. - Recursive Mode: Toggle recursive changes to automatically apply the permissions and ownership to all files and directories nested under the target.
- Real-Time Previews: Instantly view the symbolic permission representation (e.g.,
drwxr-xr-xor-rwsr-xr-x) as you edit. - Panic Resilience: Registers custom panic hooks to automatically restore your terminal state (raw mode, screen buffering) in case of unexpected errors.
You can install rwx using Homebrew via our custom tap:
brew install vncsmnl/tap/rwxInstall the pre-compiled binary via a shell script:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/vncsmnl/rwx/releases/latest/download/rwx-installer.sh | shSince rwx is published on crates.io, you can install it using Cargo:
cargo install rwxIf you have cargo-binstall installed, you can quickly download and install pre-compiled binaries directly:
cargo binstall rwxIf you want to compile rwx yourself:
- Rust and Cargo (2024 Edition) installed on your system.
- A Unix-like operating system (macOS, Linux, BSD) because the tool relies on Unix-specific features.
git clone https://github.com/vncsmnl/rwx.git
cd rwx
cargo build --release
sudo cp target/release/rwx /usr/local/bin/Start rwx in the current directory:
rwxOr open a specific file or directory directly in the Editor mode:
rwx /path/to/file_or_directoryrwx [FLAGS] [PATH]
Arguments:
[PATH] Path to the file or directory to inspect/edit
Flags:
-R, --recursive Apply changes recursively (when target is a directory)
-h, --help Print help information
-V, --version Print version informationUse Browser Mode to navigate the file system and choose a file/directory to edit.
| Key | Action |
|---|---|
β / k |
Move selection up |
β / j |
Move selection down |
Enter |
Enter a directory, or open a file/directory in the Editor |
S |
Open the current directory itself in the Editor |
Esc / q |
Quit the application |
In Editor Mode, you modify permissions, ownership, and options.
| Key | Action |
|---|---|
β, β, β, β / h, j, k, l |
Move focus around the interface (grid, inputs, buttons) |
Tab / Shift+Tab |
Cycle focus forward / backward |
Space / Enter |
Toggle the selected checkbox, or activate the focused button |
0-7 (while on Octal input) |
Edit the octal permission value directly |
Backspace (while on Owner/Group input) |
Delete characters |
Esc |
Cancel input field editing, or quit if not editing |
B / Backspace (outside inputs) |
Go back to the File Browser |
A |
Apply pending changes |
Q |
Quit the application |
src/main.rs: Application entry point, CLI arguments parsing, and terminal setup/event loop.src/app.rs: Core application state management, file system queries, validation logic, and directory walking.src/permissions.rs: Permission data structures, converters between octal, mode, and symbolic formats, and unit tests.src/ui.rs: TUI drawing definitions using Ratatui layout blocks, tables, lists, text styled elements, and message modals.
This project is licensed under the MIT License. See the LICENSE file for details.

