[Systrace] setproctitle request

John Wong johnw.mail at gmail.com
Sun Apr 10 13:42:16 EDT 2005


when i use "my_isp_login_program -u id -p passwd" with systrace,
the other people use "ps" command can see my "id/passwd",
can you add something like "setproctitle()" does in systrace??
(i use openbsd, thanks!!)


-------------------------------------------------------

--- systrace.c.orig	Sat Jan 24 04:51:18 2004
+++ systrace.c	Mon Apr 11 01:15:06 2005
@@ -587,44 +587,57 @@
 	int setcredentials = 0;
 	uid_t cr_uid;
 	gid_t cr_gid;
+	char title[FILENAME_MAX];
 
+	strlcpy(title, "[ ", sizeof(title));
+
 	while ((c = getopt(argc, argv, "c:aAeituUCd:g:f:p:")) != -1) {
 		switch (c) {
 		case 'c':
 			setcredentials = 1;
 			if (get_uid_gid(optarg, &cr_uid, &cr_gid) == -1)
 				usage();
+			strlcat(title, "-c ", sizeof(title));
 			break;
 		case 'a':
 			if (allow)
 				usage();
 			automatic = 1;
+			strlcat(title, "-a ", sizeof(title));
 			break;
 		case 'd':
 			policypath = optarg;
+			strlcat(title, "-d ", sizeof(title));
 			break;
 		case 'e':
 			logstderr = 1;
+			strlcat(title, "-e ", sizeof(title));
 			break;
 		case 'A':
 			if (automatic)
 				usage();
 			allow = 1;
+			strlcat(title, "-A ", sizeof(title));
 			break;
 		case 'u':
 			noalias = 1;
+			strlcat(title, "-u ", sizeof(title));
 			break;
 		case 'i':
 			inherit = 1;
+			strlcat(title, "-i ", sizeof(title));
 			break;
 		case 'g':
 			guipath = optarg;
+			strlcat(title, "-g ", sizeof(title));
 			break;
 		case 'C':
 			cradle = 1;
+			strlcat(title, "-C ", sizeof(title));
 			break;
 		case 'f':
 			filename = optarg;
+			strlcat(title, "-f ", sizeof(title));
 			break;
 		case 'p':
 			if (setcredentials)
@@ -633,12 +646,15 @@
 				warnx("bad pid: %s", optarg);
 				usage();
 			}
+			strlcat(title, "-p ", sizeof(title));
 			break;
 		case 't':
 			usex11 = 0;
+			strlcat(title, "-t ", sizeof(title));
 			break;
 		case 'U':
 			userpolicy = 0;
+			strlcat(title, "-U ", sizeof(title));
 			break;
 		default:
 			usage();
@@ -650,6 +666,11 @@
 
 	if (argc == 0 || (pidattach && *argv[0] != '/'))
 		usage();
+
+	strlcat(title, argv[0], sizeof(title));
+	strlcat(title, " ]", sizeof(title));
+
+	setproctitle(title);
 
 	systrace_parameters();

------------------------------------------------------


More information about the systrace mailing list