Answers:
su可以使他成为拥有各种神奇力量的超级用户。
在第一版Unix su手册页中:
11/3/71 SU (I)
NAME su -- become privileged user
SYNOPSIS su password
DESCRIPTION su allows one to become the super--user, who has all sorts
of marvelous powers. In order for su to do its magic, the
user must pass as an argument a password. If the password
is correct, su will execute the shell with the UID set to
that of the super--user. To restore normal UID privileges,
type an end--of--file to the super--user shell
FILES
SEE ALSO shell
DIAGNOSTICS "Sorry" if password is wrong
BUGS
OWNER dmr, ken
来源minnie.tuhs.org/UnixTree/V5/usr/source/s2/su.c.html
su
在Unix系统上用于更改用户,通常用于以root用户身份运行命令。
还有...继续读
我又有了一个动摇的基础,即“ su”的含义。我找到了su.c可用的一些旧的Unix源代码。很好奇,我看着源头。我找到了什么?
/* su -- become super-user */ char password[100]; char pwbuf[100]; int ttybuf[3]; main() { register char *p, *q; extern fin; if(getpw(0, pwbuf)) goto badpw; (&fin)[1] = 0; p = pwbuf; while(*p != ':') if(*p++ == '\0') goto badpw; if(*++p == ':') goto ok; gtty(0, ttybuf); ttybuf[2] =& ~010; stty(0, ttybuf); printf("password: "); q = password; while((*q = getchar()) != '\n') if(*q++ == '\0') return; *q = '\0'; ttybuf[2] =| 010; stty(0, ttybuf); printf("\n"); q = crypt(password); while(*q++ == *p++); if(*--q == '\0' && *--p == ':') goto ok; goto error; badpw: printf("bad password file\n"); ok: setuid(0); execl("/bin/sh", "-", 0); printf("cannot execute shell\n"); error: printf("sorry\n"); }
该C文件的第一个注释是什么?
/* su -- become super-user */
su
被写入仅更改为系统上的root用户。并非旨在切换到拥有帐户的任何其他用户。“ su”表示“超级用户”。我需要坐一会儿。上面的代码来自Dennis Ritchie和Ken Thompson的第五版Unix。如果您了解Unix的历史,那么直到第六版才真正开始为Unix世界腾飞。因此,可以肯定地说,第五版及以前的大多数(如果不是全部)代码是由Dennis和Ken自己编写的。第五版Unix于1975年发布,因此没有比这更权威的了。