LINUX.ORG.RU
ФорумTalks

Вот решил поставить дебиан ...

 ,


0

1

Буду краток.

root@a20:/etc# fdisk -l
bash: fdisk: command not found
root@a20:/etc# apt install fdisk
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
fdisk is already the newest version (2.36.1-8+deb11u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@a20:/etc# which fdisk
root@a20:/etc# uname -a
Linux a20 5.10.0-12-amd64 #1 SMP Debian 5.10.103-1 (2022-03-07) x86_64 GNU/Linux
root@a20:/etc# cat /etc/issue
Debian GNU/Linux 11 \n \l

root@a20:/etc# 

Ну почему оно не может просто взять и работать ?

★★★★★
Ответ на: комментарий от No

1. Я не спрашивал, как мне запустить fdisk;

2. /usr/sbin/fdisk.

Чем тратить время на СоСы, лучше бы причесывали свои поделия.

windows10 ★★★★★
() автор топика

как рутом стал? переменные окружения чьи? в debian /sbin в PATH только для рута и смоторя как им становишься - может не быть. И да, это бесит меня все 10+ лет на дебиане

GPFault ★★
()
Ответ на: комментарий от GPFault

Ну, в Дебиане в принципе стать рутом можно только одним способом. Если этот способ не предусматривает человеческого запуска простых утилит ... не удивительно что люди сбегают на арч =)

windows10 ★★★★★
() автор топика

А что должно работать то?

$ su -
# which fdisk 
/usr/sbin/fdisk
# fdisk -V
fdisk from util-linux 2.33.1
mexx
()

Ты что то неправильно сделал с рутом, вопрос, зачем ты не используешь дефолтные настройки если не разбираешься?

MOPKOBKA ★★★★★
()
Ответ на: комментарий от windows10

Ты поставил дебиан чтобы его пообсирать? Тогда тебе дебианопроблем хватит на зафлудить все толксы. Или смирись, или сбегай на арчик, ведь арчепроблемы модные и молодежные, не то что это говно мамонта.

mandala ★★★★★
()

Ты не умеешь делать su - или sudo -i и переходишь в рута каким-то образом, который не экспортирует переменные окружения?

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)

В своё время сспоткнулся об это тоже. Как тут и говорили, юзай не просто su, а su - и будет тебе счастье.

Dorif ★★★
()

как выше уже верно заметили, проблема не в Debian, а так задумало линуксом.

PATH обязательная переменная окружения, для списка где ему чекать бинарники для запуска. так же как и TERM. остальными можно пренебречь, но это совсем уж прям будет «linux from scratch».

в общем проблема фигня, не переживай ты так. :))

Spoofing ★★★★★
()

Debian при переходе из юзера в root при помощи su начиная с какой-то недавней (10 или 9, но могу ошибаться) версии применяет руту переменную PATH от юзера. При логине сразу под root, а не через su переменная должна применяться настоящая рутовая. Нахрена эта дичь была сделана, я не знаю, но вот так вот.

P. S. Ты серьёзно создал аж целую тему на форуме оттого что не смог сходу утилиту запустить?

apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

— из раннего

А Линукс таки да, говно. Но не сам Линукс, а его концепция windows10 ★★★

kolja ★★
()

Зачем вообще сидеть в рутовом шелле вместо sudo fdisk? Единственный редкий случай, приходящий на ум — когда надо ходить по иерархии каталогов, на которую права только у рута. И то, в таком случае обхожусь sudo mc.

alegz ★★★★
()
Ответ на: комментарий от alegz

Рут чаще всего бывает нужен. 1. Установить/Настроить какую-нибудь хрень 2. Починить какую-нибудь хрень. 3. Разобраться с возникшей НЁХ. ИМХО во всех трех случаях использовать только mc будет не удобно.

anc ★★★★★
()

Ещё один арчеламер познаёт мир.

bread
()

Потому что ты некомпетентен.

Если переключаться на root нормально, через su -, то все работает (у меня именно Debian 11):

vsevolod@hp15:~$ su -
Пароль: 
root@hp15:~# fdisk -V
fdisk from util-linux 2.36.1
root@hp15:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
root@hp15:~# 

Но если переключаться просто через su, то вот тогда будет описанный тобой эффект:

vsevolod@hp15:~$ su
Пароль: 
root@hp15:/home/vsevolod# fdisk -V
bash: fdisk: команда не найдена
root@hp15:/home/vsevolod# echo $PATH
/home/vsevolod/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
root@hp15:/home/vsevolod# 

А знаешь, почему? Потому что Linux (причем любой, а не только Debian) при переключении через su вместо su - сохраняет многие переменные окружения от изначального пользователя.

В частности — $PATH, что и вызывает такой эффект. И это чертовы азы, в любом курсе по Linux их рассказывают на первых занятиях! За 4 года пора бы выучить.

Что ещё очевидного тебе рассказать… ты в курсе про комбинации Ctrl+Alt+F(1-7), или для тебя тоже в новинку, что они tty переключают? (Если совсем точно, то Ctrl нужен только под X11, в голых tty работает просто Alt). И что традиционно X11 на tty7, хотя в более новых дистрибутивах может на ином быть?

Серьезно, меня пугают вроде бы уже опытные пользователи Linux, которые ухитряются основ не знать.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от windows10

Более, чем одним. Сильно более. Как и в любом Linux.

Но правильный — su - — ты не использовал.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Лол, тоже впервые узнал. Всегда использовал su и работало, в том числе fdisk, под дебианом разных версий и рачем. Как так?

InterVi ★★★★★
()
Ответ на: комментарий от Spoofing

Да он не переживает. Просто ему хотелось обосрать Debian, и чтобы его в комментариях поддержали, какое Debian говно.

Но так как он высказал слишком необоснованные претензии на ровном месте и продемонстрировал неграмотность в Linux в целом, сейчас будут обсирать его.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от InterVi

Работало, потому что у твоего пользователя $PATH тоже по какой-то причине содержал нужные пути.

Это на самом деле от многого зависит. Я, например, использую sddm потому, что lightdm неправильно задает пути в нём, что приводит к невозможности нормально запускать приложения из flatpak и snap.

А вот что ты впервые узнал такую базовую вещь — печально. Я курсы по RHCSA тут всем советую не просто так. Даже если вам нафиг не нужен этот сертификат, они просто избавят вас от неграмотности во многих базовых вещах в Linux, что полезно даже обычным пользователям.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 3)
Ответ на: комментарий от InterVi

Это, как я понял, пришло в debian 10. В версии util-linux 2.32.

под дебианом разных версий и рачем

Ты какие версии конкретно имеешь ввиду?

apt_install_lrzsz ★★★
()
Последнее исправление: apt_install_lrzsz (всего исправлений: 1)
Ответ на: комментарий от InterVi

под дебианом разных версий

В дебиане до 10 версии использовалась su из пакета shadows. В 10ке перешли на версию из util-linux, где и появилось такое поведение.

gremlin_the_red ★★★★★
()
Последнее исправление: gremlin_the_red (всего исправлений: 1)
Ответ на: комментарий от windows10

Ну, в Дебиане в принципе стать рутом можно только одним способом. Если этот способ не предусматривает человеческого запуска простых утилит

Не выставляй пароль рута при установке. Будет тебе судо.

hateWin ★☆
()
Ответ на: комментарий от Vsevolod-linuxoid

Ну, в Дебиане в принципе стать рутом можно только одним способом. Если этот способ не предусматривает человеческого запуска простых утилит

/etc/enviroment не работает?

hateWin ★☆
()

во-первых, зачем тебе шелл под рутом? да еще и в дебиане? тут так не принято. sudo fdisk, и не люби мозг
во-вторых,

PATH="$PATH:/sbin:/usr/sbin"

в ~/.profile, и не люби мозг
и да, если очень нужен рутовый шелл, прямо невмоготу, того sudo -s, или как там его.

PerdunJamesBond
()
Последнее исправление: PerdunJamesBond (всего исправлений: 1)
Ответ на: комментарий от InterVi

Потому что некоторые дистрибутивы добавляют sbin пользователю.

Dimez ★★★★★
()
Ответ на: комментарий от hateWin

Этим способом, насколько я понял, можно лишь жестко задать переменную. А в моем случае мне нужно было дописать дополнительные пути к текущим. Да, это можно сделать и жестко, но я предпочитаю так не делать.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Всё равно не без Debian-приколов: почему у юзверя $PATH так отличается от «рута»? Почему /sbin/ вообще отдельной директорией?

sudopacman ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid
-bash-4.2$ whoami
ntfs
-bash-4.2$ su
Password: 
[root@xmen ]# fdisk
Usage:
 fdisk [options] <disk>    change partition table
 fdisk [options] -l <disk> list partition table(s)
 fdisk -s <partition>      give partition size(s) in blocks

Options:
 -b <size>             sector size (512, 1024, 2048 or 4096)
 -c[=<mode>]           compatible mode: 'dos' or 'nondos' (default)
 -h                    print this help text
 -u[=<unit>]           display units: 'cylinders' or 'sectors' (default)
 -v                    print program version
 -C <number>           specify the number of cylinders
 -H <number>           specify the number of heads
 -S <number>           specify the number of sectors per track

[root@xmen ]# cat /etc/re
redhat-release  resolv.conf     
[root@xmen ]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@xmen ]# uname -a
Linux xmen.ch 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@xmen ]# 
windows10 ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

А знаешь, почему? Потому что Linux (причем любой, а не только Debian) при переключении через su вместо su - сохраняет многие переменные окружения от изначального пользователя.

А не знаю почему:

ntfs@a20:~$ su --help

Usage:
 su [options] [-] [<user> [<argument>...]]

Change the effective user ID and group ID to that of <user>.
A mere - implies -l.  If <user> is not given, root is assumed.

Options:
 -m, -p, --preserve-environment      do not reset environment variables
 -w, --whitelist-environment <list>  don't reset specified variables

 -g, --group <group>             specify the primary group
 -G, --supp-group <group>        specify a supplemental group

 -, -l, --login                  make the shell a login shell
 -c, --command <command>         pass a single command to the shell with -c
 --session-command <command>     pass a single command to the shell with -c
                                   and do not create a new session
 -f, --fast                      pass -f to the shell (for csh or tcsh)
 -s, --shell <shell>             run <shell> if /etc/shells allows it
 -P, --pty                       create a new pseudo-terminal

 -h, --help                      display this help
 -V, --version                   display version

For more details see su(1).
ntfs@a20:~$ 

Сейчас ты меня обучаешь согласно своему опыту. Согласно же официальному доку к команде su, там ничего не сказано про переменные окружения. Но да, libastral.so же, забыл.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

Согласно же официальному доку к команде su, там ничего не сказано про переменные окружения.

For more details see su(1).

man 1 su

       -, -l, --login
              Start the shell as a login shell with an environment similar to a real login:

                 o      clears all the environment variables except TERM and variables specified by --whitelist-environment

                 o      initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH
No ★★
()
Ответ на: комментарий от windows10

А ты про команду man слышал? --help дает краткую справку. Я вот набрал man su и там:

SU(1)                                                                        User Commands                                                                        SU(1)

NAME
       su - run a command with substitute user and group ID

SYNOPSIS
       su [options] [-] [user [argument...]]

DESCRIPTION
       su allows commands to be run with a substitute user and group ID.

       When called with no user specified, su defaults to running an interactive shell as root.  When user is specified, additional arguments can be supplied, in which
       case they are passed to the shell.

       For backward compatibility, su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and  LOGNAME  if
       the  target  user  is not root).  It is recommended to always use the --login option (instead of its shortcut -) to avoid side effects caused by mixing environ‐
       ments.

       This version of su uses PAM for authentication, account and session management.  Some configuration options found in other su implementations, such  as  support
       for a wheel group, have to be configured via PAM.

       su  is  mostly designed for unprivileged users, the recommended solution for privileged users (e.g., scripts executed by root) is to use non-set-user-ID command
       runuser(1) that does not require authentication and provide separate PAM configuration. If the PAM session is not required at all then the recommend solution is
       to use command setpriv(1).

       Note that su in all cases use PAM (pam_getenvlist(3)) to do the final environment modification.  Command-line options such as --login and --preserve-environment
       affect the environment before it is modified by PAM.

И ниже:

       -, -l, --login
              Start the shell as a login shell with an environment similar to a real login:

                 o      clears all the environment variables except TERM and variables specified by --whitelist-environment

                 o      initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH

                 o      changes to the target user's home directory

                 o      sets argv[0] of the shell to '-' in order to make the shell a login shell
Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от windows10

Потому что в $PATH у юзера заданы нужные директории. Вот только нужные ли… ну запустишь ты fdisk из-под пользователя, дальше что?

vsevolod@hp15:~$ /sbin/fdisk -l /dev/sda
fdisk: cannot open /dev/sda: Отказано в доступе

ПО из /sbin/ обычно неработоспособно без root прав. То есть это просто не имеет смысла.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от windows10

Единственное, где может пригодиться /sbin/ в $PATH у юзверя — если админ идиот и не в курсе про то, как правильно su - использовать.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

А зачем юзверю /sbin?

Для начала стоит определиться, зачем вообще /sbin.

Он все равно не сможет ничего запустить из этих бинарников.

~ ➜  fdisk --help
Usage:
 fdisk [options] <disk>         change partition table
 fdisk [options] -l [<disk>...] list partition table(s)

Display or manipulate a disk partition table.
...
sudopacman ★★★★★
()
Ответ на: комментарий от sudopacman

Ну ладно, он сможет запустить их и посмотреть справку. Всё. Причем встроенную в сами программы.

Но man и прямой вызов команды по полному пути никто не отменял.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Ладно, хорошо, согласен — есть некоторые достаточно редкие ситуации, когда /sbin/ в $PATH у не root пользователя полезен.

Это никак не отменяет того факта, что ТС сам виноват и переключался на root неправильным образом. Что в некоторых дистрибутивах неправильный способ работает — не оправдание его глупости и не обвинение Debian.

Есть огромная куча действий, которые технически работают в Linux, но которые все равно не стоит делать:

Можно вообще все время работать под root. Можно мешать 100500 разных несовместимых репозиториев. Можно ставить на сервер KDE5, потом подключаться к нему по RDP исключительно для того, чтобы работать в эмуляторе терминала. Можно ставить все ПО через make install и засрать систему левыми бинарниками неясно где без возможности отката без переустановки.

Всё это технически будет работать. Но это не показатель того, что так правильно делать.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Ну ладно

Может, вместо того чтобы вилять, ответишь наконец, в чём смысл существования /sbin как отдельной директории в 2022 году?

Всё.

Нет.

man и прямой вызов команды по полному пути

Debian был бы не Debian, если бы они не вставляли пользователям палки в колёса на ровном месте просто потому, что могут.

ip a

достаточно редкие

за что? (комментарий)

sudopacman ★★★★★
()

Ваши ожидания - ваши проблемы 😁

chenbr0
()
Ответ на: комментарий от sudopacman

Чего? ip a спокойно от обычного пользователя работает.

vsevolod@hp15:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 70:5a:0f:98:50:ee brd ff:ff:ff:ff:ff:ff
3: enx1e497bab802a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 1e:49:7b:ab:80:2a brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.10/24 brd 10.0.0.255 scope global dynamic noprefixroute enx1e497bab802a
       valid_lft 534629sec preferred_lft 534629sec
    inet6 fe80::af14:bdb6:5402:9bf9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: wlp13s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether aa:a8:dd:4b:96:09 brd ff:ff:ff:ff:ff:ff permaddr 44:1c:a8:7c:e1:29

Он же в /bin/

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от sudopacman

в чём смысл существования /sbin как отдельной директории в 2022 году?

Чтобы её можно было вынести на отдельный раздел в ro, например. И чтобы после удаления /usr система была не до конца порушена.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Dimez

Ты не умеешь делать su - или sudo -i

Он написал `su` без тире. В этом случае переменные окружения не устанавливаются.

Mirage1_
()
Ответ на: комментарий от Vsevolod-linuxoid

Он же в /bin

https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/tree/Makefile

Получается, они сначала создали проблему, а потом герочиески её «решили», переместив ip в /bin.

Чтобы её можно было вынести на отдельный раздел в ro, например.

Кому и зачем это нужно?

И чтобы после удаления /usr система была не до конца порушена.

После удаления /usr у тебя даже libc не останется.

sudopacman ★★★★★
()
Ответ на: комментарий от windows10

Если этот способ не предусматривает человеческого запуска простых утилит ... не удивительно что люди сбегают на арч =)

Просто в Debian мало кто пользуется fdisk и подобным, только в особых случаях. Потому что есть адекватный установщик

Sunderland93 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.