#linux #shell #permissions
#linux #оболочка #разрешения
Вопрос:
Я хотел бы отредактировать файл с помощью сценария оболочки, который находится в той же группе, но не с пользователем «вызывающего».
-rwsr-xr-x 1 root root 4896 Oct 21 00:59 /usr/bin/luxus
-rw-rw-r-- 1 root root 4096 Oct 20 23:01 <path>/file1
lrwxrwxrwx 1 root root 0 Oct 20 23:00 <path>/dir1
- /usr/bin/luxus: сценарий оболочки
- file1: файл для редактирования
- dir1: родительский каталог file1 (символическая ссылка)
В сценарии оболочки это строка, в которой возникает проблема с разрешением:
echo "string" > /usr/bin/tee <path>/file1
Вывод:
/usr/bin/tee: <path>/file1: Permission denied
Я пытаюсь создать пакет AUR для сценария оболочки. Последний предназначен для установки в систему из PKGBUILD. Напрасно я пытался предоставить скрипту достаточно разрешений для редактирования целевого файла.
Это пример PKGBUILD:
install -Dm755 src/${pkgname} "${pkgdir}/usr/bin/${pkgname}"
chown root.root "${pkgdir}/usr/bin/${pkgname}"
chmod 4755 "${pkgdir}/usr/bin/${pkgname}"
После расследования я думаю, что это просто невозможно из-за безопасности или из-за прав родительского каталога.
Тем не менее, я прошу у вас решения.
Комментарии:
1. В состоянии ли вы изменить права доступа к файлу?
2. Нет. Но в любом случае, продолжайте. Как вы думаете, где блокируются разрешения?
3. Можете ли вы запустить скрипт с помощью sudo?
4. Я только что обновил свой пост, если это может помочь. Я бы хотел избежать использования sudo.
5. Хорошо, исходя из вашего нового сообщения, все принадлежит root, поэтому, если вы не являетесь root или не можете запускать с помощью sudo, вы ничего не сможете сделать.
Ответ №1:
Как вы сказали, «вы ничего не можете сделать». Следующий пост довольно просто объясняет, почему это не сработает: https://unix.stackexchange.com/questions/364/allow-setuid-on-shell-scripts