summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2013-12-05 22:39:43 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2013-12-05 22:39:43 +0100
commit5c000bbe6378de33b55080bcc8be1cfb907c2d22 (patch)
tree3b6ab6e0730d7da4822118e267c8409d53d5de44
parent919863dab3490b624fdb6197566cf9e3b5980c2a (diff)
cpu: add -n flag for the remote site to allow "none" authentification method (inspired from sources cpu-noauth patch)
-rw-r--r--sys/man/1/cpu17
-rw-r--r--sys/src/cmd/cpu.c9
2 files changed, 24 insertions, 2 deletions
diff --git a/sys/man/1/cpu b/sys/man/1/cpu
index 812f2c636..b523911a2 100644
--- a/sys/man/1/cpu
+++ b/sys/man/1/cpu
@@ -30,6 +30,8 @@ cpu \- connection to CPU server
.PP
.B cpu
[
+.B -n
+] [
.B -A
.I address
] [
@@ -127,6 +129,11 @@ back to
This is used if the local host is in a different protection domain than
the server or if the user wants to log into the server as a different
user.
+.TP
+.B none
+This skips authentication. This requires the
+.IR -n
+flag to be specified on the remote side.
.PD
.PP
The
@@ -181,6 +188,16 @@ flag is similar but simulates the pre-9P2000 version
of the
.I cpu
protocol.
+The
+.B -n
+option allows using the
+.B none
+authentication method for incoming connections and must be
+specified before the
+.B -R
+and
+.B -O
+flags.
.PP
The
.B -p
diff --git a/sys/src/cmd/cpu.c b/sys/src/cmd/cpu.c
index a3bf5c371..a7e10fcbc 100644
--- a/sys/src/cmd/cpu.c
+++ b/sys/src/cmd/cpu.c
@@ -30,6 +30,7 @@ int notechan;
int exportpid;
char *system;
int cflag;
+int nflag;
int dbg;
char *user;
char *patternfile;
@@ -59,7 +60,7 @@ struct AuthMethod {
{
{ "p9", p9auth, srvp9auth,},
{ "netkey", netkeyauth, netkeysrvauth,},
-// { "none", noauth, srvnoauth,},
+ { "none", noauth, srvnoauth,},
{ nil, nil}
};
AuthMethod *am = authmethod; /* default is p9 */
@@ -176,6 +177,10 @@ main(int argc, char **argv)
case 'f':
/* ignored but accepted for compatibility */
break;
+ case 'n':
+ /* must be specified before -R/-O */
+ nflag++;
+ break;
case 'A':
anstring = EARGF(usage());
break;
@@ -349,7 +354,7 @@ remoteside(int old)
if(n < 0)
fatal("authenticating: %r");
}
- if(setamalg(cmd) < 0){
+ if(setamalg(cmd) < 0 || (nflag == 0 && am->sf == srvnoauth)) {
writestr(fd, "unsupported auth method", nil, 0);
fatal("bad auth method %s", cmd);
} else