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