utempter na 64-bitach
Adam Osuchowski
adwol at zonk.pl
Thu Sep 23 18:06:38 CEST 2010
Arkadiusz Miskiewicz wrote:
> ... a jak się komuś chce to rm -rf utempter i dokończyć libutempter.spec
Trochę poprawione pliki w załączniku (przynajmniej się kompiluje).
-------------- next part --------------
# $Revision: 1.63 $, $Date: 2010/09/21 12:19:31 $
Summary: Privileged helper for utmpx updates
Summary(es.UTF-8): Programa para actualizaciĂłn del utmp/wtmp
Summary(pl.UTF-8): Program pozwalajÄ
cy na zapisywanie w utmpx
Summary(pt_BR.UTF-8): Programa para atualização do utmp/wtmp
Summary(ru.UTF-8): ĐŃивиНогиŃĐžĐ˛Đ°Đ˝Đ˝Đ°Ń ĐżŃОгŃаППа Đ´ĐťŃ Đ¸ĐˇĐźĐľĐ˝ĐľĐ˝Đ¸Đš в utmp/wtmp
Summary(uk.UTF-8): ĐŃивŃНоКОвана ĐżŃОгŃаПа Đ´ĐťŃ Đ˛Đ˝ĐľŃĐľĐ˝Đ˝Ń ĐˇĐźŃĐ˝ Đ´Đž utmp/wtmp
%define utempter_compat_ver 0.5.5
Name: libutempter
Version: 1.1.5
Release: 0.1
License: MIT or LGPL
Group: Base
Source0: ftp://ftp.altlinux.org/pub/people/ldv/utempter/%{name}-%{version}.tar.bz2
# Source0-md5: d62a93ba9f3796a91cf03be5ef25a9a1
Patch0: %{name}-lastlog.patch
Patch1: %{name}-utmp-cleanup.patch
BuildRequires: rpmbuild(macros) >= 1.202
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(post,postun): /sbin/ldconfig
Requires(postun): /usr/sbin/groupdel
Provides: group(utmp)
Provides: utempter = %{utempter_compat_ver}
Obsoletes: libutempter0
Obsoletes: utempter
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Utempter is a utility which allows programs to log information to a
privileged file (/var/run/utmpx), without compromising system
security. It accomplishes this task by acting as a buffer between root
and the programs.
%description -l es.UTF-8
Programa para actualizaciĂłn del utmp/wtmp.
%description -l pl.UTF-8
Utempter jest programem pozwalajÄ
cym uĹźytkownikom na zapisywanie do
pliku /var/run/utmpx bez naruszania bezpieczeĹstwa systemu.
%description -l pt_BR.UTF-8
O Utempter Ê um utilitårios que permite a programas guardar informação
à arquivos privilegiados (/var/run/utmp), sem comprometer a segurança
do sistema. Ele faz esta tarefa atuando como um "buffer" entre o
usuĂĄrio root e os programas.
%description -l ru.UTF-8
Utempter - ŃŃĐž ŃŃиНиŃа, кОŃĐžŃĐ°Ń ĐżĐžĐˇĐ˛ĐžĐťŃĐľŃ ĐżŃОгŃаППаП СапиŃŃваŃŃ
инŃĐžŃПаŃĐ¸Ń Đ˛ ĐżŃивиНогиŃОваннŃĐš ŃаКН (/var/run/utmp) йоС наŃŃŃониŃ
ŃиŃŃоПнОК йоСОпаŃнОŃŃи. Đна иŃпОНнŃĐľŃ ŃŃŃ ĐˇĐ°Đ´Đ°ŃŃ, вŃŃŃŃĐżĐ°Ń ĐąŃŃĐľŃОП
ĐźĐľĐśĐ´Ń root'ОП и пОНŃСОваŃоНŃŃкиПи ĐżŃОгŃаППаПи.
%description -l uk.UTF-8
Utempter - ŃĐľ ŃŃиНŃŃа, ŃĐž дОСвОНŃŃ ĐżŃОгŃаПаП СапиŃŃваŃи ŃĐ˝ŃĐžŃПаŃŃŃ Đ˛
ĐżŃивŃНоКОваниК ŃаКН (/var/run/utmp) йоС пОŃŃŃĐľĐ˝Đ˝Ń ŃиŃŃĐľĐźĐ˝ĐžŃ ĐąĐľĐˇĐżĐľĐşĐ¸.
ĐОна викОнŃŃ ŃŃ ĐˇĐ°Đ´Đ°ŃŃ, виŃŃŃпаŃŃи ĐąŃŃĐľŃОП ĐźŃĐś root'ОП Ńа ĐżŃОгŃаПаПи
кОŃиŃŃŃваŃа.
%package devel
Summary: Header file for utempter library
Summary(pl.UTF-8): Plik nagĹĂłwkowy biblioteki utemptera
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Obsoletes: libutempter0-devel
Obsoletes: utempter-devel
%description devel
Header file for utempter library.
%description devel -l pl.UTF-8
Plik nagĹĂłwkowy biblioteki utemptera.
%package static
Summary: Static utempter library
Summary(pl.UTF-8): Statyczna biblioteka utemptera
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
Static utempter library.
%description static -l pl.UTF-8
Statyczna biblioteka utemptera
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%build
%{__make} \
CC="%{__cc}" \
RPM_OPT_FLAGS="%{rpmcppflags} %{rpmcflags}" \
libdir="%{_libdir}" \
libexecdir="%{_libexecdir}"
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install \
libdir="%{_libdir}" \
libexecdir="%{_libexecdir}" \
DESTDIR=$RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_sbindir}
ln -s %{_libdir}/utempter/utempter $RPM_BUILD_ROOT%{_sbindir}
ln -s %{_libdir}/utempter/utmp-cleanup $RPM_BUILD_ROOT%{_sbindir}
install -d $RPM_BUILD_ROOT/var/run
:> $RPM_BUILD_ROOT/var/run/utmpx
%clean
rm -rf $RPM_BUILD_ROOT
%pre
%groupadd -g 22 utmp
%post
/sbin/ldconfig
if [ ! -f /var/run/utmpx ]; then
umask 002
touch /var/run/utmpx
chown root:utmp /var/run/utmpx
chmod 0664 /var/run/utmpx
fi
%postun
/sbin/ldconfig
if [ "$1" = "0" ]; then
%groupremove utmp
fi
%files
%defattr(644,root,root,755)
%dir %{_libdir}/utempter
%attr(2755,root,utmp) %{_libdir}/utempter/utempter
%{_sbindir}/utempter
%attr(755,root,root) %{_libdir}/utempter/utmp-cleanup
%{_sbindir}/utmp-cleanup
%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/lib*.so.0
%attr(664,root,utmp) %ghost /var/run/utmpx
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/lib*.so
%{_includedir}/utempter.h
%files static
%defattr(644,root,root,755)
%{_libdir}/lib*.a
%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
%changelog
* %{date} PLD Team <feedback at pld-linux.org>
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log: libutempter.spec,v $
Revision 1.63 2010/09/21 12:19:31 arekm
- replacement for utempter (unfinished)
-------------- next part --------------
--- libutempter-1.1.5/utempter.c.org 2010-09-21 14:12:11.474543375 +0200
+++ libutempter-1.1.5/utempter.c 2010-09-21 14:13:35.669584497 +0200
@@ -113,20 +113,27 @@
{
struct utmp ut;
struct timeval tv;
+ int fd;
+ struct lastlog ll;
#ifdef __GLIBC__
int offset;
#endif
memset(&ut, 0, sizeof(ut));
+ memset(&ll, 0, sizeof(ll));
memset(&tv, 0, sizeof(tv));
(void) gettimeofday(&tv, 0);
+ ll.ll_time = time(NULL);
strncpy(ut.ut_name, user, sizeof(ut.ut_name));
strncpy(ut.ut_line, term, sizeof(ut.ut_line));
- if (host)
+ strncpy(ll.ll_line, term, sizeof(ll.ll_line));
+ if (host) {
strncpy(ut.ut_host, host, sizeof(ut.ut_host));
+ strncpy(ll.ll_host, host, sizeof(ll.ll_host));
+ }
#ifdef __GLIBC__
@@ -156,6 +163,11 @@
endutent();
(void) updwtmp(_PATH_WTMP, &ut);
+ if ((fd = open(_PATH_LASTLOG, O_RDWR)) != -1) {
+ lseek(fd, (off_t) ((long)getuid() * sizeof(ll)), SEEK_SET);
+ write(fd, &ll, sizeof(ll));
+ close(fd);
+ }
#elif defined(__FreeBSD__)
More information about the pld-devel-pl
mailing list