Linux: podpisy RPM balíčků 
pro vygenerování páru klíče
$ gpg --gen-key
$ gpg --list-keys
$ gpg --export -a xxx' > custom_RPM_package_key.txt


vlastní podpis balíčku během procesu tvorby balíčku
$ rpm -ba --sign package-version.spec

kontrola signatury
$ rpm --checksig package-version.i386.rpm

opětovné podepsání
$ rpm --resign package-version.i386.rpm

podepsání po vytvoření balíčku, dodatečně
$ rpm --addsign package-version.i386.rpm

import klíče vlastního veřejného klíče do RPM
rpm --import RPM-GPG-KEY

prohledání RPM databáze na obsažené klíče
$ rpm -qa gpg-pubkey*

zobrazení detailů pro imporotvané RPM klíče
$ rpm -qi gpg-pubkey-db42a60e

vyjmutí/zneplatnění klíče
$ rpm -e gpg-pubkey-keyhash

[ add comment ] ( 5 views )   |  [ 0 trackbacks ]   |  permalink
Linux: vytváření a podepisování balíčků 
spec file:
soubor, který popisuje jakým způsobem bude balík generován a co bude obsahovat. spec file je návod pro příkaz rpmbuild jak a s jakými parametry zkompilovat zdrojový kód, kam provést instalaci a jaké akce je nutné provést před a po instalaci balíku. spec soubor obsahuje popis balíku, makra, soupis souborů a příkazy shellu.

tags:
pomocí tagů se definují vlastnosti balíku jak pro kompilaci, tak i pro instalaci a zařazení do rpm databáze. úplný tag se skládá z klíčového slova a hodnoty tagu <tag>:<hodnota>. popisy významu tagů jsou uvedeny zde: http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html

Name:
Release:
Summary:
Vendor:
Copyright:
Distribution:
Icon:
Vendor:
URL:
Group:
Packager:
Provides:
Requires:
Conflicts:
Serial:
AutoReqProv:
ExcludeArch:
ExclusiveArch:
ExcludeOS:
ExclusiveOS:
Source:
Nosource:
Patch:

# vytvoření patche pro zdrojový kód. patche jsou stejně jako zdrojový tgzumístěny v adresáři ~/rpmbuild/SOURCES. vytvoření patche se provede použitím příkazu diff:
# diff -Naur sudosh2-1.0.3.vanilla/ sudosh2-1.0.3/ > \
# ~/rpmbuild/SOURCES/sudosh2-1.0.3.patch


NoPatch:
Prefix:
BuildRoot:
%description
%changelog

*Prefix = prefix tag je použit pokud je vytvářen relokovatelný balík, tj balík který lze instalovat do specifického adresáře od adresáře systémového kořene

*Buildroot = adresář kam je balík instalován během procesu vytváření balíku, například v případě, kdy by instalace binárek balíku při vytváření mohla kolidovat s funkcionalitou systému - například běžící SMTP a SMTP pro který se balík právě vytváří

*Requires tag může přesněji specifikovat verzi jiného balíku, na kterém je náš balík závislý (například Requires: bar >= 2.7-4, baz = 2.1-1)

makra:
makra zjednoduššují proces tvorby balíku a jsou uvozeny znakem %. při procházením soboru spec příkazem rpmbuild makra expandují do sekvencí příkazů které provádí specifické činnosti. tyto činnosti mohou být například získání zdrojového kódu z url (%setup), rozbalení zdrojového kódu (%setup) a opatchvonání zdrojového kódu. makra rovněž zvyšují čitelnost spec souboru a logicky jej rozdělují do jednotlivých sekcí.

<----------- část spec souboru definující jak se bude zdrojový kód kompilovat ---------->
%prep
<commands>
%setup
%patch
%build
<configure>
%install
<make install>
%clean
<make clean>
<----------- část, která se provádí při vlastní instalaci balíku na cílovém systému ---------->
%pre
<commands ie. check the system environment>
%post
<commands ie. chkconfig --level 3 mydaemon on>
%verifyscript
<commands ie. service mydaemon status>
%files
<soubory, které balík obsahuje>
elegantní cestou jak připravit seznam souborů je použití
adresáře výhradně určeného pro daný balík
(použití %topdir) a pomocí hvězdičkové konvence
zahrnutí všech souborů, které se vyskytují v daném adresáři

%files -f %{name}.lang
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog NEWS README TODO
%{_bindir}/*
%{_libdir}/*.so.*
%{_datadir}/%{name}
%{_mandir}/man8/*

%preun
<commands ie. service mydaemon stop; chkconfig --level 3 mydaemon off>
%postun
<commands ie. rm -rf /var/log/mydaemon.log>


některá makra %scripts mají možnost ovlivnit jejich chování pomocí přepínačů, popis je k dispozici zde: http://www.rpm.org/max-rpm/s1-rpm-inside-macros.html
v rámci balíku je jednou z hlavních sekcí sekce definující soubory začleněné v balíku. sekce %files je zdokumentována zde: http://www.rpm.org/max-rpm/s1-rpm-insid ... tives.html

podmínky:
v rámci spec souboru je rovněž možné definovat podmínky pro zpracování některých částí kódu pomocí %ifarch, %ifnarch, %ifos, %ifnos, %else, %endif

proměnné:
všechny proměnné prostředí uvedené níže mohou být použity ve spec souboru během procesu tvorby balíku.hodnoty proměnných jsou nastaveny automaticky během procesu tvorby balíku. http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html

RPM_SOURCE_DIR, RPM_BUILD_DIR, RPM_DOC_DIR, RPM_OPT_FLAGS,
RPM_ARCH, RPM_OS, RPM_ROOT_DIR, RPM_BUILD_ROOT, RPM_PACKAGE_NAME
RPM_PACKAGE_VERSION, RPM_PACKAGE_RELEASE

dokumentace pro vývojáře:
/usr/share/doc/rpm-4.4.2.3/

vlastní prostředí:
pokud je balík překládán pod účtem běžného uživatele pak tento nemá možnost zápisu do systémem definovaných adresářů /usr/src/redhat/{BUILD,RPMS,S{OURCE,PEC,RPM}S}. proto je nutné v domovském adresáři uživatele definovat vlastní strukturu odpovídající struktuře vyžadované příkazem rpmbuild. tato adresářová struktura je definována v souboru ~/.rpmmacros, který je čten při každém spuštění příkazem rpmbuild.

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,S{OURCE,PEC,RPM}S}
$ cat ~/.rpmmacros
                        
# RPM directory macros
%_topdir %(echo "$HOME")/rpmbuild
%_builddir %_topdir/BUILD
%_rpmdir %_topdir/RPMS
%_sourcedir %_topdir/SOURCES
%_specdir %_topdir/SPECS
%_srcrpmdir %_topdir/SRPMS
%_buildroot %_topdir/%{name}-root

# Macros mimicking autoconf variables
%_sysconfdir %_buildroot/etc
%_prefix usr/local
%_exec_prefix %_prefix
%_bindir %_buildroot/exec_prefix/bin
%_lib %_buildroot/lib (lib64 on 64bit systems)
%_libdir %_buildroot/%_exec_prefix/%{_lib}
%_libexecdir %_buildroot/%_exec_prefix/libexec
%_sbindir %_buildroot/%_exec_prefix/sbin
%_sharedstatedir %_buildroot/var/lib
%_datadir %_buildroot/%_prefix/share
%_includedir %_buildroot/%_prefix/include
%_oldincludedir %_buildroot/usr/include
%_infodir %_buildroot/usr/share/info
%_mandir %_buildroot/usr/local/share/man
%_localstatedir %_buildroot/var
%_initddir %_buildroot/%_sysconfdir/rc.d/init.d

# GPG signature related
%_signature gpg
%_gpg_name xxx xxx


# $ rpmbuild -ba [ --sign ] [ --buildroot ] DIR some.spec
#
# [ --buildroot ] overrides local .rpmmacros
#

# create a patch if necessary. patches should be placed in
# ~/rpmbuild/SOURCES. construct patch using diff as in example.
# diff -Naur sudosh2-1.0.3.vanilla/ sudosh2-1.0.3/ > \
# ~/rpmbuild/SOURCES/sudosh2-1.0.3.patch

Summary: sw package for Linux
Name: sw
Requires: libgcc
Conflicts: xxx
Packager: xxx@xxx.com
License: Open Software License 3.0 (OSL3.0)
Version: 1.0.3
Release: 0
Vendor: SourceForge
BuildArch: x86_64
Group: Applications/System
Source0: sw-1.0.3.tar.gz
Patch0: sw-1.0.3.patch
BuildRoot: %_buildroot
#AutoReqProv: no
URL: http:\\alchy.org

%description
popis k balíku na více řádků

%prep

%setup

%patch0 -p1

# %build
./configure --with-defshell=/bin/bash \
--prefix=%_buildroot \
--bindir=%_bindir --sysconfdir=%_sysconfdir --mandir=%_mandir
make

%install
make install
make clean

%pre

%preun

%postun

%changelog
* Tue Apr 15 2010 xxx xxx
- Initial release


[ add comment ] ( 3 views )   |  [ 0 trackbacks ]   |  permalink
The object of this expedition is to see if we can find any traces of the last expedition 


[ add comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink
Python scripts, unique occurentce and set 
# counts number of unique occurences of the cr terminated sting
# in a file (python3)

import os

unique_ip = set()
list_ip = []

myFile = "d:\\tmp\ip_test.txt"

if not ( os.path.isfile( myFile ) ):
print("File does not exist")
exit

file = open( myFile, 'r')
for line in file.readlines():
unique_ip.add( line )
list_ip.append( line )
file.close()

for item in unique_ip:
print( item.rstrip() , ";", list_ip.count( item ) )

# alternative:
# print ([(item, list_ip.count(item)) for item in unique_ip])



[ add comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink
klogd: The Kernel Logging Dæmon 
Linux Journal article about kernel logging. The article explains explains /proc/kmsg, printk, sys_syslog and other interesting kernel logging how-to.

klogd reads kernel log messages and helps process and send those messages to the appropriate files, sockets or users. This month we discuss memory address resolution and how to modify klogd's default behavior using command-line switches.


http://www.linuxjournal.com/article/4058?page=0,0


[ add comment ] ( 5 views )   |  [ 0 trackbacks ]   |  permalink
Izer - plzenska mluva  


[ add comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink
Digital Certificates 
https://www.startssl.com/ is offering free certificates for domain or email. This CA is trusted by Microsoft systems by default. There is a good comment on that in discussion about this service at http://www.istartedsomething.com/200910 ... y-windows/

Are we really to be happy about this, or is this a double-edge sword? In mean from security perspectief. If its so easy now to obtain a free certificate, I assume dubious charachters on the Net will also find it easy to obtain one forthwith.

Given that such company like StartCom Ltd is doing it for free, I wonder how much energy they’ll put in verifying their registrations. I am afraid we may face an avalache of bogus SSL/TLS encrypted sites trusted by default by Windows. This will end up breaking the TSL system.

Personally, I don’t share your enthusiasm about this. I am pissed naturally that the big-wigs like Verisign etc are charging heaven and HELL for a bit of Bits, the Internet community should start a prostest against these known CA’s to reduce their charges. I still don’t see any reason why a certificate renewal should cost about $5,000.00 with verisign. They can charge Banks and Wall Street that kind of amount, but they should also have an “almost” free service for the John Doe’s of this world.


[ add comment ] ( 4 views )   |  [ 0 trackbacks ]   |  permalink
Linux: EPEL 
Extra Packages for Enterprise Linux (EPEL) is a volunteer-based community effort from the Fedora project to create a repository of high-quality add-on packages for Red Hat Enterprise (RHEL) and its compatible spinoffs such as CentOS or Scientific Linux. Fedora is the upstream of RHEL and add-on packages for EPEL are sourced from the Fedora repository primarily and built against RHEL.


http://fedoraproject.org/wiki/EPEL

Install appropriate release:
http://download.fedora.redhat.com/pub/e ... noarch.rpm

[ add comment ] ( 5 views )   |  [ 0 trackbacks ]   |  permalink
LINUX: Low level BIOS information, biosdecode and dmidecode 
biosdecode is a command line utility to parses the BIOS memory and prints information about all structures (or entry points) it knows of.

# biosdecode
ACPI 2.0 present.
OEM Identifier: INTEL
RSD Table 32-bit Address: 0x9FB39038
XSD Table 64-bit Address: 0x000000009FB39120
SMBIOS 2.5 present.
Structure Table Length: 2670 bytes
Structure Table Address: 0x9FA32000
Number Of Structures: 73
Maximum Structure Size: 115 bytes
PNP BIOS 1.0 present.
Event Notification: Not Supported
Real Mode 16-bit Code Address: F000:CA66
Real Mode 16-bit Data Address: F000:0000
16-bit Protected Mode Code Address: 0x000FCA8E
16-bit Protected Mode Data Address: 0x000F0000
PCI Interrupt Routing 1.0 present.
Router ID: 00:1f.0
Exclusive IRQs: None
Compatible Router: 8086:122e
Slot Entry 1: ID 00:00, on-board
Slot Entry 2: ID 00:02, on-board
Slot Entry 3: ID 00:03, on-board
Slot Entry 4: ID 00:04, on-board



The DMI table doesn’t only describe what the system is currently made of, it also can report the possible evolutions such as the fastest supported CPU or the maximal amount of memory supported.

# dmidecode -t processor 
# dmidecode 2.10
SMBIOS 2.5 present.

Handle 0x0032, DMI type 4, 40 bytes
Processor Information
Socket Designation: CPU1
Type: Central Processor
Family: Xeon
Manufacturer: Intel(R) Corporation
ID: 7A 06 01 00 FF FB EB BF
Signature: Type 0, Family 6, Model 23, Stepping 10
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
...

# dmidecode -t memory



[ add comment ] ( 2 views )   |  [ 0 trackbacks ]   |  permalink
GPG cheatsheet 
Generate gey, info and export/import:

gpg --gen-key
gpg --list-keys
gpg --export "Test 1 <test1@test1>" -a
gpg --import public_key_pg2.key


Encrypt/decrypt secret message:

gpg -a --encrypt secret.txt
gpg --decrypt secret.txt.pgp


Encrypt and sign/Decrypt message:

gpg -s -a secret.txt
gpg --verify secret.txt.asc


Public key server store:
http://keyserver.veridis.com:11371/


[ add comment ] ( 2 views )   |  [ 0 trackbacks ]   |  permalink

<<First <Back | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | Next> Last>>