Psycho Mantys wrote: > Depois de algum tempo parado e uma experiência horrível tentando > compilar java com o gcj, estou aqui mandando mais um slackbuild feito > por minha pessoa. > > Dessa vez e o do snoopy-logger. > O snoopy logger e uma forma de logar o que cada usuario digitou de > verdade no terminal. > Em detalhes, snoopy logger e um wrapper das chamadas a funcao execve() > da biblioteca do sistema. Ele funciona mais ou menos como a libsafe: e > carregado antes do que a funcão, e toda vez que alguem chama a funçao, > eh a funcao do snoopy logger q eh chamada e nao a do sistema. O snoopy > loga a chamada via syslog, e passa para o sistema normalmente. Entao > em /var/log/secure teremos todos os comandos digitados pelos usuarios. > > ex. de log: > Jun 11 10:01:09 casaDaMae snoopy[15918]: [joaoLimao, uid:0 sid:9132]: > sh snoopy-logger.SlackBuild > Jun 11 10:01:38 casaDaMae snoopy[16072]: [joaoLimao, uid:0 sid:9132]: > rm -rf / > Jun 11 10:02:12 casaDaMae snoopy[16226]: [joaoLimao, uid:0 sid:9132]: > sh meuVirusMalzao.sh > Jun 11 10:09:17 casaDaMae snoopy[16250]: [joaoLimao, uid:0 sid:9132]: > /bin/ls -F -b -T 0 --color=auto -l > > Um apelo, nao usem para xeretar a vida de usuarios..... Olha a maldade... > > bom, aproveitem :D. > ###########################################################################################################################
Meu povo, foi mal!!! Tinha um bug relacionado a instalação. Eu colocava uma informaçao de instalaçao em um arquivo errado. Tb tirei uma informação de debug. A versao correta e totalmente estavel e essa. Desculpa o erro!!!! --~--~---------~--~----~------------~-------~--~----~ GUS-BR - Grupo de Usuários de Slackware Brasil http://www.slackwarebrasil.org/ http://groups.google.com/group/slack-users-br -~----------~----~----~----~------~----~------~--~---
#!/bin/bash # Heavily based on the Slackware 12.0 SlackBuild and generic build of # http://slack.sarava.org, thanks for all # # Script developer: Psycho ( Psycho.mantys(,a.t.)gmail.com ) # # If you have a sugest, send me a e-mail. I waiting new flags for archs. # And also reports of errors or bugs, so that i can happily correct :D # #------------------------------------------------------------------------------ # # samples: # # > sh snoopy-logger.SlackBuild # > ls -1d /tmp/snoopy-1.x-i686-1psy.tgz snoopy-1.x.tar.gz /tmp/package-snoopy # /tmp/snoopy-1.x-i686-1psy.tgz # snoopy-1.x.tar.gz # /tmp/package-snoopy # # > ARCH="pentium4" REPOS=~/packages sh snoopy-logger.SlackBuild --cleanup # > ls -1d ~/packages/snoopy-1.x-pentium4-1psy.tgz /tmp/package-snoopy snoopy-1.x.tar.gz # ~/packages/snoopy-1.x-pentium4-1psy.tgz # /bin/ls : file not found : /tmp/package-snoopy # /bin/ls : file not found : snoopy-1.x.tar.gz # # > export ARCH="MyArch"; export CLEANUP=yes ;export CHOST="i386-pc-linux-gnu" # > export export SLKCFLAGS="-O3 -fmerge-all-constants -mthreads" # > export REPOS=~/repositorium # > sh snoopy-logger.SlackBuild # > ls -1d ~/repositorium/snoopy-1.x-MyArch-1psy.tgz /tmp/package-snoopy \ # snoopy-1.x.tar.gz # ~/repositorium/snoopy-1.x-MyArch-1psy.tgz # /bin/ls : file not found : /tmp/snoopy-1.x-MyArch-1psy.tgz # /bin/ls : file not found : /tmp/package-snoopy # /bin/ls : file not found : snoopy-1.x.tar.gz # #============================================================================== # ChangeLog: # # VERSÃO:00.05:2008-04-06:Psycho: # - Corrigido bug que colocava script de instalacao em arquivo errado. # - Corrigido bug na versao :| # - Retirado informação de debug # # VERSÃO:00.03:2008-04-06:Psycho: # - Adicionado exemplos bem funcionais. # - Mais arquiteturas suportadas (obrigado ao pessoal do komani linux!!!!) # # VERSÃO:00.01:2008-04-06:Psycho: # - Versão inaugural com cabeçalho adicionado # - Definidas valor padrão para variáveis de saída # #============================================================================== # # Licença:GPL #Define envs CWD="`pwd`" TMP=${TMP:=/tmp} SRC_NAME="snoopy" PKG_NAME="snoopy" PKG=${PKG:=${TMP}/package-${PKG_NAME}} ARCH=${ARCH:="i686"} VERSION=${VERSION:="1.3"} BUILD=${BUILD:="1psy"} SRC="${SRC_NAME}-${VERSION}.tar.gz" # Dowload source if necessary URL=${URL:="http://downloads.sourceforge.net/snoopylogger/${SRC}"} #New files of configuration dotnew="" #docs. DOCS="ChangeLog COPYING README TODO" #If CLEANUP is defined "yes" or arg 1 is "--cleanup", clean files that were used to build package CLEANUP=${CLEANUP:="no"} #Small description of package PKG_DESC_PEQ="Snoopy is logger of commands exec. per users." #Description of package in size of handy-ruler per line. You must # make exactly 10 lines. #-----handy-ruler------------------------------------------------------| PKG_DESC_BIG=" Snoopy is designed to aid the taks of a sysadmin by providing a log of commands executed. Snoopy is completely transparent to the user and applications it hooks in as a library providing a wrapper around calls to execve() calls. Logging is done via syslogd and written to authpriv allowing secure offsite logging of activity, stored in /var/log/secure. Official Site: http://sourceforge.net/projects/snoopylogger Packager: Psycho Mantys ( psycho.mantys (a.t.) gmail.com ) " ##############End of envs conf PKG_VERSION="`echo "${VERSION}" | tr '[:blank:]-[]' '_'`" SRC_DIR=${SRC_DIR:="${CWD}"} REPOS=${REPOS:="${TMP}"} PREFIX=${PREFIX:="/usr"} PKG_SRC="${SRC_DIR}/${SRC_NAME}-${VERSION}" # Set system libraries path LIBDIR="/lib" #default patches. If not exist, overlook. patches="${PACKAGE}.diff ${PACKAGE}-${VERSION}.diff ${PACKAGE}-${VERSION}-${ARCH}.diff ${PACKAGE}-${ARCH}.diff" # Set error codes ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42 dirinstall(){ mkdir -p "${PKG}/install" || exit ${ERROR_MKDIR} if [ -f ${CWD}/slack-desc ] ; then cp ${CWD}/slack-desc "${PKG}/install/slack-desc" else cat << EODESC > "${PKG}/install/slack-desc" # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. #${PKG_NAME}|-----handy-ruler------------------------------------------------------| ${PKG_NAME}: ${PKG_NAME}(${PKG_DESC_PEQ}) EODESC xargs -d '\n' -i echo ${PKG_NAME}: {} >> "${PKG}/install/slack-desc" <<< "${PKG_DESC_BIG}" fi if [ -f ${CWD}/doinst.sh ] ; then cat ${CWD}/doinst.sh >> "${PKG}/install/doinst.sh" fi if [ "x${dotnew}" != "x" ] ; then cat << EOSCRIPT >> "${PKG}/install/doinst.sh" for NEW in " ${dotnew} " ; do OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" if [ ! -r \$OLD ]; then mv \$NEW \$OLD elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then rm \$NEW fi done EOSCRIPT fi #requiredbuilder = Build deps.(slapt-get style) tool. http://www.stabellini.net/requiredbuilder.html requiredbuilder -v -y ${PKG} #old format #requiredbuilder -n -v ${PKG} | sed s'/\( [^|- ]*\)-\([^| -]*\)-\([^ \$]*\)/\1/g' >> ${PKG}/install/slack-required } importaGPG(){ ################# gpg --import << EOKEY || exit $ERROR_GPG [[SIGNING KEY]] EOKEY ################## } DeterFlagsDeArch(){ # Slackware 11 and up need other option (gcc > 3.3.x) if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -gt 33 ]; then MOPT=tune else MOPT=cpu fi case "${ARCH}" in i386) SLKCFLAGS="-O2 -march=i386 -m${MOPT}=i686 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i386-pc-linux-gnu" ;; i486) SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i486-pc-linux-gnu" ;; i586) SLKCFLAGS="-O2 -march=i586 -m${MOPT}=i686 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; i686) SLKCFLAGS="-O2 -march=i686 -m${MOPT}=i686 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; s390) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; powerpc) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; x86_64) SLKCFLAGS="-O2 -fPIC" SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" ;; pentium) SLKCFLAGS="-O2 -march=pentium -m${MOPT}=pentium -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; pentium-mmx) SLKCFLAGS="-O2 -march=pentium-mmx -m${MOPT}=pentium-mmx -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; pentiumpro) SLKCFLAGS="-O2 -march=pentiumpro -m${MOPT}=pentiumpro -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium2|celeron1|mendocino) SLKCFLAGS="-O2 -march=pentium2 -m${MOPT}=pentium2 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium3|coppermine|celeron2) SLKCFLAGS="-O2 -march=pentium3 -m${MOPT}=pentium3 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium3m) SLKCFLAGS="-O2 -march=pentium3m -m${MOPT}=pentium3m -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium-m) SLKCFLAGS="-O2 -march=pentium-m -m${MOPT}=pentium-m -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium4|willamette) #intel celeron SLKCFLAGS="-O2 -pipe -march=pentium4 -m${MOPT}=pentium4 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; pentium4m) SLKCFLAGS="-O2 -march=pentium4m -m${MOPT}=pentium4m -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; prescott) SLKCFLAGS="-O2 -march=prescott -m${MOPT}=prescott -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; nocona) SLKCFLAGS="-O2 -march=nocona -m${MOPT}=nocona -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; core2) SLKCFLAGS="-O2 -march=core2 -m${MOPT}=core2 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; c3) SLKCFLAGS="-O2 -march=c3 -m${MOPT}=c3 -pipe -fomit-frame-pointer -m3dnow" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; c3-2) SLKCFLAGS="-O2 -march=c3-2 -m${MOPT}=c3-2 -pipe -fomit-frame-pointer -m3dnow" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; k6) SLKCFLAGS="-O2 -march=k6 -m${MOPT}=k6 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; k6-2) SLKCFLAGS="-O2 -march=k6-2 -m${MOPT}=k6-2 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; k6-3) SLKCFLAGS="-O2 -m${MOPT}=k6-3 -march=k6-3 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i586-pc-linux-gnu" ;; k8) SLKCFLAGS="-O2 -m${MOPT}=k8 -march=k8 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; opteron) SLKCFLAGS="-O2 -march=opteron -m${MOPT}=opteron -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon) SLKCFLAGS="-O2 -march=athlon -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon-tbird|k7) SLKCFLAGS="-O2 -march=athlon-tbird -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon-xp) SLKCFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon-mp) SLKCFLAGS="-O2 -march=athlon-mp -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon-4) SLKCFLAGS="-O2 -march=athlon-4 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; athlon64) SLKCFLAGS="-O2 -march=athlon64 -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; athlon-fx) SLKCFLAGS="-O2 -march=athlon-fx -pipe -fomit-frame-pointer" SLKLDFLAGS=""; LIBDIRSUFFIX="" CHOST="i686-pc-linux-gnu" ;; winchip-c6) SLKCFLAGS="-O2 -march=winchip-c6 -fomit-frame-pointer -pipe" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; winchip2) SLKCFLAGS="-O2 -march=winchip2 -fomit-frame-pointer -pipe" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; esac export LIBDIRSUFFIX } Prepara(){ rm -rf "${PKG_SRC}" 2> /dev/null rm -rf "${PKG}" 2> /dev/null mkdir -p "${SRC_DIR}" || exit $ERROR_MKDIR mkdir -p "${PKG}" || exit $ERROR_MKDIR mkdir -p "${PKG}"/"${LIBDIR}${LIBDIRSUFFIX}" mkdir -p "${REPOS}" || exit $ERROR_MKDIR mkdir -p ${PKG}/usr/src/slackbuilds/${PKG_NAME} cp -f ${CWD}/$0 ${PKG}/usr/src/slackbuilds/${PKG_NAME} } baixaFonte(){ if [ ! -s "${SRC_DIR}/${SRC}" ] ; then wget "${URL}" -O "${SRC_DIR}/${SRC}" || exit $ERROR_WGET fi } verificaAssinatura(){ if [ ! -s "${SRC_DIR}/${SRC}.sig" ]; then wget "${URL}.sig" -O "${SRC_DIR}/${SRC}.sig" || exit $ERROR_WGET fi gpg --verify "${SRC_DIR}/${SRC}.sig" "${SRC_DIR}/${SRC}" || exit $ERROR_GPG } descompactar(){ # cd "$SRC_DIR" tar --no-same-owner --no-same-permissions -xvf "${SRC_DIR}/${SRC}" || exit $ERROR_TAR } aplicarPatch(){ cd "${PKG_SRC}" for patch in ${patches} ; do if [ -f "${CWD}/${patch}" ] ; then patch -Np1 < "${CWD}/${patch}" || exit ${ERROR_PATCH} elif [ -f "${CWD}/patches/${patch}" ]; then patch -Np1 < "${CWD}/patches/${patch}" || exit ${ERROR_PATCH} fi done } compilar(){ cd ${SRC_DIR}/${SRC_NAME}-*[^{.bz2}{.gz}] make LIBS="${SLKCFLAGS} -ldl" || exit ${ERROR_MAKE} } instalar(){ cd ${SRC_DIR}/${SRC_NAME}-*[^{.bz2}{.gz}] install -m 755 snoopy.so "${PKG}"/"${LIBDIR}${LIBDIRSUFFIX}"/snoopy.so || exit "${ERROR_INSTALL}" mkdir -p "${PKG}"/install/ cat install.sh >> "${PKG}"/install/doinst.sh echo "ldconfig &" >> "${PKG}"/install/doinst.sh } stripa(){ cd "${PKG}" find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null } man_info_doc(){ if [ -d "${PKG}/${PREFIX}/man" ] ; then ( cd "${PKG}/${PREFIX}/man" for manpagedir in $(find . -type d -name "man*") ; do ( cd ${manpagedir} for eachpage in $( find . -type l -maxdepth 1) ; do ln -s $( readlink ${eachpage} ).gz ${eachpage}.gz rm ${eachpage} done gzip -9 *.? ) done ) fi if [ -d "${PKG}/${PREFIX}/info" ] ; then ( cd "${PKG}/${PREFIX}/info" rm -f dir gzip -9 * ) fi mkdir -p "${PKG}/${PREFIX}/doc/${PKG_NAME}-${VERSION}" || exit ${ERROR_MKDIR} for docs in ${DOCS} ; do ( if [ -f "${docs}" ] ; then cp -a "${docs}" "$PKG/$PREFIX/doc/$PKG_NAME-$VERSION" fi ) done } construirtgz(){ cd "${PKG}" makepkg --linkadd y --chown n "${REPOS}/${PKG_NAME}-${PKG_VERSION}-${ARCH}-${BUILD}.tgz" || exit ${ERROR_MKPKG} } limpar(){ if [ "x${CLEANUP}" == "xyes" ] || [ "x${1}" == "x--cleanup" ] ; then rm -rf "${PKG_SRC}" "${PKG}" "${SRC_DIR}/${SRC}" fi } DeterFlagsDeArch Prepara #importaGPG baixaFonte #verificaAssinatura descompactar aplicarPatch compilar man_info_doc instalar stripa dirinstall construirtgz limpar ${1} #TODO #DeterFlagsDeArch (FEITO) #Prepara (FEITO) # #importaGPG e verificaAssinatura # Nao sei com isso e feito. Quando precisar, descubro # #baixaFonte (FEITO) #descompactar (FEITO) lembrete: Tem um cd nao nescessario comentado. #aplicarPatch (FEITO) se nao tiver patchs, ele nao faz nada. Os patchs esta definidos em variavel. #compilar (FEITO) lembrete: A expressao "cd ${SRC_DIR}/${SRC_NAME}-*[^{.bz2}{.gz}]" e para dar um cd para dentro da pasta do pacote. #instalar (FEITO) #stripa (FEITO) #man_info_doc (FEITO) tem que ver se o pacote tem essa forma de docs. #dirinstall # Colocar descriçao numa variavel. #construirtgz (FEITO) #limpar (FEITO) lembrete: pegando o --cleanup # # #(FEITO)PKG_DESCRICAO_BIG pegando descriçao do pacote grando. # xargs -d '\n' -i echo ${PKG_NAME}: {} >> "$PKG/install/slack-desc" <<< "${PKG_DESCRICAO_BIG}" #(FEITO)para o requiredbuilder: requiredbuilder -n -v . #(FAIL)(IMCONPATIVEL COM PADRAO)Para o sed do requiredbuilder: sed s'/\( [^|- ]*\)-\([^| -]*\)-\([^ \$]*\)/\1/g' #TODO: Add var com suggest e required(se possivel para doinstall a mais tb)

