X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=sudo.spec;h=51460d9f7f741cf60b7cc0e28b7f7f120cb713d9;hb=02cd30f3a95215bb14dbf28ef34d01ed58e6fd8a;hp=1ced86f560ddb468a890e5c3074c42b204d3e99a;hpb=7df1c00dc3c736a5f858e270ee8bc4007a329553;p=packages%2Fsudo.git diff --git a/sudo.spec b/sudo.spec index 1ced86f..51460d9 100644 --- a/sudo.spec +++ b/sudo.spec @@ -1,35 +1,55 @@ # # Conditional build: -%bcond_without selinux # do not compile selinux support -# +%bcond_with kerberos5 # enable Kerberos V support (conflicts with PAM) +%bcond_without ldap # disable LDAP support +%bcond_without pam # disable PAM support +%bcond_without selinux # build without SELinux support +%bcond_with skey # enable skey (onetime passwords) support (conflicts with PAM) + +%if "%{pld_release}" == "ac" +%define pam_ver 0.80.1 +%else +%define pam_ver 0.99.7.1 +%endif + Summary: Allows command execution as root for specified users -Summary(es): Permite que usuarios específicos ejecuten comandos como se fueran el root -Summary(ja): »ØÄê¥æ¡¼¥¶¤ËÀ©¸ÂÉÕ¤Îroot¸¢¸Â¤òµö²Ä¤¹¤ë -Summary(pl): Umo¿liwia wykonywaniew poleceñ jako root dla konkretnych u¿ytkowników -Summary(pt_BR): Permite que usuários específicos executem comandos como se fossem o root -Summary(ru): ðÏÚ×ÏÌÑÅÔ ÏÐÒÅÄÅÌÅÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÉÓÐÏÌÎÑÔØ ËÏÍÁÎÄÙ ÏÔ ÉÍÅÎÉ root -Summary(uk): äÏÚ×ÏÌѤ ×ËÁÚÁÎÉÍ ËÏÒÉÓÔÕ×ÁÞÁÍ ×ÉËÏÎÕ×ÁÔÉ ËÏÍÁÎÄÉ ×¦Ä ¦ÍÅΦ root +Summary(es.UTF-8): Permite que usuarios específicos ejecuten comandos como se fueran el root +Summary(ja.UTF-8): 指定ユーザに制限付のroot権限を許可する +Summary(pl.UTF-8): Umożliwia wykonywanie poleceń jako root dla konkretnych użytkowników +Summary(pt_BR.UTF-8): Permite que usuários específicos executem comandos como se fossem o root +Summary(ru.UTF-8): Позволяет определенным пользователям исполнять команды от имени root +Summary(uk.UTF-8): Дозволяє вказаним користувачам виконувати команди від імені root Name: sudo -Version: 1.6.8 -Release: 1 +Version: 1.7.2p7 +Release: 3 Epoch: 1 License: BSD Group: Applications/System -Source0: ftp://ftp.courtesan.com/pub/sudo/%{name}-%{version}.tar.gz -# Source0-md5: 94e0657c46e129cf6f1fe7ee313d6636 +Source0: ftp://ftp.sudo.ws/pub/sudo/%{name}-%{version}.tar.gz +# Source0-md5: 3ac78668427a53e12d7639fdfab2f1af Source1: %{name}.pamd -Source2: %{name}.logrotate -Patch0: %{name}-selinux.patch -Patch1: %{name}-ac.patch -URL: http://www.courtesan.com/sudo/ +Source2: %{name}-i.pamd +Source3: %{name}.logrotate +Patch0: %{name}-pam-login.patch +Patch1: %{name}-libtool.patch +Patch2: %{name}-env.patch +URL: http://www.sudo.ws/sudo/ BuildRequires: autoconf >= 2.53 BuildRequires: automake -BuildRequires: pam-devel +%{?with_kerberos5:BuildRequires: heimdal-devel} %{?with_selinux:BuildRequires: libselinux-devel} -Requires: pam >= 0.77.3 +BuildRequires: libtool +%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0} +%{?with_pam:BuildRequires: pam-devel} +BuildRequires: rpm >= 4.4.9-56 +BuildRequires: rpmbuild(macros) >= 1.402 +%{?with_skey:BuildRequires: skey-devel >= 2.2-11} +Requires: pam >= %{pam_ver} Obsoletes: cu-sudo BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define schemadir /usr/share/openldap/schema + %description Sudo (superuser do) allows a permitted user to execute a command as the superuser (real and effective uid and gid are set to 0 and root's @@ -41,134 +61,187 @@ stamp without running a command. The password prompt itself will also time out if the password is not entered with N minutes (again, this is defined at installation time and defaults to 5 minutes). -%description -l es +%description -l es.UTF-8 Sudo (superuser do) permite que el administrador del sistema otorga a ciertos usuarios (o grupos de usuarios) la habilidad para ejecutar algunos (o todos) comandos como root, registrando todos los comandos y argumentos. Sudo opera en una base por comando, no siendo un substituto para la shell. -%description -l ja +%description -l ja.UTF-8 sudo (superuser do) -¤È¤Ï¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬¡¢¿®ÍѤǤ­¤ë¥æ¡¼¥¶(¤Þ¤¿¤Ï¥°¥ë¡¼¥×)¤ËÂÐ -¤·¤Æ¡¢¤¤¤¯¤Ä¤«(¤â¤·¤¯¤ÏÁ´¤Æ)¤Î¥³¥Þ¥ó¥É¤ò root -¤È¤·¤Æ¼Â¹Ô¤Ç¤­¤ë¤è¤¦¡¢¤½¤Î¥³¥Þ¥ó -¥É¤Î¼Â¹ÔÍúÎò¤Î¥í¥°¤ò¤È¤ê¤Ä¤Äµö²Ä¤¹¤ë»ÅÁȤߤǤ¹¡£sudo -¤Ï¥³¥Þ¥ó¥É°ì¹Ôñ°Ì¤ÇÆ°ºî -¤·¤Þ¤¹¡£¥·¥§¥ë¤ÎÃÖ¤­´¹¤¨¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤Îµ¡Ç½¤òÆ⢤·¤Æ¤¤¤Þ¤¹¡£¥Û¥¹¥Èñ°Ì -¤Ç¡¢¤½¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô²Äǽ¤Ê¥æ¡¼¥¶¤òÀ©¸Â¤¹¤ëµ¡Ç½¡¢³Æ¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Î(郎¤Ê -¤Ë¤ò¼Â¹Ô¤·¤¿¤«¤Îº¯Àפò»Ä¤¹¤¿¤á¤Î)Ë­ÉÙ¤Ê¥í¥®¥ó¥°µ¡Ç½¡¢sudo -¥³¥Þ¥ó¥É¤Î¥¿¥¤¥à¥¢¥¦ -¥È»þ´Ö¤òÀßÄê²Äǽ¡¢Ê£¿ô¤Î¥Þ¥·¥ó¤ÇƱ°ì¤ÎÀßÄê¥Õ¥¡¥¤¥ë(sudoers)¤ò¶¦Í­¤¹¤ëµ¡Ç½¡¢¤¬ -¤¢¤ê¤Þ¤¹¡£ - -%description -l pl -Sudo (superuser do) umo¿liwia wykonywanie konkretnych poleceñ jako -root dla wyspecyfikowanych u¿ytkowników (rzeczywiste i efektywne -uid/gid podczas wykonywania tych programów jest 0). To kto mo¿e -wykonywaæ konkretne polecenia i w jaki sposób ma byæ autoryzowany jest +とはシステム管理者が、信用できるユーザ(またはグループ)に対 +して、いくつか(もしくは全て)のコマンドを root +として実行できるよう、そのコマン +ドの実行履歴のログをとりつつ許可する仕組みです。sudo +はコマンド一行単位で動作 +します。シェルの置き換えではありません。以下の機能を内蔵しています。ホスト単位 +で、そのコマンドを実行可能なユーザを制限する機能、各コマンドについての(誰がな +にを実行したかの痕跡を残すための)豊富なロギング機能、sudo +コマンドのタイムアウ +ト時間を設定可能、複数のマシンで同一の設定ファイル(sudoers)を共有する機能、が +あります。 + +%description -l pl.UTF-8 +Sudo (superuser do) umożliwia wykonywanie konkretnych poleceń jako +root dla wyspecyfikowanych użytkowników (rzeczywiste i efektywne +uid/gid podczas wykonywania tych programów jest 0). To kto może +wykonywać konkretne polecenia i w jaki sposób ma być autoryzowany jest opisane w pliku /etc/sudoers. -%description -l pt_BR -Sudo (superuser do) permite que o administrador do sistema dê a certos -usuários (ou grupos de usuários) a habilidade para rodar alguns (ou +%description -l pt_BR.UTF-8 +Sudo (superuser do) permite que o administrador do sistema dê a certos +usuários (ou grupos de usuários) a habilidade para rodar alguns (ou todos) comandos como root, registrando todos os comandos e argumentos. -Sudo opera numa base por comando, não sendo um substituto para a +Sudo opera numa base por comando, não sendo um substituto para a shell. -%description -l ru -Sudo (superuser do) ÐÏÚ×ÏÌÑÅÔ ÓÉÓÔÅÍÎÏÍÕ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÐÒÅÄÏÓÔÁ×ÌÑÔØ -ÏÐÒÅÄÅÌÅÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ (ÉÌÉ ÉÈ ÇÒÕÐÐÁÍ) ×ÏÚÍÏÖÎÏÓÔØ ÉÓÐÏÌÎÑÔØ -ÎÅËÏÔÏÒÙÅ (ÉÌÉ ×ÓÅ) ËÏÍÁÎÄÙ Ó ÐÒÁ×ÁÍÉ root, ÐÒÉ ÜÔÏÍ ÐÒÏÔÏËÏÌÉÒÕÑ ×ÓÅ -ËÏÍÁÎÄÙ É ÁÒÇÕÍÅÎÔÙ. Sudo ÒÁÂÏÔÁÅÔ Ó ÏÔÄÅÌØÎÙÍÉ ËÏÍÁÎÄÁÍÉ, ÜÔÏ ÎÅ -ÚÁÍÅÎÁ ËÏÍÁÎÄÎÏÊ ÏÂÏÌÏÞËÉ (shell). îÅËÏÔÏÒÙÅ ÉÚ ×ÏÚÍÏÖÎÏÓÔÅÊ sudo: -ÏÇÒÁÎÉÞÅÎÉÅ ÔÏÇÏ, ËÁËÉÅ ËÏÍÁÎÄÙ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÚÁÐÕÓËÁÔØ × -ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÈÏÓÔÁ; ÐÏÌÎÏÅ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÅ ËÁÖÄÏÊ ËÏÍÁÎÄÙ; -ÎÁÓÔÒÁÉ×ÁÅÍÏÅ ×ÒÅÍÑ, ÎÁ ÐÒÏÔÑÖÅÎÉÉ ËÏÔÏÒÏÇÏ sudo ÐÏÍÎÉÔ ÐÁÒÏÌØ; -ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÄÎÏÇÏ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÏÇÏ ÆÁÊÌÁ (sudoers) ÎÁ ÍÎÏÇÉÈ -ÍÁÛÉÎÁÈ. - -%description -l uk -Sudo (superuser do) ÄÏÚ×ÏÌѤ ÓÉÓÔÅÍÎÏÍÕ ÁÄͦΦÓÔÒÁÔÏÒÏצ ÎÁÄÁÔÉ ÐÅ×ÎÉÍ -ËÏÒÉÓÔÕ×ÁÞÁÍ (ÞÉ §È ÇÒÕÐÁÍ) ÍÏÖÌÉצÓÔØ ×ÉËÏÎÕ×ÁÔÉ ÄÅÑ˦ (ÞÉ ×Ó¦) -ËÏÍÁÎÄÉ Ú ÐÒÁ×ÁÍÉ root, ÐÒÉ ÃØÏÍÕ ÐÒÏÔÏËÏÌÀÀÞÉ ×Ó¦ ËÏÍÁÎÄÉ ÔÁ -ÁÒÇÕÍÅÎÔÉ. Sudo ÐÒÁÃÀ¤ Ú ÏËÒÅÍÉÍÉ ËÏÍÁÎÄÁÍÉ, ÃÅ ÎÅ ÚÁͦÎÁ ËÏÍÁÎÄÎϧ -ÏÂÏÌÏÎËÉ (shell). äÅÑ˦ Ú ÍÏÖÌÉ×ÏÓÔÅÊ sudo: ÏÂÍÅÖÅÎÎÑ ÔÏÇÏ, Ñ˦ -ËÏÍÁÎÄÉ ËÏÒÉÓÔÕ×ÁÞ ÍÏÖÅ ÚÁÐÕÓËÁÔÉ × ÚÁÌÅÖÎÏÓÔ¦ ×¦Ä ÈÏÓÔÁ; ÐÏ×ÎÅ -ÐÒÏÔÏËÏÌÀ×ÁÎÎÑ ËÏÖÎϧ ËÏÍÁÎÄÉ; ÎÁÓÔÒÏÀ×ÁÎÉÊ ÞÁÓ, ÎÁ ÐÒÏÔÑÚ¦ ÑËÏÇÏ sudo -ÐÁÍ'ÑÔÁ¤ ÐÁÒÏÌØ; ×ÉËÏÒÉÓÔÁÎÎÑ ÏÄÎÏÇÏ ËÏÎƦÇÕÒÁæÊÎÏÇÏ ÆÁÊÌÕ (sudoers) -ÎÁ ÂÁÇÁÔØÏÈ ÍÁÛÉÎÁÈ. +%description -l ru.UTF-8 +Sudo (superuser do) позволяет системному администратору предоставлять +определенным пользователям (или их группам) возможность исполнять +некоторые (или все) команды с правами root, при этом протоколируя все +команды и аргументы. Sudo работает с отдельными командами, это не +замена командной оболочки (shell). Некоторые из возможностей sudo: +ограничение того, какие команды пользователь может запускать в +зависимости от хоста; полное протоколирование каждой команды; +настраиваемое время, на протяжении которого sudo помнит пароль; +использование одного конфигурационного файла (sudoers) на многих +машинах. + +%description -l uk.UTF-8 +Sudo (superuser do) дозволяє системному адміністраторові надати певним +користувачам (чи їх групам) можливість виконувати деякі (чи всі) +команди з правами root, при цьому протоколюючи всі команди та +аргументи. Sudo працює з окремими командами, це не заміна командної +оболонки (shell). Деякі з можливостей sudo: обмеження того, які +команди користувач може запускати в залежності від хоста; повне +протоколювання кожної команди; настроюваний час, на протязі якого sudo +пам'ятає пароль; використання одного конфігураційного файлу (sudoers) +на багатьох машинах. + +%package -n openldap-schema-sudo +Summary: Sudo LDAP schema +Group: Networking/Daemons +Requires(post,postun): sed >= 4.0 +Requires: openldap-servers +Requires: sed >= 4.0 + +%description -n openldap-schema-sudo +This package contains sudo.schema for openldap. + +%description -n openldap-schema-sudo -l pl.UTF-8 +Ten pakiet zawiera sudo.schema dla pakietu openldap. %prep %setup -q -%{?with_selinux:%patch0 -p1} - # only local macros mv -f aclocal.m4 acinclude.m4 # kill libtool.m4 copy rm -f acsite.m4 +%patch0 -p1 %patch1 -p1 +%patch2 -p1 %build -cp -f /usr/share/automake/config.sub . +%{__mv} install-sh install-custom-sh %{__libtoolize} +%{__mv} install-custom-sh install-sh +cp -f /usr/share/automake/config.sub . %{__aclocal} %{__autoconf} %configure \ NROFFPROG=nroff \ + --with-incpath=/usr/include/security \ --with-timedir=/var/run/sudo \ --with-pam \ + --with-pam-login \ --with-logging=both \ --with-logfac=auth \ --with-logpath=/var/log/sudo \ --with-ignore-dot \ --with-env-editor \ - --with-insults \ - --with-all-insults \ - --with-classic-insults \ - --with-csops-insults \ - --with-hal-insults \ - --with-goons-insults \ --with-secure-path="/bin:/sbin:/usr/bin:/usr/sbin" \ --with-loglen=320 \ - --disable-saved-ids + --with%{!?with_kerberos5:out}-kerb5 \ + --with%{!?with_ldap:out}-ldap \ + --with%{!?with_skey:out}-skey \ + --with%{!?with_selinux:out}-selinux \ + --with-long-otp-prompt %{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{pam.d,logrotate.d},/var/{log,run/sudo}} +install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{pam.d,logrotate.d},/var/{log,run/sudo},%{_mandir}/man8} -%{__make} install \ +%{__make} -j1 install \ DESTDIR=$RPM_BUILD_ROOT \ - install_uid=`id -u` \ - install_gid=`id -g` \ - sudoers_uid=`id -u` \ - sudoers_gid=`id -g` + install_uid=$(id -u) \ + install_gid=$(id -g) \ + sudoers_uid=$(id -u) \ + sudoers_gid=$(id -g) -install %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/sudo +cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/sudo +cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/sudo-i touch $RPM_BUILD_ROOT/var/log/sudo -install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/sudo +cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/sudo chmod -R +r $RPM_BUILD_ROOT%{_prefix} rm -f $RPM_BUILD_ROOT%{_libdir}/sudo_noexec.la +%if %{with ldap} +install -d $RPM_BUILD_ROOT%{schemadir} +cp -a schema.OpenLDAP $RPM_BUILD_ROOT%{schemadir}/sudo.schema +%endif + %clean rm -rf $RPM_BUILD_ROOT +%post -n openldap-schema-sudo +%openldap_schema_register %{schemadir}/sudo.schema -d core +%service -q ldap restart + +%banner -e openldap-schema-sudo <<'EOF' +# banner on first install +if [ "$1" = "1" ]; the +NOTE: +In order for sudoRole LDAP queries to be efficient, the server must index +the attribute 'sudoUser', e.g. + + # Indices to maintain + index sudoUser eq +EOF +fi + +%postun -n openldap-schema-sudo +if [ "$1" = "0" ]; then + %openldap_schema_unregister %{schemadir}/sudo.schema + %service -q ldap restart +fi + %files %defattr(644,root,root,755) -%doc BUGS CHANGES HISTORY README TODO TROUBLESHOOTING sample.sudoers -%attr(440,root,root) %verify(not md5 size mtime) %config(noreplace) %{_sysconfdir}/sudoers -%attr(600,root,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/sudo +%doc HISTORY README TROUBLESHOOTING sample.sudoers +%{?with_ldap:%doc README.LDAP sudoers2ldif} +%attr(440,root,root) %verify(not md5 mtime size) %config(noreplace) %{_sysconfdir}/sudoers +%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/sudo +%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/sudo-i %attr(4755,root,root) %{_bindir}/sudo %attr(4755,root,root) %{_bindir}/sudoedit -%attr(755,root,root) %{_sbindir}/sesh %attr(755,root,root) %{_sbindir}/visudo +%{?with_selinux:%attr(755,root,root) %{_libdir}/sesh} %attr(755,root,root) %{_libdir}/sudo_noexec.so -%{_mandir}/man*/* +%{_mandir}/man5/sudoers.5* +%{?with_ldap:%{_mandir}/man5/sudoers.ldap.5*} +%{_mandir}/man8/sudo.8* +%{_mandir}/man8/sudoedit.8* +%{_mandir}/man8/visudo.8* %attr(600,root,root) %ghost /var/log/sudo -%attr(640,root,root) /etc/logrotate.d/* +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/sudo %attr(700,root,root) %dir /var/run/sudo + +%files -n openldap-schema-sudo +%defattr(644,root,root,755) +%{schemadir}/*.schema