mirror of
https://git.freebsd.org/ports.git
synced 2025-05-31 02:16:27 -04:00
Welcome the new sudosh2 port. Sudosh2 was forked from sudosh in 2007.
This commit is contained in:
parent
424b01cedb
commit
d851da3345
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=225941
8 changed files with 18 additions and 296 deletions
|
@ -5,17 +5,19 @@
|
|||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= sudosh
|
||||
PORTVERSION= 1.8.2
|
||||
PORTREVISION= 5
|
||||
PORTNAME= sudosh2
|
||||
PORTVERSION= 1.0.2
|
||||
CATEGORIES= security
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
|
||||
MASTER_SITE_SUBDIR= ${PORTNAME:S/_/-/}
|
||||
DISTNAME= ${PORTNAME}-${PORTVERSION}
|
||||
EXTRACT_SUFX= .tbz2
|
||||
|
||||
MAINTAINER= cy@FreeBSD.org
|
||||
COMMENT= A sudo shell
|
||||
COMMENT= Second version of the sudo shell
|
||||
CONFLICTS= sudosh-*
|
||||
|
||||
USE_BZIP2= yes
|
||||
RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
MD5 (sudosh-1.8.2.tar.gz) = 7121efdac817e4a27111869f27fabea0
|
||||
SHA256 (sudosh-1.8.2.tar.gz) = 0a536d970accf1d4366bcb49441ef6773711df7d48501f72ca6cc451ca3e87fd
|
||||
SIZE (sudosh-1.8.2.tar.gz) = 135757
|
||||
MD5 (sudosh2-1.0.2.tbz2) = 594525a29be7fd328b80f3291eac4aca
|
||||
SHA256 (sudosh2-1.0.2.tbz2) = 70298502c3f1998118d90b2b5298a6ca2595ebca3e695e7871f68d792d2b3299
|
||||
SIZE (sudosh2-1.0.2.tbz2) = 167113
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
--- src/parse.c.orig Sun Jun 12 16:22:42 2005
|
||||
+++ src/parse.c Fri Jan 5 17:54:55 2007
|
||||
@@ -19,7 +19,8 @@
|
||||
void parse(option * o, const char *file)
|
||||
{
|
||||
FILE *f = fopen(file, "r");
|
||||
- unsigned int line_number, i;
|
||||
+ unsigned int line_number;
|
||||
+ int i;
|
||||
char line[BUFSIZ];
|
||||
char *arg, *cmt, *opt;
|
||||
config *scan;
|
|
@ -1,129 +0,0 @@
|
|||
--- src/sudosh.c.orig Sun Jun 12 19:35:07 2005
|
||||
+++ src/sudosh.c Fri Jan 5 14:14:05 2007
|
||||
@@ -28,6 +28,13 @@
|
||||
|
||||
#define WRITE(a, b, c) do_write(a, b, c, __FILE__, __LINE__)
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+#include <libutil.h>
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
static struct termios termorig;
|
||||
static struct winsize winorig;
|
||||
|
||||
@@ -545,19 +552,43 @@
|
||||
{
|
||||
char *sname;
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#define PTYLEN 16
|
||||
+ char sname_area[PTYLEN];
|
||||
+ struct termios tt;
|
||||
+ struct winsize win;
|
||||
+
|
||||
+ sname = sname_area;
|
||||
+ if (tcgetattr(STDIN_FILENO, &tt) == -1)
|
||||
+ {
|
||||
+ perror ("tcgetattr");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1)
|
||||
+ {
|
||||
+ perror ("ioctl");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (openpty(&p->mfd, &p->sfd, sname, &tt, &win) == -1) {
|
||||
+#else
|
||||
if ((p->mfd = open ("/dev/ptmx", O_RDWR)) == -1)
|
||||
{
|
||||
if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1)
|
||||
{
|
||||
+#endif
|
||||
perror ("Cannot open cloning master pty");
|
||||
return -1;
|
||||
+#ifndef __FreeBSD__
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
+#if !defined(__FreeBSD_version) || (defined(__FreeBSD_version) && __FreeBSD_version >= 500000)
|
||||
(void) unlockpt (p->mfd);
|
||||
(void) grantpt (p->mfd);
|
||||
|
||||
sname = (char *) ptsname (p->mfd);
|
||||
+#endif
|
||||
|
||||
if ((p->sfd = open (sname, O_RDWR)) == -1)
|
||||
{
|
||||
@@ -619,9 +650,14 @@
|
||||
for (i = 3; i < 100; ++i)
|
||||
close (i);
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
|
||||
+ (void) login_tty(pst->sfd);
|
||||
+#else
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (0, TCSETS, &termorig);
|
||||
#endif
|
||||
+#endif
|
||||
(void) ioctl (0, TIOCSWINSZ, &winorig);
|
||||
|
||||
setuid (getuid ());
|
||||
@@ -663,6 +699,13 @@
|
||||
{
|
||||
static struct termios termnew;
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ if (tcgetattr(ttyfd, &termorig) == -1)
|
||||
+ {
|
||||
+ perror ("tcgetattr failed");
|
||||
+ exit (EXIT_FAILURE);
|
||||
+ }
|
||||
+#else
|
||||
#ifdef TCGETS
|
||||
if (ioctl (ttyfd, TCGETS, &termorig) == -1)
|
||||
{
|
||||
@@ -670,6 +713,7 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
if (ioctl (ttyfd, TIOCGWINSZ, &winorig) == -1)
|
||||
{
|
||||
@@ -677,6 +721,11 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) cfmakeraw(&termnew);
|
||||
+ termnew.c_lflag &= ~ECHO;
|
||||
+ (void) tcsetattr(ttyfd, TCSAFLUSH, &termnew);
|
||||
+#else
|
||||
termnew.c_cc[VEOF] = 1;
|
||||
termnew.c_iflag = BRKINT | ISTRIP | IXON | IXANY;
|
||||
termnew.c_oflag = 0;
|
||||
@@ -686,13 +735,19 @@
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (ttyfd, TCSETS, &termnew);
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void
|
||||
bye (int signum)
|
||||
{
|
||||
+
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
|
||||
+#else
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (0, TCSETS, &termorig);
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
close (timing.fd);
|
|
@ -5,17 +5,19 @@
|
|||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= sudosh
|
||||
PORTVERSION= 1.8.2
|
||||
PORTREVISION= 5
|
||||
PORTNAME= sudosh2
|
||||
PORTVERSION= 1.0.2
|
||||
CATEGORIES= security
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
|
||||
MASTER_SITE_SUBDIR= ${PORTNAME:S/_/-/}
|
||||
DISTNAME= ${PORTNAME}-${PORTVERSION}
|
||||
EXTRACT_SUFX= .tbz2
|
||||
|
||||
MAINTAINER= cy@FreeBSD.org
|
||||
COMMENT= A sudo shell
|
||||
COMMENT= Second version of the sudo shell
|
||||
CONFLICTS= sudosh-*
|
||||
|
||||
USE_BZIP2= yes
|
||||
RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
MD5 (sudosh-1.8.2.tar.gz) = 7121efdac817e4a27111869f27fabea0
|
||||
SHA256 (sudosh-1.8.2.tar.gz) = 0a536d970accf1d4366bcb49441ef6773711df7d48501f72ca6cc451ca3e87fd
|
||||
SIZE (sudosh-1.8.2.tar.gz) = 135757
|
||||
MD5 (sudosh2-1.0.2.tbz2) = 594525a29be7fd328b80f3291eac4aca
|
||||
SHA256 (sudosh2-1.0.2.tbz2) = 70298502c3f1998118d90b2b5298a6ca2595ebca3e695e7871f68d792d2b3299
|
||||
SIZE (sudosh2-1.0.2.tbz2) = 167113
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
--- src/parse.c.orig Sun Jun 12 16:22:42 2005
|
||||
+++ src/parse.c Fri Jan 5 17:54:55 2007
|
||||
@@ -19,7 +19,8 @@
|
||||
void parse(option * o, const char *file)
|
||||
{
|
||||
FILE *f = fopen(file, "r");
|
||||
- unsigned int line_number, i;
|
||||
+ unsigned int line_number;
|
||||
+ int i;
|
||||
char line[BUFSIZ];
|
||||
char *arg, *cmt, *opt;
|
||||
config *scan;
|
|
@ -1,129 +0,0 @@
|
|||
--- src/sudosh.c.orig Sun Jun 12 19:35:07 2005
|
||||
+++ src/sudosh.c Fri Jan 5 14:14:05 2007
|
||||
@@ -28,6 +28,13 @@
|
||||
|
||||
#define WRITE(a, b, c) do_write(a, b, c, __FILE__, __LINE__)
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+#include <libutil.h>
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
static struct termios termorig;
|
||||
static struct winsize winorig;
|
||||
|
||||
@@ -545,19 +552,43 @@
|
||||
{
|
||||
char *sname;
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#define PTYLEN 16
|
||||
+ char sname_area[PTYLEN];
|
||||
+ struct termios tt;
|
||||
+ struct winsize win;
|
||||
+
|
||||
+ sname = sname_area;
|
||||
+ if (tcgetattr(STDIN_FILENO, &tt) == -1)
|
||||
+ {
|
||||
+ perror ("tcgetattr");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1)
|
||||
+ {
|
||||
+ perror ("ioctl");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (openpty(&p->mfd, &p->sfd, sname, &tt, &win) == -1) {
|
||||
+#else
|
||||
if ((p->mfd = open ("/dev/ptmx", O_RDWR)) == -1)
|
||||
{
|
||||
if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1)
|
||||
{
|
||||
+#endif
|
||||
perror ("Cannot open cloning master pty");
|
||||
return -1;
|
||||
+#ifndef __FreeBSD__
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
+#if !defined(__FreeBSD_version) || (defined(__FreeBSD_version) && __FreeBSD_version >= 500000)
|
||||
(void) unlockpt (p->mfd);
|
||||
(void) grantpt (p->mfd);
|
||||
|
||||
sname = (char *) ptsname (p->mfd);
|
||||
+#endif
|
||||
|
||||
if ((p->sfd = open (sname, O_RDWR)) == -1)
|
||||
{
|
||||
@@ -619,9 +650,14 @@
|
||||
for (i = 3; i < 100; ++i)
|
||||
close (i);
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
|
||||
+ (void) login_tty(pst->sfd);
|
||||
+#else
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (0, TCSETS, &termorig);
|
||||
#endif
|
||||
+#endif
|
||||
(void) ioctl (0, TIOCSWINSZ, &winorig);
|
||||
|
||||
setuid (getuid ());
|
||||
@@ -663,6 +699,13 @@
|
||||
{
|
||||
static struct termios termnew;
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ if (tcgetattr(ttyfd, &termorig) == -1)
|
||||
+ {
|
||||
+ perror ("tcgetattr failed");
|
||||
+ exit (EXIT_FAILURE);
|
||||
+ }
|
||||
+#else
|
||||
#ifdef TCGETS
|
||||
if (ioctl (ttyfd, TCGETS, &termorig) == -1)
|
||||
{
|
||||
@@ -670,6 +713,7 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
if (ioctl (ttyfd, TIOCGWINSZ, &winorig) == -1)
|
||||
{
|
||||
@@ -677,6 +721,11 @@
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) cfmakeraw(&termnew);
|
||||
+ termnew.c_lflag &= ~ECHO;
|
||||
+ (void) tcsetattr(ttyfd, TCSAFLUSH, &termnew);
|
||||
+#else
|
||||
termnew.c_cc[VEOF] = 1;
|
||||
termnew.c_iflag = BRKINT | ISTRIP | IXON | IXANY;
|
||||
termnew.c_oflag = 0;
|
||||
@@ -686,13 +735,19 @@
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (ttyfd, TCSETS, &termnew);
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void
|
||||
bye (int signum)
|
||||
{
|
||||
+
|
||||
+#ifdef __FreeBSD__
|
||||
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
|
||||
+#else
|
||||
#ifdef TCSETS
|
||||
(void) ioctl (0, TCSETS, &termorig);
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
close (timing.fd);
|
Loading…
Add table
Reference in a new issue