Ето един прост пример как да редактирате /etc/sudoers:
# User alias specification
User_Alias[TAB]FULLTIMERS = юзъра_ви
# User privilege specification
FULLTIMERS[TAB]ALL = NOPASSWD: ALL
Така ще можете да стартирате която и да е програма или команда с привилегиите на su/root, без парола, като напишете sudo преди нея. Пример:
- Код за потвърждение: Избери целия код
sudo synaptic
Възможностите на sudo са далеч по-големи, но са необходими когато един компютър се използва от повече от един потребител. Можете да зададете права на потребителите да изпълняват определени команди с или без парола.
Ето пример какво и къде да редактирате:
# User alias specification
User_Alias[TAB]FULLTIMERS = user1, user2, user3
User_Alias[TAB]PARTTIMERS = user4, user5
User_Alias[TAB]OTHERS = user6, user7
# Cmnd alias specification
Cmnd_Alias[TAB]SHUTDOWN = /sbin/shutdown
Cmnd_Alias[TAB]REBOOT = /sbin/reboot
Cmnd_Alias[TAB]INIT = /sbin/init
Cmnd_Alias[TAB]DEBUTILS = /usr/bin/apt-get
Cmnd_Alias[TAB]GEDIT = /usr/bin/gedit
Cmnd_Alias[TAB]SYNAPTIC = /usr/sbin/synaptic
# User privilege specification
FULLTIMERS[TAB]ALL = NOPASSWD: ALL
PARTTIMERS[TAB]ALL = ALL
OTHERS[TAB]ALL = NOPASSWD: SHUTDOWN, REBOOT, INIT
OTHERS[TAB]ALL = DEBUTILS, GEDIT, SYNAPTIC
В първата секция User alias specification са групирани отделните потребители. В секцията Cmnd alias specification е списъкът на командите, които могат да се използват чрез sudo. В User privilege specification са правата на отделните групи. Потребителите в групата FULLTIMERS могат да изпълняват която и да е команда без парола. Потребителите от PARTTIMERS могат да изпълнят която и да е команда, но ще трябва да я потвърдят с паролата си. Потребителите от OTHERS могат да изпълняват само командите дефинирани в Cmnd alias specification, като за SHUTDOWN, REBOOT, INIT няма да им трябва парола, докато за DEBUTILS, GEDIT, SYNAPTIC ще им бъде необходима.
Това е само пример, който да илюстрира накратко възможностите на sudo. Те са многократно по-големи, но са нужни само на системни администратори, които да задават определени привилегии на определени потребители на една машина. Коригирайте примера по свой вкус и нужди.
Още информация – тук.
ЗАБЕЛЕЖКА: Където пише:[TAB] трябва да има табулация.
Допълнения относно повишаване на сигурността на системата:
Необходимо е да помислите и да намерите най-добрия за вас баланс в съотношението безопасност/удобство. Защото това, което е максимално безопасно, не е удобно, а онова, което максимално удобно, не е безопасно. Например ако сте си настроили sudo да изпълнявате всички команди без парола, тогава ако стартирате един bash скрипт съдържащ командата "sudo rm -rf /" (никога не изпълнявайте тази команда, освен ако не искате да заличите всички файлове по хард-диска си!!!) ще останете с празен хард-диск. Препоръчвам в /etc/sudoers да окажете да се изпълняват без парола само командите, които използвате най-често, но употребата им не може да доведе до фатално увреждане на системата.
Ето едно примерче:
# User alias specification
User_Alias FULLTIMERS = phantomlord
# Cmnd alias specification
Cmnd_Alias INIT = /sbin/init #преминаването от един runlevel в друг или спирането и рестартирането на някой демон няма да унищожи системата
Cmnd_Alias APT = /usr/bin/apt-get #добавянето или премахването на пакети не е толкова фатално, защото няма как да се махнат всички наведнъж, а за да се махне някой пакет трябва да се знае точното му име. И да се премахне неоторизирано, после просто си го слагате отново.
Cmnd_Alias KATE = /usr/bin/kate #може да навреди на системата само ако трети лица добият неоторизиран директен физически достъп до машината, но пак няма да е крайно фатално.
Cmnd_Alias SYNAPTIC = /usr/sbin/synaptic #виж горното
Cmnd_Alias DPKG = /usr/bin/dpkg #виж горното
Cmnd_Alias COPY = /bin/cp #безвредно е, освен ако не изпълните bash скрипт съдържащ например: sudo cp /usr/bin/amarok /usr/bin/apt-get
Cmnd_Alias MOVE = /bin/mv #като при cp
# User privilege specification
root ALL=(ALL) ALL
#FULLTIMERS ALL = NOPASSWD: ALL
FULLTIMERS ALL = NOPASSWD: INIT, APT, KATE, SYNAPTIC, DPKG, COPY, MOVE #само посочените команди ще се изпълнят без парола
FULLTIMERS ALL = ALL #всички останали команди ще трябва да бъдат потвърдени чрез паролата ви.
100% сигурност няма никога. Примерът ограничава възможността за нежелано автоматично изпълнение на опасни команди съдържащи се в скриптове, освен ако сте стартирали скрипта като root. Винаги преглеждайте кода на скриптове с несигурен произход преди да ги изпълните, особено когато ги пускате като su!