Файли, створені за допомогою 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
у своєму скрипті, щоб встановити право власності та дозволи за бажанням.