Retour douteux ubuntu...[bug sudo]

Oule je vais refaire ma reponse, apres m’etre relus c’est incomprehensible.

Donc je disait, non je suis pas d’accord c’est pas une rustine comme solution, a partir du moment ou a la fin de l’execution de ta commande tu perd immediatement les droits la c’est parfaitement honnete comme comprommis. La ou sa craint c’est que c’est pas le cas par defaut, et que toi tout comme moi nous avons cru que le sudo était lier au terminal dans lequel on avait executer notre commande, ce qui n’est pas le cas du tout … En gros tu est root sans le savoir pendant 15min .

Oui, si on passe le timestamp à 0 et qu’on autorise seulement quelques commandes exécutées, de plus, seulement depuis localhost, ça devient safe non ?

Je confirme que ça a l’air tranquille, j’ai fait un test pour savoir si ça tenait compte de la durée de la commande: en clair je lance une commande via sudo qui met 1 bonne minute via sudo et pendant qu’elle s’éxécute, je vérifie que le mot de passe est bien demandé. Bon, ça se passe bien et c’est tranquille de ce coté. Sans ce timestamp à zéro, cela ouvre la porte aux vers et virus par internet: quand je pense qu’on se moque de la politique de Windows…

Oui enfin faut pas comparer l’incomparable … Sous windows le premier compte utilisateur est admin d’office, du moins si tu crée un compte utilisateur simple y’a pas moyen de passer admin a la maniere de sudo pour un court lapse de temps. Et quand tu est en compte utilisateur qui a les droits admin la c’est la porte ouverte a tout, et tout le temps.

[quote=“ggoodluck47”]Ajoutes à sudoers la ligne suivante :

Defaults env_reset
Defaults:gerard timestamp_timeout=0[/quote]
La bonne syntaxe pour que cela soit valable pour tous les utilisateurs, c’est :Defaults timestamp_timeout=0?
En tout cas c’est ce que j’ai fait et visudo ne s’est pas plaint à l’enregistrement du fichier.

Re,

Encore mieux, merci Eol :slightly_smiling:

Mais comme je suis méfiant je ne délègue mes pouvoirs qu’a une seule personne : MOI :slightly_smiling:

Bon, c’est bien ce que je pensais et je trouve incroyable que ça ne soit pas mis par défaut. sudo permet de lier le timestamp au tty utilisé. Cela signifie que le timestamp dépend de la fenêtre ou du terminal utilisé. C’est une option que l’on active à la compilation et qui est --with-tty-tickets.

J’ai refait les paquets sudo de squeeze amd64 et i386 avec cette option. La faille que j’ai énoncé ci dessus n’existe plus avec ces paquets et sudo devient acceptable.

J’invite fortement les personnes à installer ces paquets plutôt que d’utiliser ceux de debian compilés sans cette option.

Le dépot

deb boisson.homeip.net/debian squeeze divers

les paquets:

http://boisson.homeip.net/debian/pool/squeeze/i386/sudo_1.7.2p1-1_i386.deb
http://boisson.homeip.net/debian/pool/squeeze/i386/sudo-ldap_1.7.2p1-1_i386.deb
http://boisson.homeip.net/debian/pool/squeeze/amd64/sudo_1.7.2p1-1_amd64.deb
http://boisson.homeip.net/debian/pool/squeeze/amd64/sudo-ldap_1.7.2p1-1_amd64.deb

Pour faire les paquets:

[code]# apt-get install devscripts

apt-get buuild-dep sudo

$ apt-get source sudo
$ cd sudo-???
$ emacs debian/rules
[ rajouter --with-tty-tickets aux deux configure du debian/rules (attention ce sont des tabs en début de ligne)]
$ fakeroot dpkg-buildpackage -b -uc
$ cd …

dpkg -i sudo_*.deb[/code]

Eh ben, chapeau pour l’implication fran.b. Ça vaudrait presque le coup de demander aux mainteneurs du paquet de justifier ce choix très étrange, non ?

:smt104 J’en reste sans voix.

Ceci dit, en utilisant ta méthode, fran.b, je compile bien sudo, mais le sudo installé ne gère pas mieux : je peux lancer sudo ifconfig dans un urxvt, en ouvrir un autre et relancer un sudo ifconfig sans avoir à entrer à nouveau mon mot de passe.

Pour être sûr d’avoir bien compris, il faut ajouter

après les 2 séries de “with-blablabla” dans /debian/rules, non ?

Si c’est bien ça, je l’ai fait et ça ne change rien. Je suis sous Lenny x86 avec kernel 2.6.32.

Bizarre, voilà le patch, le changement a été très net chez moi. As tu fais les corrections aux deux configure? et mis le \ en fin de ligne?

$ cd sudo-... $ patch -p1 < sudo.diff

[code]— sudo-1.7.2p1/debian/rules 2010-01-28 23:02:55.000000000 +0100
+++ sudo-mod/debian/rules 2010-01-28 20:39:05.000000000 +0100
@@ -19,6 +19,7 @@
cd build-simple && NROFFPROG=/usr/bin/nroff …/configure
–prefix=/usr -v
–with-all-insults \

  •   --with-tty-tickets \
      --with-devel \
      --with-pam \
      --with-fqdn \
    

@@ -41,6 +42,7 @@
cd build-ldap && NROFFPROG=/usr/bin/nroff …/configure
–prefix=/usr -v
–with-all-insults \

  •   --with-tty-tickets \
      --with-devel \
      --with-pam \
      --with-ldap \
    

[/code]

seb-laptop:/usr/src/sudo-1.6.9p17# patch -p1 < sudo.diff bash: sudo.diff: Aucun fichier ou répertoire de ce type
:confused:

Edit : trop rapide, je refais

Pas mieux :

seb-laptop:/usr/src/sudo-1.6.9p17# patch -p1 < sudo.diff patching file debian/rules Hunk #1 FAILED at 19. Hunk #2 FAILED at 42. 2 out of 2 hunks FAILED -- saving rejects to file debian/rules.rej

Je joins à tout zazard le /debian/rules, histoire de voir s’il est si différent entre Lenny et Squeeze ?

[code]#!/usr/bin/make -f

export DH_VERBOSE=1

CFLAGS = -O2 -Wall -Wno-comment
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -g
endif
export CFLAGS

config: config-stamp
config-stamp:
dh_testdir

# simple version
mkdir -p build-simple
cd build-simple && NROFFPROG=/usr/bin/nroff ../configure \
	--prefix=/usr -v \
	--with-all-insults \
	--with-devel --with-pam --with-fqdn \
	--with-logging=syslog --with-logfac=authpriv \
	--with-env-editor --with-editor=/usr/bin/editor \
	--with-timeout=15 --with-password-timeout=0 \
	--with-passprompt="[sudo] password for %p: " \
	--disable-root-mailer --disable-setresuid \
	--with-sendmail=/usr/sbin/sendmail \
	--mandir=/usr/share/man --libexecdir=/usr/lib/sudo \
	--with-ldap-conf-file=/etc/sudo-ldap.conf \
	--with-secure-path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
	--with-tty-tickets \

# LDAP version
mkdir -p build-ldap
cd build-ldap && NROFFPROG=/usr/bin/nroff ../configure \
	--prefix=/usr -v \
	--with-all-insults \
	--with-exempt=sudo --with-pam --with-ldap --with-fqdn \
	--with-logging=syslog --with-logfac=authpriv \
	--with-env-editor --with-editor=/usr/bin/vi \
	--with-timeout=15 --with-password-timeout=0 \
	--with-passprompt="[sudo] password for %p: " \
	--disable-root-mailer --disable-setresuid \
	--with-sendmail=/usr/sbin/sendmail \
	--with-ldap-conf-file=/etc/ldap/ldap.conf \
	--mandir=/usr/share/man --libexecdir=/usr/lib/sudo \
	--with-secure-path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
	--with-tty-tickets \

touch config-stamp

build: build-stamp
build-stamp: config-stamp
dh_testdir

# ensure our pod changes get picked up
$(MAKE) -C build-simple sudoers.man.in sudo.man.in visudo.man.in

$(MAKE) -C build-simple
$(MAKE) -C build-ldap

touch build-stamp

clean:
dh_testdir
dh_testroot
rm -f config-stamp build-stamp
rm -rf build-simple build-ldap
rm -f config.cache

-test -r /usr/share/misc/config.sub && \
	cp -f /usr/share/misc/config.sub config.sub
-test -r /usr/share/misc/config.guess && \
	cp -f /usr/share/misc/config.guess config.guess

dh_clean

install: build-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs

$(MAKE) -C build-simple install DESTDIR=$(CURDIR)/debian/sudo
$(MAKE) -C build-ldap   install DESTDIR=$(CURDIR)/debian/sudo-ldap

# remove stuff we don't want
rm -f	$(CURDIR)/debian/sudo/etc/sudoers \
	$(CURDIR)/debian/sudo-ldap/etc/sudoers

# and install things we do want that make install doesn't know about
install -o root -g root -m 0644 $(CURDIR)/debian/sudo.pam \
	debian/sudo/etc/pam.d/sudo
install -o root -g root -m 0644 $(CURDIR)/debian/sudo.pam \
	debian/sudo-ldap/etc/pam.d/sudo

install -o root -g root -m 0644 $(CURDIR)/debian/sudo.lintian \
	debian/sudo/usr/share/lintian/overrides/sudo
install -o root -g root -m 0644 $(CURDIR)/debian/sudo-ldap.lintian \
	debian/sudo-ldap/usr/share/lintian/overrides/sudo-ldap

binary-indep: build install

binary-arch: build install
dh_testdir
dh_testroot
dh_installdocs
dh_installexamples -A sudoers
dh_installinit -psudo -psudo-ldap --name=sudo
dh_installmanpages fnmatch.3
dh_installinfo -A
dh_installchangelogs CHANGES
dh_strip
dh_compress
dh_fixperms
chown root.root debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
chmod 4755 debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
[/code]

Edit : OK, il suffit de pas mettre le "–with-tty-tickets " en dernier.

Merci, tout fonctionne très bien :slightly_smiling:

[quote=“ggoodluck47”]Re,

Encore mieux, merci Eol :slightly_smiling: [/quote]C’était une question en fait, mais c’est vrai que le point d’interrogation était discret.

[quote=“ggoodluck47”]
Mais comme je suis méfiant je ne délègue mes pouvoirs qu’a une seule personne : MOI :slightly_smiling:[/quote]Moi aussi, mais je suis plusieurs sur ma machine. :smt003

Pour ma part la solution ideal et vraiment securiser c’est le timeout a 0, qui devrait, selon moi, être activer par defaut dans sudo. et si vraiment beaucoup de commande a balancer en root pour la maintenace -> passer en su avec X fermer reste le plus simple.

sinon, ajouter :alias sudo='sudo -k'avec les autres alias ne résoudrait t-il pas le problème ?

Le fichier sudo.diff.gz fournit, tu le copiues dans le répertoire, et soit tu le gunzip, soit tu fais

zcat sudo.diif.gz | patch -p 1

C’est un peu trop technique pour moi comme problème mais j’ai compris en substance. Mais alors c’est quoi? Un bug? un oubli? Une solution de facilité? C’est vraiment dingue cet histoire :open_mouth:
(c’est un coup a virer parano et a tout recompiler a la sauce “maison”)

L’option -k supprime tous les timestamp, ça n’est pas la même chose et deplus semble bugguée
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=306919)
Il s’agit ici de faire un timestamp par tty…

[quote=“eol”][quote=“ggoodluck47”]Re,

Encore mieux, merci Eol :slightly_smiling: [/quote]C’était une question en fait, mais c’est vrai que le point d’interrogation était discret.

[quote=“ggoodluck47”]
Mais comme je suis méfiant je ne délègue mes pouvoirs qu’a une seule personne : MOI :slightly_smiling:[/quote]Moi aussi, mais je suis plusieurs sur ma machine. :smt003[/quote]

Les autres sont des utilisateurs qui n’ont rien à faire sous sudo !

J’ai fait un paquet pour lenny i386:

deb boisson.homeip.net/debian lenny divers

http://boisson.homeip.net/debian/pool/lenny/i386/sudo_1.6.9p17-2_i386.deb
http://boisson.homeip.net/debian/pool/lenny/i386/sudo-ldap_1.6.9p17-2_i386.deb