algri14 писал: ↑15.12.2019 20:23
bash: fdisk: команда не найдена
У меня сработало нормально.
algri14 писал: ↑15.12.2019 21:28
я хочу знать почему, нюанс
su с дефисом срабатывает как
su --login, то есть как если бы вы залогинились рутом (со всеми вытекающими последствиями). su без дефиса запускает шелл от текущего пользователя (опять-таки со всеми вытекающими: наследует переменные окружения и т.п.).
Кстати, если я не ошибаюсь, разницу можно заменить по имени текущего каталога. Если у Вас в терминале строка приглашения отображает текущий каталог, то при смене пользователя должно быть видно, что путь меняется.
При выполнении su с дефисом произойдет переход в домашний каталог рута, а при выполнении su без дефиса текущий каталог не изменится.
Что касается Вашей команды, попробуйте, например, указать полный путь к команде
su -c '/sbin/fdisk -l /dev/sdb'
algri14 писал: ↑15.12.2019 20:23
Например, нелепо открывать внутренний сеанс суперпользователя для того, чтобы только посмотреть текущую разметку диска командой вроде fdisk -l.
На самом деле не вижу здесь ничего нелепого.
Если нам нужно запустить консольную программу, мы открываем терминал (обычный - пользовательский).
Ради одной команды, ради двух, ради десяти - не имеет значения. Надо - открываем.
Точно так же мы открываем и рутовый терминал.
Почему открывать пользовательский терминал ради одной команды - нормально, а открыть рутовый терминал - нелепо?
algri14 писал: ↑15.12.2019 21:28
более правильная и безопасная
Она ещё и более удобная. Позволяет детально настроить, кому, чего и в каком виде можно запускать.
Кроме того, умеет писать лог. Возможно, su тоже что-то такое умеет, не знаю.