Моего юзера зовут «sem». Он состоит в группах «users:testgroup».
Т.к. у меня гигобайты полезных файлов в папке $HOME, то для запуска сомнительного кода (программ, скриптов, игр) создал у себя отдельного юзера «testuser».
Оба юзера входят в группу «testgroup».
Теперь возникла проблема как переносить файла от юзера testuser в sem и обратно.
Тогда я создал промежуточную папку «/home/test_user_and_sem».
Назначил владельца и группу :
chown sem:testgroup /home/test_user_and_sem
Назначил права доступа для юзера и группы :
chmod u+rwx,r+rwx sem:testgroup /home/test_user_and_sem
Захожу в юзера testgroup (su testgroup). Переношу (командой move) файлы из /home/testuser в /home/test_user_and_sem.
Дальше я назначаю права для группы
chmod -R g+w /home/test_user_and_sem
Но владельцем файла остаётся юзер «testuser». И если перенести дальше юзером «sem» в папку /home/sem то невозможно менять Execute bit для скриптов программ.
Пробовал использовать acl. Включил acl в опциях монтирования /etc/fstab.
su root
setfacl -m default:user:sem:rwx /home/test_user_and_sem
setfacl -m default:group:testgroup:rwx /home/test_user_and_sem
Но в результате пользователь не меняется для перенесённых файлов, а только для созданных файлов, папок в этой папке.
В результате есть файл /home/test_user_and_sem/file_from_test_user.txt с testuser:testgroup и с битами -rwxrw-r--.
Проблема в том что файлов и папок много и вручную менять биты трудно, долго.
Перенос с архивированием в testuser и потом распаковкой в sem очень неудобен. Т.к некоторые файлы это очень большие файлы и долго это.
Как изменить владельца файла без вызова консоли рута ?