답변:
su는 모든 종류의 놀라운 힘을 가진 수퍼 유저가 될 수 있습니다.
로부터 초판 유닉스 스와 man 페이지 :
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 시스템에서 사용자를 변경하는 데 사용되며 일반적으로 루트 사용자로 명령을 실행하는 데 사용됩니다.
그리고 ...에 읽기
"su"의 의미로 또 다른 기초가 흔들리는 순간이있었습니다. su.c를 사용할 수있는 오래된 유닉스 소스 코드를 찾았습니다 . 궁금해서 소스를 보았습니다. 무엇을 찾았습니까?
/* 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
시스템의 루트 사용자로만 변경되도록 작성되었습니다. 계정이있는 다른 사용자로 전환하도록 설계되지 않았습니다. "su"는 "슈퍼 유저"를 의미했습니다. 나는 잠시 앉아야한다.위의 코드는 Dennis Ritchie와 Ken Thompson의 Unix 5 판에서 나온 것입니다. 유닉스의 역사를 알고 있다면, 제 6 판까지는 실제로 유닉스 세계에서 일이 시작되었습니다. 따라서 다섯 번째 판 및 이전 버전의 코드 중 대부분은 전부는 아니지만 Dennis와 Ken이 직접 작성한 것입니다. 1975 년에 릴리스 된 5 판 유닉스는 그보다 훨씬 권위적이지 않습니다.