Похожие вопросы

Где изменения, внесенные PWRCFG.Утилита командной строки EXE хранится?
Опция командной строки, чтобы открыть Chrome в новом окне и переместить фокус
Я пытаюсь проснуться в локальной сети, но получаю ошибку ethtool: command not found
Как конвертировать HTML в бесконечный одностраничный PDF через wkhtmltopdf?
Как проверить ход восстановления программного RAID-массива Windows 7 из командной строки?
Как перезапустить Linux (Ubuntu) из командной строки?
rsync только по пути / имени файла?
Как использовать xcopy с относительными путями? [закрытый]
Можно ли отключить звук компьютера через интерфейс командной строки? [дубликат]
Как удалить подпапки, сохраняя их содержимое с помощью пакетного файла
Извлечение файлов шаблон из архива RAR
Не удается загрузить профиль Powershell с помощью Ruby 2.3 в Windows
Автоматическое извлечение.RAR файлы из qbittorrent с командной строкой WinRAR CLI
Аргументы командной строки Internet Explorer
7zip не разрешает расширение файла в имени архива

В openSUSE ошибка команды

может кто-нибудь объяснить, почему эти команды не работают

me@suse:~> ifconfig
Absolute path to 'ifconfig' is '/sbin/ifconfig', so running it may require superuser privileges (eg. root).

.

me@suse:~> sudo ifconfig
root's password:
sudo: ifconfig: command not found

а почему эти работают

me@suse:~> sudo /sbin/ifconfig

.

suse:/home/me # ifconfig

Я знаю, что-то связано с пользователем root, но я хочу лучшего объяснения.

5
задан Alexandre Vicenzi
источник

1 ответов

обычно пользователи с UID 0 (т. е. root) имеют модифицированный $PATH set, включая каталоги типа /sbin и /usr/sbin, в то время как "нормальный" пользователь не имеет (так как многие программы в этих каталогах требуют привилегий суперпользователя и в любом случае не будут использоваться для этих обычных пользователей). Таким образом, если обычный пользователь хочет вызвать что-нибудь в тех каталогах, отсутствующих в его $PATH, Она должна указать полный путь программы, в то время как 'root' может вызывать их без этого потребность.

вызов sudo <program> не работает, потому что sudo наследует свое окружение (и таким образом $PATH) из вызывающего процесса (который непривилегирован и, следовательно, отсутствует /sbin).

вы можете попробовать это, позвонив echo $PATH один в пользовательской оболочке и один раз в корневой оболочке (не с sudo).

2
отвечен Andreas Wiese 2014-03-21 01:19:45
источник

Другие вопросы command-line linux opensuse