Я так устал от различных файлов запуска для оболочек, что я делаю это:
~/.shrc
и помещенный вся моя конфигурация в него (включая установку подсказки)~/.profile
, ~/.bashrc
, ~/.bash_profile
и безотносительно регистрируют оболочку, мог бы читать, добавить эту строку . ~/.shrc
(отметьте точку),В Вашем случае я подозреваю, что Bash хочет ~/.profile
(произвольное предположение, потому что как указано выше я никогда не добирался, чтобы полностью понять те файлы запуска), таким образом добавление этого могло бы заставить его работать.
ping
является setuid, потому что он, хотя и достаточно "безопасен", но требует способности открывать сырые сокеты. Следовательно, ему нужна возможность CAP_NET_RAW
, или быть root.
nethogs
отличается по нескольким причинам: в частности, он не только требует привилегированного доступа к сетевому стеку, но и показывает информацию о других пользователях. На многопользовательской системе вы можете не хотеть, чтобы просто любой пользователь мог видеть, кто что использует.
Другая причина заключается в том, что nethogs
- довольно сложная программа. Программы, которые запускают setuid должны быть сверхнадежными: переполнение буфера, скажем, может привести к произвольному повышению привилегий. ping
достаточно осторожна, чтобы быть безопасной, и даже определяет, кто на самом деле выполняет ее, чтобы вести себя по-другому (ping -f
работает только если вы на самом деле являетесь root, например). Легче быть уверенным в этом в маленькой неинтерактивной программе, чем в большом инструменте типа nethogs
.
Требование к пользователю иметь доступ к root уже избегает таких проблем, или делегирует его в sudo
. Нет (не так много) заботы о повышении привилегий, когда вы уже имеете root. В общем, программы не делаются setuid-by-default, если только это не является жизненно необходимым для их функции, как passwd
.
Тем не менее, на однопользовательской системе, или на системе, где вас не волнуют эти проблемы, сделать setuid для вашего собственного удобства не является существенной проблемой.
.