Bash script to create user directories with group permissions fr
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).From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill bash-script-to-create-user-directories-with-group-permissions-frAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.0 KB, 518 tokens by cl100k_base, as published. Nobody here has run it
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
- Input Configuration: The script must parse a JSON string variable (e.g.,
json='{"user_info": [{"username": "groupname"}]}'). Usejqto extract username and group pairs. - 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/usernameanddev_user/dags/username.
- Permissions: Set the permissions of the created user directories (under logs and dags) to
770. - Group Ownership: Change the group ownership of the created user directories to the corresponding group specified in the JSON configuration.
- Execution Context (Root vs. Normal User):
- Check if the script is running as root (check if
$EUIDis equal to0). - If running as root: Execute the
chgrpcommand to change group ownership. - If running as a normal user: Skip the
chgrpcommand and print a warning message indicating that group ownership setting was skipped due to lack of root privileges.
- Check if the script is running as root (check if
- Dependencies: Assume
jqis 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.