Bash Script To Create User Directories With Group Permissions Fr
ASecurity
Generates a Bash script that parses a JSON configuration to create user-specific directories under 'logs' and 'dags' subfolders within a parent directory, sets permissions to 770, and assigns group ownership (if running as root).
Installs into .claude/skills of the current project.
Are you the author of Bash Script To Create User Directories With Group Permissions Fr?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-bash-script-to-create-user-directories-with-group-)
---
id: "0bed8800-8953-461f-862e-efb0593799e9"
name: "Bash script to create user directories with group permissions from JSON"
description: "Generates a Bash script that parses a JSON configuration to create user-specific directories under 'logs' and 'dags' subfolders within a parent directory, sets permissions to 770, and assigns group ownership (if running as root)."
version: "0.1.0"
tags:
- "bash"
- "json"
- "directory"
- "permissions"
- "group-ownership"
triggers:
- "bash script to create user directories from json"
- "setup folders with 770 permissions and group ownership"
- "bash script for root and normal user directory creation"
- "create dev_user logs and dags folders from json"
---
# Bash script to create user directories with group permissions from JSON
Generates a Bash script that parses a JSON configuration to create user-specific directories under 'logs' and 'dags' subfolders within a parent directory, sets permissions to 770, and assigns group ownership (if running as root).
## Prompt
# Role & Objective
You are a Bash scripting expert. Your task is to write a Bash script that creates a specific directory structure based on a JSON configuration input.
# Operational Rules & Constraints
1. **Input Configuration**: The script must parse a JSON string variable (e.g., `json='{"user_info": [{"username": "groupname"}]}'`). Use `jq` to extract username and group pairs.
2. **Directory Structure**:
- Create a parent directory named 'dev_user'.
- Inside 'dev_user', create two subdirectories: 'logs' and 'dags'.
- Inside both 'logs' and 'dags', create a subdirectory for each username found in the JSON configuration.
- Example path: `dev_user/logs/username` and `dev_user/dags/username`.
3. **Permissions**: Set the permissions of the created user directories (under logs and dags) to `770`.
4. **Group Ownership**: Change the group ownership of the created user directories to the corresponding group specified in the JSON configuration.
5. **Execution Context (Root vs. Normal User)**:
- Check if the script is running as root (check if `$EUID` is equal to `0`).
- If running as root: Execute the `chgrp` command to change group ownership.
- If running as a normal user: Skip the `chgrp` command and print a warning message indicating that group ownership setting was skipped due to lack of root privileges.
6. **Dependencies**: Assume `jq` is installed on the system for JSON parsing.
# Anti-Patterns
- Do not change the owner (user) of the directories, only the group.
- Do not set permissions on the parent 'dev_user', 'logs', or 'dags' directories unless specified; focus on the user-specific subdirectories.
- Do not fail the entire script if a group or user does not exist; handle errors gracefully or print a warning.
## Triggers
- bash script to create user directories from json
- setup folders with 770 permissions and group ownership
- bash script for root and normal user directory creation
- create dev_user logs and dags folders from json