Да, вы можете дать своему пользователю право запускать sudo du / var
без пароля, я покажу вам, как это сделать позже. Однако вы действительно этого хотите? Есть очень мало файлов и подкаталогов, к которым du
требуется root-доступ. Разница в размере, о котором сообщается, между sudo du / var
и du / var
крошечная (по крайней мере, в моей системе):
$ sudo du -s /var/
1830596 /var/
$ du -s /var/
1826040 /var/
Они оба разрешают одно и то же количество гигабайт:
$ sudo du -hs /var
1.8G /var
$ du -hs /var
1.8G /var
Так действительно ли такая небольшая разница того стоит? Мне кажется, что гораздо более простым решением было бы просто игнорировать сообщения об ошибках, отправив их на / dev / null
:
/var $alignr${exec du -sh /var 2>/dev/null | awk '{print $1}'}
Обратите внимание, что я удалил головку
, поскольку это было необходимо только потому, что вы использовали опцию -c
для вывода итоговой суммы.
Так как du
довольно тяжелый, и я сомневаюсь, что вам действительно нужен этот запуск каждые несколько секунд, вы также можете указать conky
запускать команду только один раз в минуту:
/var $alignr${execi 60 du -sh /var 2>/dev/null | awk '{print $1}'}
Если вы чувствуете, что вам действительно нужен точный размер / var
, запустите sudo visudo
и добавьте эту строку:
schmiddl ALL=NOPASSWD:/usr/bin/du -ch /var
После сохранения файла пользователь schmiddl
получит право запускать sudo du -ch / var
без пароля, поэтому вы можете добавить его в свой .conokyrc
:
/var $alignr${execi 60 sudo du -sh /var | awk '{print $1}'}
Похоже, это ошибка, некоторая зависимость в этом скрипте от NetworkManager или около того. Если у вас есть общий скрипт в /usr/lib/ или около того... укажите на него с помощью переключателя -sf. тогда клиент работает как положено.