rwx
🦀 An interactive Unix file permissions and ownership TUI manager built in Rust with Ratatui and crossterm.
An interactive terminal tool for browsing files and changing their Unix permissions and ownership with checkboxes instead of memorizing chmod commands.
rwx is a terminal application for managing file permissions and ownership on Unix-like systems such as macOS and Linux. Instead of typing chmod or chown commands from memory and hoping you got the numbers right, rwx gives you an interactive screen where you can browse your files and folders, see their current permissions, and change them by checking boxes or typing an octal number like 0755 directly.
You can toggle read, write, and execute permissions separately for the file's owner, its group, and everyone else, and the tool also supports the less common special permission bits like SetUID, SetGID, and the sticky bit. As you make changes, a live preview shows you the resulting permission string, such as drwxr-xr-x, before you apply anything. You can also change the file's owner and group names directly, and the tool checks that those users or groups actually exist before letting you proceed. A recursive mode lets you apply the same changes to every file and folder nested inside a selected directory.
The interface is split into a file browser for picking what to edit and an editor screen for making the actual changes, both controlled with arrow keys or vim-style h, j, k, l navigation. If the program crashes unexpectedly, it is built to restore your terminal to its normal state rather than leaving it broken.
Installation options include Homebrew, a shell script that downloads a ready-to-run binary, or installing it through Rust's own package manager, Cargo, either from crates.io or by building it from source. The project is released under the MIT license.
Where it fits
- Change file permissions visually instead of typing chmod commands from memory
- Recursively apply the same permissions and ownership to an entire folder
- Inspect and set special permission bits like SetUID, SetGID, or the sticky bit
- Change a file's owner and group with built-in validation that they exist