Command Line

Linux parancssor. Ismert és kevésbé ismert parancsok. Bash tippek, trükkök. Rövid scriptek.

Címkék

&& (1) A4 (1) ac3 (1) ack (1) acpi (2) AES (1) afzcamCreator (1) agrep (1) aha (1) ajánló (1) alias (2) alkönyvtár (4) android (1) animgif (2) apropos (1) audio (2) avi (6) awk (1) backup (5) badblocks (1) basename (3) bash (20) bash completion (1) battery (1) bc (1) blkid (1) boot (3) brew (1) brute force (1) bug (1) bzip2 (2) cab (1) cal (1) calibre (4) calibredb (1) camera (1) capability (1) cat (2) cd (4) cdialog (2) checkinstall (2) cikkajánló (2) ciklus (1) címke (2) cksum (1) clipboard (1) cmdtools (1) color (1) colordiff (1) column (1) commandlinefu (1) convert (8) corel aftershot pro (1) cp (1) cr (1) crop (1) csplit (1) curl (1) date (1) dátum (1) dd (8) ddrescue (1) deb (1) decimális (1) default value (1) defrag (1) df (1) dia (1) dialog (2) diff (6) digitális fénykép (14) dircolors (1) dirty cow (1) dlna (1) dmidecode (1) dng (2) dos (2) dos2unix (1) dropbear (1) dropbox (1) dt3 (1) du (3) dump (2) dv (1) dvd (10) dvdauthor (2) dvd rw tools (1) e2freefrag (1) e2fsprogs (4) ebook (2) editor (2) eh (1) eject (1) emacs (4) encfs (2) energiagazdálkodás (1) enfuse (2) Enigma (1) epub (2) ESC (1) espeak (1) exa (1) exe (1) exif (6) exiftool (12) exit (1) ext2 (1) ext3 (1) ext4 (1) f3 (1) fájl (1) fallocate (1) fdisk (3) fdupes (1) feh (2) felhő (1) felirat (1) ffmpeg (12) filefrag (1) find (6) for (3) format (1) fortune (1) fred weinhaus (1) fuck (1) fuse (4) fuse-lgefs (1) fzf (1) gdatafs (1) genisoimage (3) getcap (1) getfacl (1) getmail (1) ghostscript (1) gif (1) gifsicle (1) glances (1) gnumeric (1) gnuplot (1) gömb (1) google (1) google drive (1) gotty (1) GPAC (1) gparted (2) gpg (3) gpg-zip (1) gplaycli (1) gps (3) gpsbabel (1) graphviz (1) grep (3) grive (1) grive2 (1) groff (1) growisofs (1) gs (1) gtk (1) gunzip (1) gzip (2) h264 (2) hálózat (1) handbrake (1) hangosítás (1) hardver (1) hard link (1) hash (2) hashcat (1) haszontalan (1) hdd (5) head (1) helyettesítés (1) hexadecimális (2) hibernate (1) homebrew (2) hp (1) hp-levels (1) html (1) http (1) hugin (1) icewm (1) icewm-light (1) identify (1) if (1) ifconfig (2) ifs (1) igo (1) imagemagick (12) imap (1) index (1) install (1) installer (1) iotop (1) iperf (1) iso (3) java (2) jelszó (6) jhead (1) jnettop (2) jogosultság (1) jpeg (4) jpg (2) jre (1) kapcsos zárójel (1) karakterkódolás (1) kdenlive (1) képméretezés (1) képnézegető (1) kernel (1) kétmenetes (1) keystore (1) keytool (1) kiegészítés (1) kindle (1) kódolás (1) könyv (1) kriptográfia (1) k x (2) lbzip2 (1) less (5) Levenshtein (1) lf (1) lg (1) linux (2) linuxbrew (1) linuxvilág (1) lm sensors (1) ln (1) log (1) losetup (1) ls (4) lsof (1) LS COLORS (1) lzw (1) mac (1) macos (2) mac address (2) mad (1) mail (1) mailbox (1) man (2) markdown (1) matroska (4) md5 (1) md5sum (2) mediainfo (1) melt (1) mencoder (5) merevlemez (5) meta (1) mikmod (1) minidlna (1) mjpegtools (1) mkv (6) mkvmerge (3) mkvtoolnix (4) mlt (1) mms (1) mogrify (1) monitor (1) montage (1) mount (3) mp3 (2) mp4 (1) MP4Box (1) mpg123 (1) mpg321 (1) mplayer (6) mplex (1) named (1) naptár (1) ncurses (2) nethogs (1) ng (1) nice (1) niceload (1) nl (1) nosztalgia (1) ntfsresize (1) nyomtató (1) od (2) ogg (1) oktális (1) openssh (1) openwrt (1) óra (1) panoráma (1) parallel (3) parancsbehelyettesítés (1) parted (1) pass (1) paste (1) patch (2) pbcopy (1) pbpaste (1) pbzip2 (3) pdf (8) pdfcrack (1) pdfjam (1) pdfnup (1) pdftk (2) pendrive (2) pentax (6) perl (1) pgp (1) pgrep (1) PhotoRec (1) pi (1) picasa (1) picasaweb (1) pid (1) pigz (1) pipe (7) pktriggercord (1) play store (1) pm-utils (1) pop3 (1) popd (2) port (1) process (4) pushd (2) pv (3) pwgen (1) python (1) qimport (1) qpd (1) qr (2) qrencode (2) quotedprintable (1) random (1) randr (1) rdfind (1) readlink (1) recode (2) regiókód (1) reguláris kifejezés (2) rejtjelezés (2) renice (1) rfkill (1) rip (1) rm (1) rpm (5) rsa (1) rsync (2) sane (1) scanimage (1) screenshot (1) script (1) sebesség (1) sed (2) seq (4) setcap (1) setfacl (1) sha256sum (1) sha512sum (1) shellshock (1) shred (2) SIGINT (1) smp (3) sorszámozás (1) sort (2) sourse-highlight (1) space (1) sparse (1) split (2) ssconvert (2) ssd (1) ssh (3) sshfs (1) sshtron (1) startx (1) stat (1) stopper (1) suspend (1) symlink (1) sync (1) sysrq (1) systemd-analyze (1) systems (1) számológép (1) szenzor (1) szerver (1) szimbolikus link (1) szimbolikus lunk (1) szín (1) szkennelés (1) tail (2) tar (3) tee (3) text (2) thefuck (1) tiff (1) time (1) timeout (1) tinta (1) titkosítás (3) tömörítés (4) top (2) töredezettségmentesítés (1) touch (2) tput (1) tr (1) transcode (5) trap (1) TRE (1) tree (2) tutorial (1) ufraw (2) ufraw batch (1) újság (1) unbuffer (1) uniq (1) unix (2) upower (1) urandom (1) user (1) utf 8 (1) változó (2) VBoxManage (1) véletlenszám (2) verem (1) vertical video syndrome (1) VHS (1) vi (4) vid.stab (1) video (2) vim (1) virtualbox (1) vob (1) vobcopy (1) wake on lan (1) watch (1) webkamera (1) webszerver (2) wget (1) which (2) whitespace (2) who (1) wifi (1) windows (3) woeusb (1) wol (1) X (1) x264 (1) xargs (4) xbacklight (1) xclip (2) Xdialog (1) xml (1) xmllint (1) xrandr (2) xxd (3) yes (1) youtube (1) youtube-dl (1) zárójeles (1) zbar (1) zene (1) zenity (2) zip (1) Címkefelhő

getcap + setcap

2014.08.23. 10:00 | sala | Szólj hozzá!

A fényképezőgépvezérlő programomban ( pkTriggerCord ) elég alacsony szinten kommunikálok a fényképezőgéppel, ioctl és scsi_generic segítségével lényegében direkt módon érem el a device fájlt ( pl. /dev/sdc ). Egy ideje feltűnt, hogy hiába tűnik úgy hogy van írási és olvasási jogom is /dev/sdc-hez, mégis csak akkor működik a program ha rootként futtatom.

Némi utánaolvasás után rájöttem (valahogy ez eddig nekem kimaradt), hogy egy ideje Linuxban is igen részletesen lehet szabályozni, hogy egy process milyen jogokkal bír, vagyis ha csak egyetlen speciális jogra van szükségünk, akkor nem kell root-ként ( vagy setuid rootként ) futtatni a programot, elég ezt az egyetlen jogot megadni. A jogok listáját itt nézhetjük meg.

Mint kiderült, nekem a CAP_SYS_RAWIO jog kell:

$ getcap pktriggercord-cli
$ setcap CAP_SYS_RAWIO+eip pktriggercord-cli
$ getcap pktriggercord-cli
pktriggercord-cli = cap_sys_rawio+eip

Vagyis először lekérdezve látszik, hogy a programnak nincs semmilyen különleges joga, majd miután beállítjuk a CAP_SYS_RAWIO-t a lekérdezés után már látszik a jog. Ezután már nem kell rootként futtatnom a programomat.

1. megjegyzés: A legtöbb helyen azt írják, a CAP_SYS_RAWIO olyan erős jogosultság, hogy ennyi erővel akár rootként is lehetne futtatni a programot, az sem lenne sokkal nagyobb biztonsági rés.

2. megjegyzés: Elég alattomos mellékhatás, hogy nem igazán látszik, hogy egy programnak valami különleges jogosultsága van. A setuid bitet mondjuk sokan felismerik, de az alap ls -l nem ír ki semmit amiből látszik a különleges jog. Szerencsére a színes ls piros színnel jelzi ezt.

Címkék: ls capability setcap getcap

A bejegyzés trackback címe:

https://commandline.blog.hu/api/trackback/id/tr226621147

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.