Необходимо разрешить пользователю копировать файлы в определенном каталоге с помощью sudo. Это помогает:
user1 ALL= NOPASSWD: /bin/chown -[RPfchv] user2\:user2 /opt/some/path/[a-zA-Z0-9]*
Но это не мешает пользователю быть подлым и делать что-то вроде:
[user1 @ rhel ~] sudo / bin / chown -v user2: user2 /opt/some/path/../../../etc/shadow
Как от этого уберечься?
Машина работает под управлением Linux (Red Hat)
sudo создает неотъемлемые риски безопасности, и, как правило, не рекомендуется предоставлять его пользователям, у которых нет высокого уровня доверия.
Почему бы не ограничиться простым рекурсивным chown для родительского каталога?
sudoers в основном использует подстановку. Согласно man-странице, он не соответствует / по подстановочным знакам. Подробнее на странице руководства.
Что касается более продвинутого решения, то сценарий должен помочь.
[root@server wmoore]# egrep '^wmoore' /etc/sudoers
wmoore ALL= NOPASSWD: /bin/chown -[RPfchv] wmoore\:wmoore /home/wmoore/[a-zA-Z0-9]*
[wmoore@server ~]$ sudo -l
User wmoore may run the following commands on this host:
(root) NOPASSWD: /bin/chown -[RPfchv] wmoore:wmoore /home/wmoore/[a-zA-Z0-9]*
[wmoore@server ~]$ sudo chown -R wmoore:wmoore /home/wmoore/../../tmp/test
Sorry, user wmoore is not allowed to execute '/bin/chown -R wmoore:wmoore /home/wmoore/../../tmp/test' as root on server.
О верно. пакет sudo:
Name : sudo Relocations: (not relocatable)
Version : 1.6.9p17 Vendor: CentOS
Release : 3.el5_3.1 Build Date: Tue 24 Mar 2009 07:55:42 PM EDT
CentOS5.
Попробуйте создать сценарий замены chroot, который проверяет ввод перед выполнением функции chown (). Затем добавьте этот сценарий вместо / bin / chown в файл sudoers. Затем вы можете настроить псевдоним chown для пользователей, если это необходимо.
С другой стороны, уверены ли вы, что вашим пользователям нужно выполнять chown с правами root? Может быть, биты sgid или suid в каталогах решат вашу проблему?