คำว่า "superuser" มาจากที่ใด


55

คำว่า "superuser" มาจากที่ใด มันสั้นลงหรือไม่ "ผู้ดูแลระบบ" หรือเป็นเพียงตัวบ่งชี้ระดับพลังงานที่ผู้ใช้ดังกล่าวถืออยู่ในระบบ?


ฉันอยากรู้ว่าทำไม superuser.com จึงมีชื่อว่า superuser มันคือการเชื่อมต่อเดียวกันหรือไม่ มันมาจาก Unix และผู้ใช้ขั้นสูงจากระบบปฏิบัติการนั้นหรือไม่?
Corporate Geek

คำตอบ:


55

คำว่า "superuser" มาจากที่ใด

ซูอนุญาตให้ใครคนหนึ่งกลายเป็นผู้ใช้ระดับสูงที่มีพลังมหัศจรรย์ทุกประเภท

จากหน้าแรกของ Unix su man 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" ผมพบว่ารหัสที่มา Unix บางเก่าที่ 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" หมายถึง "super-user" ฉันต้องการที่จะนั่งลงที่สอง

รหัสข้างต้นมาจากรุ่นที่ห้าของ Unix โดย Dennis Ritchie และ Ken Thompson ถ้าคุณรู้ประวัติศาสตร์ของ Unix มันก็ยังไม่ถึงรุ่นที่หกที่สิ่งต่าง ๆ เริ่มต้นเพื่อโลกยูนิกซ์ ดังนั้นจึงปลอดภัยที่จะบอกว่าส่วนใหญ่ถ้าไม่ใช่ทั้งหมดของรหัสในรุ่นที่ห้าและก่อนหน้านี้ถูกเขียนโดย Dennis และ Ken เอง Unix รุ่นที่ห้าวางจำหน่ายในปี 1975 ดังนั้นจึงไม่ได้รับอนุญาตมากไปกว่านี้

แหล่งที่มาของแอรอน Toponce: ความหมายของ 'สุ'


อ่านเพิ่มเติม


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Geek

35

OED (paywalled) ให้นิรุกติศาสตร์ต่อไปนี้:

ซุปเปอร์คำนำหน้าผู้ใช้ + n

ตัวอย่างแรกสุดที่พวกเขาอยู่ในรายการมาจาก K. Thompson และ DM Ritchie (1971): "Man Unix Programmer's Man":

เฉพาะผู้ใช้ขั้นสูงเท่านั้นที่สามารถเรียกใช้คำสั่งนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.