diff -ruN srsh-0.1.4.orig/srsh.c srsh-0.1.4/srsh.c
--- srsh-0.1.4.orig/srsh.c	Mon Jan 10 07:36:54 2000
+++ srsh-0.1.4/srsh.c	Fri Oct 13 16:51:55 2000
@@ -46,14 +46,17 @@
 {"cp","/bin/cp","copy files/directories"},
 {"mv","/bin/mv","move directories"},
 {"rm","/bin/rm","remove directories"},
-{"pine","/usr/bin/pine","mailer"},
-{"passwd","/usr/bin/passwd","change password"},
+/* {"pine","/usr/bin/pine","mailer"},           */
+/* {"passwd","/usr/bin/passwd","change password"}, */
 {"w","/usr/bin/w","show who is in system"},
 {"who","/bin/who","same as w"},
 {"gzip","/bin/gzip","archiver" },
 {"gunzip","/bin/gunzip","dearchiver"},
-{"finger","/bin/finger","similar to who"},
-{"lynx","/usr/bin/lynx","web browser"},
+{"tr","/bin/tr","character translator"},
+{"xcode","/bin/xcode","russian charsets converter"},
+{"cat","/bin/cat","concatenate files & print to STDOUT (standart output)"},
+/* {"finger","/bin/finger","similar to who"},   */
+/* {"lynx","/usr/bin/lynx","web browser"},      */
 /* add your commands here */
 {"\0","\0"}};
 
@@ -106,6 +109,7 @@
 
 void check_permitted(void) {
 struct utmp *ut;
+
 int count=0;
 	setutent();
 	while ((ut=getutent()) != NULL) {
@@ -125,8 +129,9 @@
 	}
 	endutent();
 	if (count > MAX_SESSIONS) { 
-		printf("\nERROR: multiple sessions are not permitted!\n"
-       		"Contact your system administrator about the case\n");
+		printf("\nERROR: multiple sessions, more then %i, are not permitted!\n"
+       		"Contact your system administrator about the case\n",\
+		MAX_SESSIONS);
 		fgetc(stdin);
 		exit(1);
 	}
@@ -135,13 +140,14 @@
 void sig_handler(int sig) {
 
 printf("sig: %i received\n",sig);
-if(sig == SIGKILL || sig == SIGTERM || sig == SIGQUIT) 
-				exit(1);
+if(sig == SIGKILL || sig == SIGTERM || sig == SIGQUIT)
+ {openlog ("smrsh", LOG_PID, LOG_AUTHPRIV|LOG_NOTICE);
+  syslog(LOG_AUTHPRIV|LOG_NOTICE,"user '%s' shell is exitting on signal\
+  %i",username,sig);
+  exit(1);
+ }
 }
 
-
-
-
 int i_term(char **args) {
 
 setenv("TERM","vt100",1);
@@ -177,7 +183,7 @@
 }
 
 int i_exit(char **args) {
-
+syslog(LOG_AUTHPRIV|LOG_NOTICE,"user '%s' requested exit function", username);
 printf("Bye!\n");
 fflush(stdout);
 exit(1);
@@ -291,7 +297,12 @@
 	initialize();
 	put_banner();
 	while(fgets(buf,BUF_SIZE-1,stdin)) {
-	if(strlen(buf)) execute_command(buf);
+	if(strlen(buf))
+	{openlog ("smrsh", LOG_PID, LOG_AUTHPRIV|LOG_INFO);
+	 syslog(LOG_AUTHPRIV|LOG_INFO,"user %s entered '%s'\n",
+						username,buf);
+	 execute_command(buf);
+	}
 #ifdef DEBUG
 	fprintf(stderr,"command executed\n");
 #endif
