С Солярисом многими вещами является то же, но достаточно отличающийся, что это болезненно. Намного легче пойти от Соляриса до Linux, чем наоборот.
Вещи, что Вы ожидаете работать, не делают, потому что версия Соляриса инструмента, например, не поддерживает классы символов, хотя/usr/xpg4/bin вариант мог бы.
Параметры командной строки на повседневных инструментах как PS отличаются или являются недостающими. Утилиты, которые Вы просто ожидаете иметь как вершина, не установлены по умолчанию.
Полномочия сценария не важны. Setuid и setgid биты проигнорированы на сценариях на Linux и большинстве других нельдов.
Можно настроить sudo, чтобы позволить Вам запускать этот скрипт, не указывая пароль, с NOPASSWD
тег. Удостоверьтесь это sudo
не требует, чтобы быть подключенным к терминалу: выключите requiretty
опция. Обратите внимание что NOPASSWD
- теговое правило должно появиться перед любым другим правилом, которое позволило бы Вам выполнить команду с подсказкой пароля, потому что первое соответствие применяется. Таким образом выполненный visudo
:
Defaults !requiretty
kjo ALL = NOPASSWD: /path/to/nc-logs-truncate
kjo ALL = (ALL) ALL
Измените первую строку сценария к #!/bin/zsh -f
, иначе zsh загрузится ~/.zshenv
который не желателен здесь.
Теперь, когда я ответил на Ваш литеральный вопрос, это - вероятно, не лучший метод. Простое chown kjo ~/.juniper_networks/network_connect/ncsvc.log
гарантировал бы, что файл журнала принадлежит Вам так, можно усечь его по желанию.
Лучше, переместите файл журнала вместо того, чтобы усечь его: часто полезно иметь в наличии недавние журналы (например, для сравнения рабочих журналов с нерабочими журналами, если nc перестал работать). Дайте себе разрешение записи на каталоге (Вы уже могли бы владеть им), и
mv -f ~/.juniper_networks/network_connect/ncsvc.log ~/.juniper_networks/network_connect/ncsvc.log.0
touch ~/.juniper_networks/network_connect/ncsvc.log
С другой стороны, сделайте больше unixy пакета NC, скажите ncsvc
записать его журналы в /var/log
, и включайте его журнал в logrotate
конфигурация.