Sudo ja sudoers

From EIK wiki

UNIX on oma olemuselt ülesse ehitatud nõnda, et süsteemis on ainult üks juurkasutaja. Selleks, et tavakasutaja saaks süsteemis midagi teha, peab ta autentima ennast juurkasutajaks käsuga su või sudo.

Autor

Riti Ruul AK32

Sudo

Mis vahe on käskudel su ja sudo? Su kasutamine eeldab, et teatakse teise kasutaja parooli. Sudo kasutamisel pole vaja teada teise kasutaja parooli. Seda juhul, kui konfiguratsioonifailis on ära näidatud, millisel kasutajal on millised õigused. [1]

Graafiliselt saab tavaksutajale anda juurkasutaja õiguseid: Süsteem->Administreerimine->Kasutajad ja grupid,

Sudo abi

man sudo

Sudoers

Sudoers on konfguratsioonifail, kus on ära määratud, kes mida teha tohib. Antud faili muutmiseks on meil vaja programmi visudo. Põhjus selleks on väga proosaline. Nimelt visudo kontrollib muudetud faili süntaktiliselt. Sudoers fail asub /etc/sudoers.

Vaikimisi sudoers fail [2]

# /etc/sudoers
#
# Selle faili redigeerimiseks on vaja programmi visudo ja redigeerida saab juurkasutajana.
# 
# Sudoers' faili kirjutamiseks kasuta man käsku.
#

Defaults    env_reset

# Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Viimane rida (%admin ALL=(ALL) ALL) näitab, et kasutajagrupile admin on kõik lubatud.

Näide 1. Konkreetsetele kasutajatele ligipääsu andmine. Järgneva rea sisestamisel sudoers faili annan jukule ja juhanile täieliku juurdepääsu õiguse.

juku, juhan  ALL=(ALL) ALL

Sellise rea sisestamine ei ole hea, kuna see võimaldab jukul ja juhanil süsteemis toimetada nii nagu nemad heaks arvavad.

Näide 2. Kasutajatele, kes kuuluvad gruppi "totud", on maksimaalne ligipääs kõikidele käskudele ja ei pea sealjuures sisestama parooli.

%totud  ALL=(ALL) NOPASSWD: ALL

Näide 3. Teatud kasutajatele juurdepääsu andmine konkreetsetele failidele. [3]

peeter, %operator ALL= /sbin/

See käsk võimaldab peetril ja kõikidel kasutajatel, kes kuuluvad gruppi oprator käivitada faile katalogist /sbin/ käivitada kõiki programme root õigustes

Näide 4. Juurdepääsu võimaldamine parooliga või ilma. [man sudoers]

ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

Selline rida võimaldab kasutajal ray 'l juurkasutajana (masinast rushmore) käivitada käsud /bin/kill, /bin/ls, /usr/bin/lprm ilma, et ta peaks ennast audentima. Kui me tahame, et ray saaks käivitada käsku /bin/kill parooli sisestamata ja käivitada käskusid /bin/ls, /usr/bin/lprm parooli sisestamata, siis peame kirjutama rea:

ray rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm

Näide 5. Aliase kasutamine sudoers failis. [4]

Miks on alias 'te kasutamine hea? Kui süsteemis on palju kasutajaid ja kui kasutajatele anda hüüdnimesid, siis on administraatoril lihtsam kasutajatele õiguseid määrata (minu arvates). Kui alias ei ole määratud, siis peab mingi õiguse andmiseks kirjutama kõikide kasutajate nimed, kellele on vaja konkreetne õigus anda. Kui alias on määratud, siis õiguse andmiseks peab kasutama ainult alias 't.

# User alias specification
User_Alias	FULLTIMERS = millert, mikef, dowdy
User_Alias	PARTTIMERS = bostley, jwfox, crawl
User_Alias	WEBMASTERS = will, wendy, wim
User_Alias      ADMINS = peeter, juku, juhan, %operator

# Runas alias specification
Runas_Alias	OP = root, operator
Runas_Alias	DB = oracle, sybase

# Host alias specification
Host_Alias	SPARC = bigtime, eclipse, moet, anchor:\
 		SGI = grolsch, dandelion, black:\ 
		ALPHA = widget, thalamus, foobar:\
		HPPA = boa, nag, python
Host_Alias	CUNETS = 128.138.0.0/255.255.0.0
Host_Alias	CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias	SERVERS = master, mail, www, ns
Host_Alias	CDROM = orion, perseus, hercules

# Cmnd alias specification
Cmnd_Alias	DUMPS = /usr/sbin/dump, /usr/sbin/rdump, /usr/sbin/restore, \
			/usr/sbin/rrestore, /usr/bin/mt
Cmnd_Alias	KILL = /usr/bin/kill
Cmnd_Alias	PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias	SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias	HALT = /usr/sbin/halt, /usr/sbin/fasthalt
Cmnd_Alias	REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
Cmnd_Alias	SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
			 /usr/local/bin/tcsh, /usr/bin/rsh, \ 
			 /usr/local/bin/zsh
Cmnd_Alias	SU = /usr/bin/su
Cmnd_Alias	VIPW = /usr/sbin/vipw, /usr/bin/passwd, /usr/bin/chsh, \
		       /usr/bin/chfn

Sudoers abi

man sudoers

Kasutatud materjal