summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-sysadm/2010-November/000160.html
diff options
context:
space:
mode:
Diffstat (limited to 'zarb-ml/mageia-sysadm/2010-November/000160.html')
-rw-r--r--zarb-ml/mageia-sysadm/2010-November/000160.html315
1 files changed, 315 insertions, 0 deletions
diff --git a/zarb-ml/mageia-sysadm/2010-November/000160.html b/zarb-ml/mageia-sysadm/2010-November/000160.html
new file mode 100644
index 000000000..ba272f230
--- /dev/null
+++ b/zarb-ml/mageia-sysadm/2010-November/000160.html
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [Mageia-sysadm] [78] add module to install shell to restrict access to only svn, git, and later package submit
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20%5B78%5D%20add%20module%20to%20install%20shell%20to%20restrict%20access%0A%20to%20only%20svn%2C%20git%2C%20and%20later%20package%20submit&In-Reply-To=%3C20101102175553.496622B170%40krampouezh.mageia.org%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000158.html">
+ <LINK REL="Next" HREF="000170.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[Mageia-sysadm] [78] add module to install shell to restrict access to only svn, git, and later package submit</H1>
+ <B>root at mageia.org</B>
+ <A HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20%5B78%5D%20add%20module%20to%20install%20shell%20to%20restrict%20access%0A%20to%20only%20svn%2C%20git%2C%20and%20later%20package%20submit&In-Reply-To=%3C20101102175553.496622B170%40krampouezh.mageia.org%3E"
+ TITLE="[Mageia-sysadm] [78] add module to install shell to restrict access to only svn, git, and later package submit">root at mageia.org
+ </A><BR>
+ <I>Tue Nov 2 18:55:53 CET 2010</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000158.html">[Mageia-sysadm] [77] add champagne in dns
+</A></li>
+ <LI>Next message: <A HREF="000170.html">[Mageia-sysadm] [79] - add buchan key
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#160">[ date ]</a>
+ <a href="thread.html#160">[ thread ]</a>
+ <a href="subject.html#160">[ subject ]</a>
+ <a href="author.html#160">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Revision: 78
+Author: boklm
+Date: 2010-11-02 18:55:53 +0100 (Tue, 02 Nov 2010)
+Log Message:
+-----------
+add module to install shell to restrict access to only svn, git, and later package submit
+
+Added Paths:
+-----------
+ puppet/modules/restrictshell/
+ puppet/modules/restrictshell/manifests/
+ puppet/modules/restrictshell/manifests/init.pp
+ puppet/modules/restrictshell/templates/
+ puppet/modules/restrictshell/templates/membersh-conf.pl
+ puppet/modules/restrictshell/templates/sv_membersh.pl
+
+Added: puppet/modules/restrictshell/manifests/init.pp
+===================================================================
+--- puppet/modules/restrictshell/manifests/init.pp (rev 0)
++++ puppet/modules/restrictshell/manifests/init.pp 2010-11-02 17:55:53 UTC (rev 78)
+@@ -0,0 +1,29 @@
++#TODO: add support for pkgsubmit
++class restrictshell {
++ $allow_svn = &quot;0&quot;
++ $allow_git = &quot;0&quot;
++ $allow_rsync = &quot;0&quot;
++ $allow_pkgsubmit = &quot;0&quot;
++
++ class allow_svn_git_pkgsubmit {
++ $allow_svn = &quot;1&quot;
++ $allow_git = &quot;1&quot;
++ $allow_pkgsubmit = &quot;1&quot;
++ }
++
++ file { '/usr/local/bin/sv_membersh.pl':
++ ensure =&gt; present,
++ owner =&gt; root,
++ group =&gt; root,
++ mode =&gt; 755,
++ content =&gt; template(&quot;restrictshell/sv_membersh.pl&quot;),
++ }
++
++ file { '/etc/membersh-conf.pl':
++ ensure =&gt; present,
++ owner =&gt; root,
++ group =&gt; root,
++ mode =&gt; 755,
++ content =&gt; template(&quot;restrictshell/membersh-conf.pl&quot;),
++ }
++}
+
+Added: puppet/modules/restrictshell/templates/membersh-conf.pl
+===================================================================
+--- puppet/modules/restrictshell/templates/membersh-conf.pl (rev 0)
++++ puppet/modules/restrictshell/templates/membersh-conf.pl 2010-11-02 17:55:53 UTC (rev 78)
+@@ -0,0 +1,13 @@
++$use_svn = &quot;&lt;%= allow_svn %&gt;&quot;;
++$bin_svn = &quot;/usr/bin/svnserve&quot;;
++$regexp_svn = &quot;^svnserve -t\$&quot;;
++#@prepend_args_svn = ( '-r', '/svn' );
+<A HREF="https://www.mageia.org/mailman/listinfo/mageia-sysadm">+ at prepend_args_svn</A> = ();
++
++$use_git = &quot;&lt;%= allow_git %&gt;&quot;;
++$bin_git = &quot;/usr/bin/git-shell&quot;;
++
++$use_rsync = &quot;&lt;%= allow_rsync %&gt;&quot;;
++$bin_rsync = &quot;/usr/bin/rsync&quot;;
++$regexp_rsync = &quot;^rsync --server&quot;;
++$regexp_dir_rsync = &quot;^/.*&quot;;
+
+
+Property changes on: puppet/modules/restrictshell/templates/membersh-conf.pl
+___________________________________________________________________
+Added: svn:executable
+ + *
+
+Added: puppet/modules/restrictshell/templates/sv_membersh.pl
+===================================================================
+--- puppet/modules/restrictshell/templates/sv_membersh.pl (rev 0)
++++ puppet/modules/restrictshell/templates/sv_membersh.pl 2010-11-02 17:55:53 UTC (rev 78)
+@@ -0,0 +1,150 @@
++#!/usr/bin/perl
++# This file is part of the Savane project
++# &lt;<A HREF="http://gna.org/projects/savane/">http://gna.org/projects/savane/</A>&gt;
++#
++# $Id$
++#
++# Copyright 2004-2005 (c) Loic Dachary &lt;loic--gnu.org&gt;
++# Mathieu Roy &lt;yeupou--gnu.org&gt;
++# Timothee Besset &lt;ttimo--ttimo.net&gt;
++#
++# The Savane project is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License
++# as published by the Free Software Foundation; either version 2
++# of the License, or (at your option) any later version.
++#
++# The Savane project is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with the Savane project; if not, write to the Free Software
++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++#
++#
++
++# Login shell for people who should only have limited access.
++# You probably should add/modify the following option of your sshd_config
++# like below (see sshd_config manual for more details):
++# PermitEmptyPasswords no
++# PasswordAuthentication no
++# AllowTcpForwarding no
++
++use strict;
++
++$ENV{PATH}=&quot;/bin:/usr/bin&quot;;
++$ENV{CVSEDITOR}=&quot;/bin/false&quot;;
++
++# Import conf options
++our $use_cvs = &quot;0&quot;;
++our $bin_cvs = &quot;/usr/bin/cvs&quot;;
++
++our $use_scp = &quot;0&quot;;
++our $bin_scp = &quot;/usr/bin/scp&quot;;
++our $regexp_scp = &quot;^(scp .*-t /upload)|(scp .*-t /var/ftp)&quot;;
++
++our $use_sftp = &quot;0&quot;;
++our $bin_sftp = &quot;/usr/lib/sftp-server&quot;;
++our $regexp_sftp = &quot;^(/usr/lib/ssh/sftp-server|/usr/lib/sftp-server|/usr/libexec/sftp-server|/usr/lib/openssh/sftp-server)&quot;;
++
++our $use_rsync = &quot;0&quot;;
++our $bin_rsync = &quot;/usr/bin/rsync&quot;;
++our $regexp_rsync = &quot;^rsync --server&quot;;
++our $regexp_dir_rsync = &quot;^(/upload)|(/var/ftp)&quot;;
++
++our $use_svn = &quot;0&quot;;
++our $bin_svn = &quot;/usr/bin/svnserve&quot;;
++our $regexp_svn = &quot;^svnserve -t&quot;;
++our @prepend_args_svn = ( '-r', '/svn' );
++
++our $use_git = &quot;0&quot;;
++our $bin_git = &quot;/usr/bin/git-shell&quot;;
++
++# Open configuration file
++if (-e &quot;/etc/membersh-conf.pl&quot;) {
++ do &quot;/etc/membersh-conf.pl&quot; or die &quot;System misconfiguration, contact administrators. Exiting&quot;;
++} else {
++ die &quot;System misconfiguration, contact administrators. Exiting&quot;;
++}
++
++# A configuration file /etc/membersh-conf.pl must exists and be executable.
++# Here come an example:
++#
++# $use_cvs = &quot;1&quot;;
++# $bin_cvs = &quot;/usr/bin/cvs&quot;;
++#
++# $use_scp = &quot;1&quot;;
++# $bin_scp = &quot;/usr/bin/scp&quot;;
++# $regexp_scp = &quot;^scp .*-t (/upload)|(/var/ftp)&quot;;
++
++# $use_sftp = &quot;1&quot;;
++# $bin_sftp = &quot;/usr/lib/sftp-server&quot;;
++# $regexp_sftp = &quot;^(/usr/lib/ssh/sftp-server|/usr/lib/sftp-server|/usr/libexec/sftp-server)&quot;;
++#
++# $use_rsync = &quot;1&quot;;
++# $bin_rsync = &quot;/usr/bin/rsync&quot;;
++# $regexp_rsync = &quot;^rsync --server&quot;;
++# $regexp_dir_rsync = &quot;^(/upload)|(/var/ftp)&quot;;
++
++
++if ($#ARGV == 1 and $ARGV[0] eq &quot;-c&quot;) {
++ if ($use_cvs and $ARGV[1] eq 'cvs server') {
++
++ # Run a cvs server command
++ exec($bin_cvs, 'server') or die(&quot;Failed to exec $bin_cvs: $!&quot;);
++
++ } elsif ($use_scp and
++ $ARGV[1] =~ m:$regexp_scp:) {
++
++ # Authorize scp command
++ my (@args) = split(' ', $ARGV[1]);
++ shift(@args);
++ exec($bin_scp, @args);
++
++ } elsif ($use_sftp and
++ $ARGV[1] =~ m:$regexp_sftp:) {
++
++ # Authorize sftp login
++ exec($bin_sftp) or die(&quot;Failed to exec $bin_sftp: $!&quot;);
++
++ } elsif ($use_rsync and
++ $ARGV[1] =~ m:$regexp_rsync:) {
++
++ my ($rsync, @rest) = split(' ', $ARGV[1]);
++ my ($dir) = $rest[$#rest];
++
++ # Authorize rsync command, if the directory is acceptable
++ if ($dir =~ m:$regexp_dir_rsync:) {
++ exec($bin_rsync, @rest) or die(&quot;Failed to exec $bin_rsync: $!&quot;);
++ }
++
++ } elsif ($use_svn and
++ $ARGV[1] =~ m:$regexp_svn:) {
++
++ # authorize svnserve in tunnel mode, with the svn root prepended
++ my (@args) = @prepend_args_svn;
++ my (@args_user) = split(' ', $ARGV[1]);
++ shift( @args_user );
++ push( @args, @args_user );
++ exec($bin_svn, @args) or die(&quot;Failed to exec $bin_svn: $!&quot;);
++
++ } elsif ($use_git and $ARGV[1] =~ m:git-.+:) {
++
++ # Delegate filtering to git-shell
++ exec($bin_git, @ARGV) or die(&quot;Failed to exec $bin_git: $!&quot;);
++
++ }
++}
++
++unless (-e &quot;/etc/membersh-errormsg&quot;) {
++ print STDERR &quot;You tried to execute: @ARGV[1..$#ARGV]\n&quot;;
++ print STDERR &quot;Sorry, you are not allowed to execute that command.\n&quot;;
++} else {
++ open(ERRORMSG, &quot;&lt; /etc/membersh-errormsg&quot;);
++ while (&lt;ERRORMSG&gt;) {
++ print STDERR $_;
++ }
++ close(ERRORMSG);
++}
++exit(1);
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;/pipermail/mageia-sysadm/attachments/20101102/51ca00d6/attachment-0001.html&gt;
+</PRE>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000158.html">[Mageia-sysadm] [77] add champagne in dns
+</A></li>
+ <LI>Next message: <A HREF="000170.html">[Mageia-sysadm] [79] - add buchan key
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#160">[ date ]</a>
+ <a href="thread.html#160">[ thread ]</a>
+ <a href="subject.html#160">[ subject ]</a>
+ <a href="author.html#160">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://www.mageia.org/mailman/listinfo/mageia-sysadm">More information about the Mageia-sysadm
+mailing list</a><br>
+</body></html>