Перейти к содержимому

Смена владельца в собственном каталоге

0

У меня есть скрипт, работающий с пользователем user1:user1, который выполняет операции внутри каталога dir. В конце скрипта я хотел бы использовать chown, чтобы изменить владельца скрипта наuser2:user2

Но это не работает. Я попробовал ту же операцию, вошел как user1:

$ ls -l drwxr-xr-x 5 user1 user1 4096 Jan 11 10:58 dir $ chown -R user2:user2 dir chown: changing ownership of dir: Operation not permitted 

Почему я не могу сменить владельца своих собственных файлов / реперториев? Есть ли другой способ, кроме как использовать рут-доступ для этого?

ОБНОВИТЬ

Сценарий создает git-клон, а затем rsync с каталогом Apache. Новые файлы имеют владельца для текущего пользователя, но вместо этого мне нужен Apache.

592 просмотра
ôkio спросил 10 лет назад
Ô 101

1 ответ

2

The chown command is only available for root, for security reasons, so if you want to do that, you'll have to do it as root.

There are 2 things that come to my mind that you can do:

  • Use the SETUID bit. This way, you're allowing users to run the script as root (though it also has security concerns, depending on what your script does). More on this here.

  • You might also create a task-based queue (for example, using redis). The script would insert a value on the queue when run, and a script run as root would read that queue and make any needed changes (in your case, use chown on that file).

Спасибо за Ваш ответ. Я обновил свой пост с подробностями сценария. Я пытался сделать chmod u + s script, но это ничего не меняет. Это правильный способ его использования?

ôkio · 10 лет назад · 0

Вы запускаете скрипт как root? Если нет, то поэтому он ничего не делает

Ramhound · 10 лет назад · 0

Вам нужно поменять владельца на root. При запуске без полномочий root он будет работать как root вместо пользователя, который вызвал скрипт.

nKn · 10 лет назад · 0
nKn ответил 10 лет назад
N 4 475