Файли, створені за допомогою root acound, мають такі дозволи:
-rw-r--r-- 1 root root 0 11月 17 23:25 rootfile.txt
Тут файл належить користувачу root та кореневій групі, він читається та записується коренем, але читається лише іншими.
Найпростішим підходом буде лише chownповернення файлу до початкового користувача.
chown username:group_name dummy.txt
Ви можете використовувати $SUDO_USERзмінну, доступну лише тоді, коли sudoвикликається, наприклад:
chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Якщо ви запускаєте скрипт як звичайний користувач, chownчастина взагалі не потрібна, тому ви, можливо, захочете скористатися if-оператором або &&тестом для перевірки на випадок, коли сценарій запускається як root, і зробити щось у цьому рядку:
#!/bin/bash
touch dummy.txt
[ $UID -eq 0 ] && chown "$SUDO_USER":"$SUDO_USER" dummy.txt
Сказане вище - рекомендований підхід. Є й інші, як-от використання chmodдля зміни дозволів для читання-запису-виконання для користувачів та груп, але це не рекомендується.
chownтаchmodу своєму скрипті, щоб встановити право власності та дозволи за бажанням.