LINUX.ORG.RU

Доступ к файлу через sudo, владелец root

 , ,


0

2

Есть такой файл, это лог файрвола ufw:

ls -l /var/log/ufw.log
-rw-r----- 1 root adm 1540900397 ноя  9 01:44 /var/log/ufw.log
Почему нельзя редактировать его через sudo, а приходиться специально входить через su?
sudo > /var/log/ufw.log
bash: /var/log/ufw.log: Отказано в доступе


sudo cat filename?

< и > это перенаправления вхлопов-выхлопов команд в/на из/в файлы. У Вас получилась команда, равная имени файлу. Он, полагаю, даже не имеет разрешения на собственное исполнение, установленного командой chmod.

Northsoft ★★
()
Ответ на: sudo cat filename? от Northsoft

Задача - периодически очищать файл, т.к. он становиться слишком большого размера.

Пусть будет

echo > /var/log/ufw.log
После логина как root через su такая команда работает.

carabo
() автор топика
Ответ на: комментарий от carabo

p.s. перенаправление в оригинальном случае происходило от имени пользователя, а не root

qbe
()
Ответ на: комментарий от qbe

Это не работает в скрипте:

DIR="$1"
if [ "$(stat -c "%U" "${DIR}/$(ls "$DIR" -Sh | less | head -n 1 | grep -v "итого")")" = "$USER" ]; then
	cat /dev/null > "${DIR}/$(ls "$DIR" -Sh | less | head -n 1 | grep -v "итого")"
else
	echo | sudo tee "${DIR}/$(ls "$DIR" -Sh | less | head -n 1 | grep -v "итого")"}
fi
Скрипт очищает файл наибольшего размера в указанном каталоге.

carabo
() автор топика
Ответ на: комментарий от carabo

Это не работает в скрипте

Вставлять sudo в середину скрипта — дурной тон.
Либо делайте sudo tee без пароля, либо весь скрипт запускайте через sudo.

ArcFi
()
Ответ на: комментарий от carabo

Ну да, повторное использование результатов для слабаков, и следить за парностью скобок и кавычек не нужно, коллективный разум найдёт ошибки

qbe
()
Ответ на: комментарий от ArcFi

Вставлять sudo в середину скрипта — дурной тон. Либо делайте sudo tee без пароля, либо весь скрипт запускайте через sudo.

В данном случае я предпочитаю сделать так, как есть.

carabo
() автор топика
Ответ на: комментарий от Balantay

Спасибо, это работает. Уже нашел ранее это решение в гугле, только не доходит до меня, почему так...

carabo
() автор топика
Ответ на: комментарий от carabo

Меньше вероятность ошибок, если причесать сразу. Да и нет более постоянных решений, чем временные

qbe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.