Post-install trikovi i podešavanja

Uputstva, saveti i trikovi

Moderator: Urednik


Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 Jan 2012, 20:11


Za najavljeni su/sudo deo ćete pričekati malo. Čekam odgovor na jedno pitanje ovde: http://www.linuxquestions.org/questions ... th-922896/.



Stalni član
Stalni član
offline
User avatar

Posts: 38
Joined: 25 Dec 2011, 01:58

Post Napisano: 09 Jan 2012, 20:24


Jedan od češćih "problemčića" na Slack-u zna da bude podešavanje skenera (npr. radi samo kod "root korisnika") dok se na nekim drugim distroima automatski podesi za korišćenje.
Nezavisno od modela koji se koristi (drajvera koje npr. skinete i instalirate sa sajta proizvođača, ili npr. u mom slučaju preko CUPS-a za "hp all-in-one"), zajednička su im ovlašćenja korisnika tj. grupe u kojima treba da budu kako bi koristili skener van root naloga.

Slack dosta polaže na sigurnost i želi izbeći mogućnost da podaci između eventualnih različitih korisnika budu na "izvolte", pa je često neophodno kao "root" izvršiti određene modifikacije u ovlašćenjima običnih korisnika koje bi omogućivale korišćenje određenih uređaja (npr. skenera), pa i automatsko montiranje cd-a, fleški i sl. uz određene modifikacije /etc/fstab-a.

U mom slučaju za HP multifunkcijski uređaj (štampač-skener-kopir) neophodno je da CUPS bude aktivan ("# /etc/rc.d/rc.cups start", prilikom instalacije Slackware-a u jednom od završnih koraka se postavlja mogućnost određivanja startnih procesa pri čemu je i CUPS jedan od njih, a to se može i naknadno učiniti) što mi omogućava štampanje, ali, da bih mogao da koristim i skener neophodno je da kao korisnik budem u okviru sledećih grupa (uzgred mi omogućavaju automont svega):

lp,floppy,audio,video,cdrom,plugdev,power,netdev,scanner,users (samo scanner ne radi posao)

Dakle, podešavanje skenera je najčešće posao nezavistan od podešavanja štampača i kod all-in-one uređaja (tu CUPS određuje za vas ko (ne) može da štampa), ponekada drajveri u okviru CUPS-a voze i skener kod multifunkcijskuh uređaja, a ponekad i ne (pa se onda skinu drajveri sa sajta proizvođača - u mom slučaju HPLIP), ali nezavisno od modela skenera i drajvera koji se za njega koriste, potrebno je korisnika učlaniti u određene grupe koje omogućavaju pristup skeneru.

Ovo je moje iskustvo kojim sam više nego zadovoljan - sav posao oko podešavanja štampača i skenera traje par minuta, dok pod winom instalacija zna da traje i pola sata...



Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 Jan 2012, 21:56


su i sudo

su

Su po default podešavanjima omogućava korisnicima da pokreću komande sa administratorskim ovlašćenjem ako poznaju root lozinku.

Ovo se može izmeniti kreiranjem fajla /etc/suauth (man suath) sa odgovarajućim podešavanjima (alienbob preporučuje chmod 600, drugde se pominje 440). Za razliku od sudo, su  nema mogućnost specifikovanja pojedinačnih komandi.

Unosi u ovoj datoteci imaju ovakav oblik:
kao-id:od-id:AKCIJA

Kao-id i od-id imaju sličan format i sastoje se od nečega od sledećeg ALL, lista korisničkih imena razdvojenih zarezima ili ALL EXCEPT lista korisnika razdvojena zarezima. "od-id" takođe omogućava specifikovanje grupe korišćenjem GROUP ili ALL EXCEPT GROUP. Ove opcije (GROUP) podrazumevaju i navođenje grupa razdvojenih zarezom.

Akcije mogu biti nešto od sledećeg: DENY - onemogući pristup navedenim korisnicima ili grupama, NOPASS - omogući pristup navedenim korisnicima i grupama bez lozinke i OWNPASS - omogući pristup nakon navođenja sopstvene lozinke (umesto root lozinke).

Primer:

Code: Select all

	# korisnici broker, andersen i spaceback imaju mogućnost pokretanja
	# bilo koje komande sa admin ovlašćenjima unošenjem svoje lozinke
	root:broker,andersen,spaceback:OWNPASS
 
 	# Bilo ko drugi može pozivati komande sa admin ovlašćenjima samo ako 
	# je član grupe wheel.
    root:ALL EXCEPT GROUP wheel:DENY

	# Korisnik drummer može pokretati naredbe kao korisnik rade bez lozinke
    drummer:rade:NOPASS
    rade:drummer:NOPASS


Reference:
http://alien.slackbook.org/dokuwiki/dok ... x:admin#su
http://www.bigbiz.com/cgi-bin/manpage?5+suauth

sudo

Sudo nam omogućava fino podešavanje ko ima pristup čemu i sa kojom lozinkom. Podrazumevano podešavanje podrazumeva da korisnik može pokrenuti program sa admin ovlašćenjima unosom svoje lozinke. Kao i kod "su" ovo je moguće promeniti na način da se ne zahteva lozinka, ili da se zahteva root lozinka. Sudo takođe omogućava i navođenje komandi koje korisnik ili grupa korisnika mogu pokretati korišćenjem komande. U podrazumevanoj instalaciji Slacka sudo nije podešen i biće potrebno dodatno podešavanje (sledi kratko uputstvo).

Podešavanja za sudo se nalaze u /etc/sudoers. Ovaj fajl je preporučeno ne uređivati direktno, već preko komande visudo. Visudo vrši i proveru podešavanja, tako da će vas obavestiti o greškama o sintaksi. Jedini problem za neiskusnije *nix/linuks korisnike je u tome što ovaj alat podrazumeva poznavanje vi editora. Visudo čita EDITOR i VISUAL varijable iz okruženja. Ukoliko ove varijable nisu postavljene, visudo pokreće /bin/vi. Ako kod vas nije podešen podrazumevan vizualni editor ili ukoliko želite da ovo podešavanje preinačite pokrenite visudo sa:

Code: Select all

VISUAL=editor /usr/sbin/visudo
Gde je "editor" editor koji želite da koristite. Recimo, za novajlije se preporučije nano:

Code: Select all

VISUAL=nano /usr/sbin/visudo
/etc/sudoers ima mnogo kompleksniju sintaksu od /etc/suath. Koristi se EBNF notacija (symbol ::= definition | alternate1 | alternate2 ...). To znači da /etc/sudoers može postati prilično kompleksan.

Generalno osnovna sintaksa (postoje i neke dodatne opcije) unosa /etc/sudoers izgleda ovako:

Code: Select all

User_Spec ::= User_List Host_List '=' Cmnd_Spec_List \
              (':' Host_List '=' Cmnd_Spec_List)*

Cmnd_Spec_List ::= Cmnd_Spec |
                   Cmnd_Spec ',' Cmnd_Spec_List

Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Tag_Spec* Cmnd

Runas_Spec ::= '(' Runas_List? (':' Runas_List)? ')'

SELinux_Spec ::= ('ROLE=role' | 'TYPE=type')

Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' |
              'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' |
              'LOG_OUTPUT:' | 'NOLOG_OUTPUT:')
Jasno? Nije? Nije ni meni. Mnogo bolje se vidi iz primera. ;)

Izvučeno iz Slackovog podrazumevanog /etc/sudoers:

Code: Select all

# Specifikacija za korisnika root 
root    ALL=(ALL) ALL

# Korisnici koji su članovi grupe wheel mogu izvršiti svaku komandu
%wheel ALL=(ALL) ALL

# Korisnici koji su članovi grupe wheel mogu izvršiti svaku komandu bez lozinke
%wheel ALL=(ALL) NOPASSWD: ALL

# Korisnici koji su članovi grupe sudo mogu izvršiti svaku komandu
%sudo	ALL=(ALL) ALL
Dodatni (prilagođeni) primeri iz man sudoers:

Code: Select all

# Korisnik qki može pokrenuti komande ls i kill kao korisnik operator, 
# tj. sudo -u operator /bin/ls
qki	ALL=(operator) /bin/ls, /bin/kill

# Korisnik drummer može pokrenuti /bin/ls kao korisnik operator, a /bin/kill
# kao korisnik root
drummer	ALL=(operator) /bin/ls, (root) /bin/kill  

# Korisnik drummer može pokrenuti ls kao operator, ali kill kao root
drummer	ALL=(operator:operator) /bin/ls, (root) /bin/kill  

# Korisnik p može pokrenuti komandu minicom kao da je član grupe minicom
# U ovom slučaju je korisnik još uvek p.
p ALL=(:dialer) /usr/bin/minicom

# korisnik broker može pokrenuti /bin/ls i /sbin/blkid bez unošenja lozinke
broker ALL= NOPASSWD: /bin/ls, /sbin/blkid

# korisnik broker može pokrenuti /bin/ls bez lozinke, ali za /sbin/blkid će
# morati da unese lozinku
broker ALL= NOPASSWD: /bin/ls, PASSWD: /sbin/blkid

Jedan kompleksniji (nekomentarisan) primer iz "man sudoers" koji pokazuje mogućnosti sudo-a za fino podešavanje prava pristupa:

Code: Select all

# Run X applications through sudo; HOME is used to find the
# .Xauthority file.  Note that other programs use HOME to find
# configuration files and this may lead to privilege escalation!
Defaults env_keep += "DISPLAY HOME"

# User alias specification
User_Alias     FULLTIMERS = millert, mikef, dowdy
User_Alias     PARTTIMERS = bostley, jwfox, crawl
User_Alias     WEBMASTERS = will, wendy, wim

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

# 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/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
                       /usr/sbin/restore, /usr/sbin/rrestore
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
Cmnd_Alias     REBOOT = /usr/sbin/reboot
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     PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

# Override built-in defaults
Defaults               syslog=auth
Defaults>root          !set_logname
Defaults:FULLTIMERS    !lecture
Defaults:millert       !authenticate
Defaults@SERVERS       log_year, logfile=/var/log/sudo.log
Defaults!PAGERS        noexec

root           ALL = (ALL) ALL
%wheel         ALL = (ALL) ALL

FULLTIMERS     ALL = NOPASSWD: ALL
PARTTIMERS     ALL = ALL

jack           CSNETS = ALL
lisa           CUNETS = ALL
operator       ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
               sudoedit /etc/printcap, /usr/oper/bin/
joe            ALL = /usr/bin/su operator
pete           HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
%opers         ALL = (: ADMINGRP) /usr/sbin/
bob            SPARC = (OP) ALL : SGI = (OP) ALL
jim            +biglab = ALL
+secretaries   ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
fred           ALL = (DB) NOPASSWD: ALL
john           ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
jen            ALL, !SERVERS = ALL
jill           SERVERS = /usr/bin/, !SU, !SHELLS
steve          CSNETS = (operator) /usr/local/op_commands/
matt           valkyrie = KILL
WEBMASTERS     www = (www) ALL, (root) /usr/bin/su www
ALL            CDROM = NOPASSWD: /sbin/umount /CDROM,\
               /sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
Reference:
http://linux.die.net/man/5/sudoers
/etc/sudoers

Mali eksperiment

Sad kad smo prešli osnove možemo uraditi nešto poput ovog:

Code: Select all

su -
groupadd sudo

echo "root:ALL:DENY" > /etc/suauth
chmod 600 /etc/suath

gpasswd -a bocke sudo

cat << EOF > /etc/sudoers
# Dozvole za korisnika root
root ALL=(ALL) ALL

# Omogući korisnicima u grupi sudo da pokreću sve komande 
%sudo ALL=(ALL) ALL

# Omogući korisniku bocke da pokreće gslapt kao root bez lozinke
bocke ALL=(root) NOPASSWD: /usr/sbin/gslapt 
EOF
Prvo dodajemo grupu sudo (groupadd sudo). Ovoj grupi će biti dozvoljeno pokretanje komandi sa sudo.
Zatim kreiramo /etc/suauth sa podešavanjima koji onemogućavaju su, zatim podešavamo dozvole za njega.

Nakon toga dodajemo korisnika bocke u grupu sudo

Zatim kreiramo /etc/sudoers sa sledećim dozvolama:
  • Članovi grupe sudo imaju pravo pokretanja svih komandi korišćenjem sudo
  • Korisniku bocke dajemo mogućnost pokretanja gslapt bez unošenja lozinke (napr: sudo gslapt neće pitati za lozinku)
Last edited by bocke on 09 Jan 2012, 22:02, edited 1 time in total.



Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 Jan 2012, 22:05


Btw, za sysadmine preporučujem da bace pogled na opcije #includedir i NOEXEC (man sudoers).



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 2121
Joined: 08 Jun 2010, 13:28
Location: Centralna Srbija Kraljevo
Contact:

Post Napisano: 10 Jan 2012, 05:01


bocke wrote: Zato što se gui nalazi u posebnom paketu. :)
gslapt možeš skinuti odavde:

za 32-bitni Slack:
http://software.jaos.org/slackpacks/13" onclick="window.open(this.href);return false;. ... i386-1.tgz
Rešeno, Slackware-ov "Synaptic" :)
launcher.jpg
launcher.jpg (5.16 KiB) Viewed 4107 times
Mada sam većinu paketa instalirao ranije uključujući i pokazani LibreOffice 3.4.4. ;)

Za pokretanje najbolje napraviti launcher
to je to evo ga :).jpg
Last edited by Brok on 10 Jan 2012, 05:06, edited 1 time in total.
Registrovani Linux korisnik #487729
Upostovano sa Linuks Operativnog Sistema



Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 12 Jan 2012, 00:23


Podešavanje vremena

Vremenska zona

Vremenska zona se podešava pri samoj instalaciji Slacka, ali ako je potrebno može se naknadno podesiti korišćenjem skripta timeconfig.

Code: Select all

su -c "timeconfig"
Vremenska zona se takođe može podesiti preko TZ varijable okruženja. Za više informacija, pogledajte sledeći link (eng.):
http://www.cyberciti.biz/faq/linux-unix ... -variable/

Provera trenutnog vremena

Trenutno vreme i datum možemo pogledati komandom date. Da bismo pogledali vreme "hardverskog" sata (internog sata na matičnoj ploči računara), koristimo komandu "hwclock" ili "hwclock -r".

Provera trenutnog (sistemskog) vremena i datuma:

Code: Select all

date
Provera trenutnog vremena i datuma u  hardverskom satu:

Code: Select all

/sbin/hwclock
Podešavanje vremena i datuma

Komandne date i hwclock koristimo i za podešavanje vremena.

Podešavanje sistemskog vremena i datuma

Code: Select all

date -s "STRING"
Gde je STRING, skup znakova koji opisuju vreme ili datum. Za više informacija je najbolje da pogledate info dokumentaciju:

Code: Select all

info coreutils date
Nekoliko primera:

Code: Select all

date -s "11 jan 2012 23:55"
date -s "11 jan 2012" # ovo će resetovati sat na 00:00
date -s "2012-01-11" # - || -
date -s 20120111      # - || -
date -s "11 jan"         # - || -
date -s "23:55"
date -s "23:55:00"
date -s 2355
Da bi ovo vreme ostalo između reboot-a, potrebno ga je upisati u hardverski sat:

Code: Select all

hwclock -w
Podešavanje hardverskog sata

Hardverski sat se podešava korišćenjem komande hwclock (opcije --set i --date). Argumenti su isti kao za komandu date.

Code: Select all

hwclock --set --date="2012-1-11 00:15"
Takođe je moguće sinhronizovati sistemski sat na osnovu vremena iz hardverskog sata:

Code: Select all

hwclock -s
Ostalo

Ovde fali diskusija localtime vs UTC, ali to ćemo obraditi drugom prilikom. ;) Takođe bi bilo dobro reči koju i o ntp (sinhronizacija sistemskog vremena sa "time" serverima na internetu).
Last edited by bocke on 12 Jan 2012, 00:35, edited 1 time in total.



Administrator
Administrator
offline
User avatar

Posts: 1335
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 15 Jun 2012, 00:44


Nervira vas što ste morali u terminalu stalno upisivati "setxkbmap hr" za dobiti hrvatsku tastaturu??

E pa vašim mukama došao je kraj :D
Dakle, samo kopirajte /usr/share/X11/xorg.conf.d/90-keyboard-layout.conf u /etc/X11/xorg.conf.d/ i u njemu promijenite dio Option "XkbLayout" "us" u Option "XkbLayout" "hr" i to je to :)
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 15 Jun 2012, 01:48


Nešto slično, samo malo detaljnije je opisano ranije u temi. ;)



Administrator
Administrator
offline
User avatar

Posts: 1335
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 15 Jun 2012, 01:49


nema frke, možeš i obrisat taj post ;)
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Administrator
Administrator
offline
User avatar

Posts: 4128
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 15 Jun 2012, 01:58


Ma jok, nismo babaroge. :) Jednom napišeš ono što je već bilo, drugi put ćeš napisati nešto što nije. Ništa strašno, ali je dobro napomenuti za nove čitaoce. ;)


Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests