В 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, но я хочу лучшего объяснения.

7
задан Alexandre Vicenzi
20.02.2023 20:11 Количество просмотров материала 3366
Распечатать страницу

1 ответ

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

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

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

2
отвечен Andreas Wiese 2023-02-22 03:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх