У меня есть папка, которая обычно находится в / root и обычно используется пользователем root. Мне нужно разрешить другому пользователю (кроме root) использовать его сейчас, но он должен оставаться в / root. Это возможно?
РЕДАКТИРОВАТЬ: Спасибо всем за комментарии и помощь. Мы понимаем, что это означает безопасность, и полностью понимаем, о чем мы просим. Итак, если отбросить все проблемы с безопасностью, как это сделать? Спасибо.
Прежде всего, вы делаете это неправильно ™. Есть что-то в корне неправильное в том, как вы пытаетесь это сделать. Ваше программное обеспечение будет лучше, если вы попытаетесь понять нормальную модель безопасности и разрешений unix и работать с ней, а не бороться / ломать ее.
Единственный способ, который я могу придумать, чтобы сделать то, что вы хотите, не взорвав тысячу дыр в разрешениях файловой системы, - это установить соответствующую папку с разрешениями для группы и группы, а затем смонтировать ее в другом месте с помощью привязки-монтирования, чтобы что к нему можно получить доступ по доступному пользователю пути, а не внутри / root. Данные могут оставаться там, но пользователи без полномочий root не должны иметь возможность сунуть туда свою голову, поэтому им нужен дескриптор в другом месте файловой системы. Вы не можете использовать символическую ссылку на него, потому что это просто направит вас обратно через / root, но предварительная установка привязки с правами root должна предоставить альтернативный путь, по которому он может быть достигнут как пользователь без полномочий root.
Редактировать: В случае, поясненном в комментариях, о наличии приложения с жестко заданным путем, ничего из того, что я или Alkdae предложение действительно будет работать. Как временный обойтись, я предлагаю убедиться, что в корневом каталоге есть что-нибудь чувствительное, например /root/.ssh
принадлежит как root:root
и отмечен как 0600
или другие подобные ограничительные разрешения. Затем переместите что-нибудь в /root
это не обязательно должно быть в подпапке, такой как /root/root_files
и убедитесь, что это root:root 0600
слишком. Как только вы убедитесь, что там нет ничего, что можно было бы увидеть или использовать, установите право собственности на группу. /root
в какую-то специальную группу, такую как temproot, и установите ее для просмотра этой группой (но НЕ миром или группой обычных пользователей!). Затем добавьте своих специальных пользователей в эту группу и установите файлы в /root
используется этим java-приложением как принадлежащее root:temproot
с соответствующими разрешениями на запись / выполнение группы.
Как только вы сможете исправить проблемное java-приложение, верните все в корень обратно в root:root
.
Вы можете переместить папку за пределы / root и создать на нее ссылку. Таким образом, он останется в вашей папке, и вы сможете установить разрешения для доступа к нему других.
Позволить другим видеть внутри / root просто неправильно.