zdravim. Daju sa nejako tieto dva prikazy spristupnit aj beznemu uzivatelovi ?? skusal som halt a reboot skopirovat z adresara /sbin do adresara /bin, ale ked som to isiel cez prikazovy riadok spustit, tak mi vypisalo, ze musim byt root.
26. Prosinec 2007
#1
halt a reboot
Co takhle s pomocí utility sudo ;-)
honzaS
no to ma tiez napadlo, ale je to to iste, ako keby som dal su, tak tiez musim najprv pisat rootovske heslo a potom mozem pouzit jeden z prikazov. Myslel som nieco take, aby som sa nemusel prihlasovat ako root, ale aby som priamo ako pouzivatel pouzil niektory prikaz bez vytukavania rootovskeho hesla
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
Stačí si v /etc/sudoers vytvořit pravidlo pro běžného uživatele nebo skupinu s použitím direktivy NOPASSWD.
honzaS
Tak som si otvoril YaST2-Bezpecnost a uzivatelia-Sudo a tam som pridal nove pravidlo: "uzivatela" som dal seba, "pocitac" som dal ALL, "spoustet jako, nebo alias spoustet jako" som nastavil root, potom som zaskrtol moznost bez hesla a ako prikazy som vybral /sbin/halt a /sbin/reboot. Lenze ked to idem vyskusat ako normalny pouzivatel: sudo halt, alebo sudo reboot, tak stale to pyta heslo roota
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
Zašlete sem obsah /etc/sudoers
honzaS
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Prevent environment variables from influencing programs in an
# unexpected or harmful way (CVE-2005-2959, CVE-2005-4158, CVE-2006-0151)
Defaults always_set_home
Defaults env_reset
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
# Comment out the preceding line and uncomment the following one if you need
# to use special input methods. This may allow users to compromise the root
# account if they are allowed to run commands without authentication.
#Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
# In the default (unconfigured) configuration, sudo asks for the root password.
# This allows use of an ordinary user account for administration of a freshly
# installed system. When configuring sudo, delete the two
# following lines:
Defaults targetpw
ALL ALL = (ALL) ALL
johnnycage ALL = (root) NOPASSWD: /sbin/halt ,/sbin/reboot
# Runas alias specification
# User privilege specification
root ALL = (ALL) ALL
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
Mě sudo funguje 100% s touto syntaxí:
johnnycage ALL = NOPASSWD: /sbin/halt, /sbin/reboot
honzaS
hmm, tak neviem, mne to nefunguje ani s takouto syntaxou :-(
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
V prikazovom riadku si ako root zadaj prikazy:
chmod +s /sbin/halt a chmod +s /sbin/reboot
Potom mozes system vypnut a restartovat aj ako bezny uzivatel.
sudo /sbin/reboot
sudo /sbin/halt
Příkazy se musí zadávat v tomto tvaru, protože je běžný uživatel nemá v PATH.
honzaS
V tomto tvare uz mi to funguje. Tak ma napadlo, ze si skopirujem subory reboot a halt do adresara /bin a ked som si nastavil pravidlo v sudoers, tak staci ked napisem sudo reboot alebo sudo halt a nemusim uz pisat sudo /sbin/reboot alebo sudo /sbin/halt
Dakujem.
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
naco si to komplikujes?skusil si si zmenit prava ako som ti napisal?
potom uz nemusis vypisovat ziadne sudo /sbin/reboot a sudo /sbin/halt, staci iba halt alebo reboot.
Vcera som si nastavil tie prava ako si mi napisal, ale neslo mi to. No a dnes po tychto vsetkych krokoch mi uz ide aj iba reboot a halt, ale neviem, jak to je mozne, ked vcera mi to neslo po nastaveni tych prav.
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
Nastavením suid bitu se zbytečně vystavujete bezpečnostnímu riziku, když to lze udělat elegantněji a lépe ;-)
honzaS
Nesmysl! Navíc /sbin/reboot je symbolický link na /sbin/halt
Nejjednodušší a zároveň z pohledu bezpečnosti také nejlepší řešení je si vytvořit aliasy (~/.bashrc).
Např.:
alias reboot='sudo /sbin/reboot'
alias halt='sudo /sbin/halt'
honzaS
Takze ak som to spravne pochopil, mam si len vytvorit v sudoers pravidlo:
johnnycage ALL = NOPASSWD: /sbin/halt, /sbin/reboot
dalej nenastavovat ziadne prava na tieto dva subory, ani nekopirovat subory do /bin a vytvorit si tie aliasy podla tohoto vzoru ?:
alias reboot='sudo /sbin/reboot'
alias halt='sudo /sbin/halt'
OS: Debian Testing 64bit, Kernel 2.6.38, GNOME 2.30.2
NB: Lenovo G550, Intel Pentium Dual-Core T4200 2.0GHz, RAM 3GB 1066MHz, WD 320GB, Intel GMA X4500 256MB
Přesně tak :-)
honzaS
ano, aj formou aliasov sa to da.
to ma nenapadlo, kedze prikazovu riadku pouzivam uz minimalne(ked si tak dobre spominam, tak iba na instalaciu noveho driveru na grafiku)