Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: DolamanAnoha 12. 06. 2022, 19:59:57
-
I když mě linux, konkrétně momentálně Debian 5.10.113-1 , baví, nemůžu se mu věnovat tolik, kolik bych chtěl. Omezuje se to na občasné vylepšování domácích udělátek. A tak nové distribuce jsou častější, než se stačím něco naučit v té předchozí.
Nic moc od toho nechci, jen využívat příkazy jako třeba modprobe, nebo insmod jako root uživatel. Nejnověji mám s tím problém, protože soubor /root/bashrc je absolutné prázdný a tímpádem mě shell vrací "command not found". Cože?
Tak jsem se dal do hledání a našel jsem, že teď je to někde v /etc/profile a tam jsem našel tohleto:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$(id -u)" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "$(id -u)" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
Přidávání $PATH jsem řešil opravdu hodně let dávno a tak mě zabte, ale chová se to podle podmínky else. Byl by někdo ochotný ztratit dvě minuty ze svého života a pár větama mě to osvítit, než provedu něco blbě?
Předem stokrát děkuji.
-
tak si tam hod echo a zkus to spustit jako shell skript rucne
-
Já si matně vzpomínám, že profile se spouští jenom když je to "login shell" nebo možná naopak, a když se přepneš přes nějaké sudo nebo su, tak to třeba není login shell a tak se to nespustí.
V balíčku "bash" je soubor /etc/skel/.bashrc normálně pořád https://packages.debian.org/bullseye/amd64/bash/filelist takže by se měl při založení uživatele vytvořit v jeho home, takže máš možná nějaký jiný problém. (v dotazu to máš omylem jako bashrc bez tečky)
-
1. Debian 5.10.113-1 to cislo neni verze Debianu, ale Linux kernelu/jadra
2. nema byt /root/bashrc ale /root/.bashrc (tedy s TECKOU na zacatku)
3. jakej program hlasi "command not found" ?
pokud chces pustit ten modprobe, tak ten se musi poustet jako root,
tzn. pokud si roota pri instalaci (nebo pak) aktivoval tak:
su -
(zadas heslo roota)
modprobe blabla
pokud root aktivni nemas, tak:
sudo modprobe blabla
(zadas heslo SVEHO uzivatele)
tim ze to takto pustis jako ci "jako" root, tak ten v $PATH bude mit sbin adresare
-
Za tu tečku se omlouvám.
Co se týče přihlašování, tak se přihlašuju jako BFU a pak se rootnu příkazem su, následné zadám heslo. Pak bych měl být root. A to by mě pak kupř. modbprobe blablabla mělo jít jako z praku a nedělat, že nejsem root.
Tu path si umím zadat na seansi, ale štve mě, co to má jako být, prostě tohle se mi ještě nestalo. Žeby tohle:
root@homeassistant:/etc#
nebyl root?
-
Za tu tečku se omlouvám.
Co se týče přihlašování, tak se přihlašuju jako BFU a pak se rootnu příkazem su, následné zadám heslo. Pak bych měl být root. A to by mě pak kupř. modbprobe blablabla mělo jít jako z praku a nedělat, že nejsem root.
Tu path si umím zadat na seansi, ale štve mě, co to má jako být, prostě tohle se mi ještě nestalo. Žeby tohle:
root@homeassistant:/etc#
nebyl root?
A přepínáš se pomocí su , nebo su - ? Pokud to první , tak se Ti nenačte prostředí roota , tedy ten .bashrc, ve kterém je PATH definovaná.
-
Za tu tečku se omlouvám.
Co se týče přihlašování, tak se přihlašuju jako BFU a pak se rootnu příkazem su, následné zadám heslo. Pak bych měl být root. A to by mě pak kupř. modbprobe blablabla mělo jít jako z praku a nedělat, že nejsem root.
Tu path si umím zadat na seansi, ale štve mě, co to má jako být, prostě tohle se mi ještě nestalo. Žeby tohle:
root@homeassistant:/etc#
nebyl root?
A přepínáš se pomocí su , nebo su - ? Pokud to první , tak se Ti nenačte prostředí roota , tedy ten .bashrc, ve kterém je PATH definovaná.
Edit time je zde krátký:
Tedy : … nenačte se ti prostředí roota a tedy jeho PATH. Ani eventuálně /root/.bashrc, pokud existuje.
-
I když mě linux, konkrétně momentálně Debian 5.10.113-1 , baví, nemůžu se mu věnovat tolik, kolik bych chtěl. Omezuje se to na občasné vylepšování domácích udělátek. A tak nové distribuce jsou častější, než se stačím něco naučit v té předchozí.
Nic moc od toho nechci, jen využívat příkazy jako třeba modprobe, nebo insmod jako root uživatel. Nejnověji mám s tím problém, protože soubor /root/bashrc je absolutné prázdný a tímpádem mě shell vrací "command not found". Cože?
Tak jsem se dal do hledání a našel jsem, že teď je to někde v /etc/profile a tam jsem našel tohleto:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$(id -u)" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "$(id -u)" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
Přidávání $PATH jsem řešil opravdu hodně let dávno a tak mě zabte, ale chová se to podle podmínky else. Byl by někdo ochotný ztratit dvě minuty ze svého života a pár větama mě to osvítit, než provedu něco blbě?
Předem stokrát děkuji.
Ještě jinak: prázdný /root/.bashrc není důvodem , proč se nenajdou systémové příkazy jako insmod.
V ~/.bashrc jsou individuální modifikace pro uživatele, které si tam může a nemusí zapsat, určitě ne cesta roota k systémovým příkazům
-
1. Debian 5.10.113-1 to cislo neni verze Debianu, ale Linux kernelu/jadra
2. nema byt /root/bashrc ale /root/.bashrc (tedy s TECKOU na zacatku)
3. jakej program hlasi "command not found" ?
pokud chces pustit ten modprobe, tak ten se musi poustet jako root,
tzn. pokud si roota pri instalaci (nebo pak) aktivoval tak:
su -
(zadas heslo roota)
modprobe blabla
pokud root aktivni nemas, tak:
sudo modprobe blabla
(zadas heslo SVEHO uzivatele)
tim ze to takto pustis jako ci "jako" root, tak ten v $PATH bude mit sbin adresare
Sorry k3d, přehlídl jsem že už jsi to napsal s tím mínus.
Ale je divný,že tam už má ten # v promptu, užík by tam měl mít $ , tedy jestli se na to ještě hraje…
-
Tak omlouvám se, při prvním polibku s Debianem jsem si zapamatoval su bez znaménka mínus a nevím, kdy se to změnilo, opravdu nemám čas na changelogy. Tisíceré díky všem za trpělivost.
-
Tak omlouvám se, při prvním polibku s Debianem jsem si zapamatoval su bez znaménka mínus a nevím, kdy se to změnilo, opravdu nemám čas na changelogy. Tisíceré díky všem za trpělivost.
Takhle je to v shellu odjakživa :-) ale v pohodě
-
Takhle je to v shellu odjakživa :-) ale v pohodě
"su -" ano, ale to ze user nema v $PATH *sbin je myslim tak 1-2 verze Debianu zpet :-)
-
Takhle je to v shellu odjakživa :-) ale v pohodě
"su -" ano, ale to ze user nema v $PATH *sbin je myslim tak 1-2 verze Debianu zpet :-)
No tvl ! Takže se to tam musí dopsat :-O .Doufám že tam tam nepřidali “.”
-
Jen pro pořádek:
Do cesty tam přidáš podobně jako:
export PATH="$HOME/bin:$PATH"
-
No tvl ! Takže se to tam musí dopsat :-O .Doufám že tam tam nepřidali “.”
export PATH="$HOME/bin:$PATH"
Nemotej mu hlavu s home, když řeší sbin a nebude nikam nic dopisovat, ale prostě, když chce login shell, tak použije to su tak, aby dostal login shell. Ty vždycky, když něco napíšeš, tak to je perla.
-
Jen pro pořádek:
Do cesty tam přidáš podobně jako:
export PATH="$HOME/bin:$PATH"
$HOME :D
-
Takhle je to v shellu odjakživa :-) ale v pohodě
"su -" ano, ale to ze user nema v $PATH *sbin je myslim tak 1-2 verze Debianu zpet :-)
No tvl ! Takže se to tam musí dopsat :-O .Doufám že tam tam nepřidali “.”
jen user sbin v ceste nema, root ano (a user tedy ziska pres zminovane sudo ci "su -")
. samozrejme nepridali, kdyz ten krok znepristupnit sbin je z urciteho pohledu pro bezpecnost, ale . by byla proti ;-)
-
Takhle je to v shellu odjakživa :-) ale v pohodě
"su -" ano, ale to ze user nema v $PATH *sbin je myslim tak 1-2 verze Debianu zpet :-)
No tvl ! Takže se to tam musí dopsat :-O .Doufám že tam tam nepřidali “.”
jen user sbin v ceste nema, root ano (a user tedy ziska pres zminovane sudo ci "su -")
. samozrejme nepridali, kdyz ten krok znepristupnit sbin je z urciteho pohledu pro bezpecnost, ale . by byla proti ;-)
Ježíš, já už ani číst neumím :-(
-
No tvl ! Takže se to tam musí dopsat :-O .Doufám že tam tam nepřidali “.”
export PATH="$HOME/bin:$PATH"
Nemotej mu hlavu s home, když řeší sbin a nebude nikam nic dopisovat, ale prostě, když chce login shell, tak použije to su tak, aby dostal login shell. Ty vždycky, když něco napíšeš, tak to je perla.
No dyť píšu, že je to příklad jak něco přidat do cesty, snad si nemyslíš, že budu hledat kde je v debianu insmod. Mmch to může použít jindy.
To jak použít su aby dostal prostředí roota,tedy s mínus jsem přece psal a je to správné řešení. Prostě PERLA!
-
Tak přeci jen nějakej podrázek od vývojářů. Přiznávám bez mučení, že o "su -" jsem opravdu nevěděl a je to moje chyba. Zřejmě jsem někdy před 15-20 lety narazil na malinko nepřesnej návod pro začátečníky v linuxu. Už od Jessie, když změnili cosik, co mě vyhodilo z rovnováhy - používám VPN a celý se to nějak předělalo a od tý doby tomu nerozumím, jsem na změny trošinku nakrklej.
A tak děkuju všem za objasnění problému.
-
Tak přeci jen nějakej podrázek od vývojářů. Přiznávám bez mučení, že o "su -" jsem opravdu nevěděl [...]
A tak děkuju všem za objasnění problému.
nejde o zadrej "podrazek"...
"su" (bez pomlcky) odjakziva preplo na root prava, ale NEpreplo na root prostredi
"su -" odjakziva preplo na root prava a root prostredi
co se zmenilo je to ze bezny uzivatel nema v ceste sbin ktere obsahuje "prikazy" pro roota,
neslo o podraz, ale o v podstate zvyseni bezpecnosti...
a tedy pouziti su bez prepnuti na root prostredi pak nezmenilo tu $PATH aby v ni byl sbin,
driv to nevadilo kdyz beznej user sbin v $PATH mel, takze su stacilo protoze si potreboval od roota jen ta prava
-
co se zmenilo je to ze bezny uzivatel nema v ceste sbin ktere obsahuje "prikazy" pro roota,
neslo o podraz, ale o v podstate zvyseni bezpecnosti...
Zdroj? Uživatel si může PATH nastavit nebo volat ty příkazy plnou cestou. Já to chápal jako pokus o snížení zmatení/nepořádku, aby třeba při doplňování tabem „nepřekážely“ příkazy, které stejně „nemá cenu spouštět“ (a pak to právě naráží na to, že mnoho těch příkazů je užitečných i bez roota - například umí nějaké informace zobrazit alespoň read-only).