“Su”, “sudo -s”, “sudo -i”, “sudo su” අතර ඇති වෙනස්කම් මොනවාද?


160

මම දැනටමත් එය අත්පොතෙන් කියවා ඇති නමුත් මට වෙනසක් නොපෙනේ ..

su - පරිශීලක හැඳුනුම්පත වෙනස් කිරීම හෝ සුපිරි පරිශීලකයා බවට පත්වීම

sudo -s [command]

මෙම -spasswd (5) නිශ්චිතව දක්වා එය කට්ටලයක් හෝ ෂෙල් නම් විධාන () විකල්පය ෙෂල් පරිසර විචල්ය නිරූපනය කර ඇති ෂෙල් දිවෙන. විධානයක් නියම කර ඇත්නම්, එය ක්‍රියාත්මක කිරීම සඳහා කවචයට යවනු ලැබේ. එසේ නොමැතිනම් අන්තර්ක්‍රියාකාරී කවචයක් ක්‍රියාත්මක වේ.

sudo -i අත්පොතෙහි විස්තරය අතුරුදහන් වේ


8
එසේම, විශ්වාස නොකළ su userකවච වලින් ප්‍රවේශ වීමට භාවිතා නොකරන්න , නමුත් su - user. Unix.stackexchange.com/q/7013/8250
Lekensteyn

E ලෙකන්ස්ටයින් වාව්, විශිෂ්ට උදාහරණයක්. thx for LOL :)
törzsmókus

1
පරණ ආ ment ාව සැමවිටම මතක තබා ගන්න: මූලයේ නම නිෂ් ain ල ලෙස නොකියන්න!
törzsmókus

නොකියවීම sudo -iනරක ය, නමුත් ඔබට එය භාවිතා කළ හැකිය
කොලොබ් කැනියොන්

ආසන්න අනුපිටපත: askubuntu.com/questions/376199/…
පෝස්ට්

Answers:


127

මෙම විධානයන් අතර ඇති ප්‍රධාන වෙනස වන්නේ ඒවායේ ක්‍රියාකාරිත්වයට ප්‍රවේශය සීමා කරන ආකාරයයි.

su (එහි තේරුම "ආදේශක පරිශීලකයා" හෝ "ස්විච් පරිශීලකයා") - හරියටම එය කරයි, එය ඉලක්කගත පරිශීලකයාගේ වරප්‍රසාද සමඟ තවත් ෂෙල් අවස්ථාවක් ආරම්භ කරයි. එය කිරීමට ඔබට අයිතියක් ඇති බව සහතික කිරීම සඳහා, එය ඉලක්ක පරිශීලකයාගේ මුරපදය ඉල්ලා සිටී . එබැවින්, root වීමට නම්, ඔබ root මුරපදය දැන සිටිය යුතුය. ඔබේ පරිගණකයේ විධාන root ලෙස ක්‍රියාත්මක කිරීමට අවශ්‍ය පරිශීලකයින් කිහිප දෙනෙකු සිටී නම්, ඔවුන් සියල්ලන්ම root මුරපදය දැන සිටිය යුතුය - එය එකම මුරපදය වනු ඇති බව සලකන්න. ඔබට එක් පරිශීලකයෙකුගෙන් පරිපාලක අවසරය අවලංගු කිරීමට අවශ්‍ය නම්, ඔබට root මුරපදය වෙනස් කළ යුතු අතර එය ප්‍රවේශය තබා ගත යුතු අයට පමණක් පැවසිය යුතුය - අවුල් සහගතය.

sudo (හ්ම් ... සිහිවටන යනු කුමක්ද? සුපර්-පරිශීලක-ඩී?) සම්පූර්ණයෙන්ම වෙනස් ය. එය වින්‍යාස ගොනුවක් (/ etc / sudoers) භාවිතා කරන අතර එමඟින් පරිශීලකයින්ට නිශ්චිත ක්‍රියාවන් සඳහා අයිතිවාසිකම් ඇති බව ලැයිස්තුගත කරයි (විධාන root ලෙස ක්‍රියාත්මක කරන්න.) ආයාචනා කළ විට, එය ආරම්භ කළ පරිශීලකයාගේ මුරපදය ඉල්ලා සිටී - පුද්ගලයා සහතික කිරීම සඳහා ටර්මිනලය ඇත්ත වශයෙන්ම ලැයිස්තුගත කර ඇති එකම "ජෝ" ය /etc/sudoers. පුද්ගලයෙකුගෙන් පරිපාලක වරප්‍රසාද අවලංගු කිරීමට, ඔබට අවශ්‍ය වන්නේ වින්‍යාස ගොනුව සංස්කරණය කිරීමයි (නැතහොත් පරිශීලකයා එම වින්‍යාසයේ ලැයිස්තුගත කර ඇති කණ්ඩායමකින් ඉවත් කරන්න). මෙහි ප්‍රති results ලය වන්නේ වරප්‍රසාද වඩා පිරිසිදු ලෙස කළමනාකරණය කිරීමයි.

මෙහි ප්‍රති result ලයක් ලෙස, බොහෝ ඩේබියන් පදනම් කරගත් පද්ධති වල rootපරිශීලකයාට මුරපද කට්ටලයක් නොමැත - එනම් root ලෙස සෘජුවම ප්‍රවේශ විය නොහැක.

එසේම, /etc/sudoersඅමතර විකල්ප කිහිපයක් සඳහන් කිරීමට ඉඩ දෙයි - එනම් X පරිශීලකයාට ක්‍රියාත්මක කළ හැක්කේ Y වැනි වැඩසටහන් ක්‍රියාත්මක කිරීමට පමණි.

බොහෝ විට භාවිතා කරන sudo suසංයෝජනය පහත පරිදි ක්‍රියා කරයි: පළමුව ඔබේ මුරපදය sudoඔබෙන් ඉල්ලා සිටින අතර, ඔබට එසේ කිරීමට අවසර තිබේ නම්, ඊළඟ විධානය ( ) සුපිරි පරිශීලකයෙකු ලෙස ඉල්ලා සිටී. නිසා මුරුගාදොස් විසින් පළ කළහ , එය ඉලක්ක පරිශීලක මුරපදය ඇතුළත් කිරීම අවශ්ය නොවේ. එබැවින්, ගොනුව මඟින් ඔබට සුපිරි පරිශීලක ප්‍රවේශය ලබා දෙන්නේ නම්, වෙනත් පරිශීලකයෙකු ලෙස (root ද ඇතුළුව) කවචයක් විවෘත කිරීමට ඔබට ඉඩ සලසයි .susurootsudo su/etc/sudoers


3
මම කවදාවත් su"ස්විච් පරිශීලක" ලෙස දැක නැත , නමුත් සෑම විටම සුපිරි පරිශීලකයෙකු ලෙස; වෙනත් කෙනෙකුගේ පරිශීලක නාමයක් නොමැතිව පෙරනිමි හැසිරීම (එය අර්ථවත් වුවද). සිට විකිපීඩියා, නිදහස් විශ්වකෝෂය : "මෙම su විධානය, ද මුල් 1974 ලෙස සුපිරි පරිශීලක ලෙස සඳහන් [1], ද කැඳවා තිබේ" ආදේශකයක් පරිශීලක "," අන්තරජාල පරිහරනය පරිශීලක "හෝ" කට්ටලයක් පරිශීලක "එය වත්මන් හා සම්බන්ධ ගිණුමක් වෙනස් ඉඩ නිසා පර්යන්තය (කවුළුව). ”
dr jimbob

7
rdr jimbob: ඔබ හරි, නමුත් "ස්විච් පරිශීලකයා" එය කරන දේ වඩා හොඳින් විස්තර කරන බව මට පෙනේ - histor තිහාසිකව එය "සුපිරි පරිශීලකයා" යන්නයි. විකිපීඩියා ලිපිය මගේ පිළිතුරට බෙහෙවින් සමාන බව දැනගැනීමට ලැබීම ගැන මම සතුටු වෙමි - මම මීට පෙර ලිපිය දැක නැත :)
සර්ජි

14
"සු" හි නිල අර්ථය "ආදේශක පරිශීලකයා" යන්නයි. බලන්න: "man su".
ඒන්ජල් ඕස්පියර්

2
@ AngelO'Sphere: සිත්ගන්නා කරුණ නම්, උබුන්ටුගේ පිටුවේ “ආදේශකයක්” ගැන කිසිසේත් සඳහන් නොවේ. Gnu.org ( gnu.org/software/coreutils/manual/html_node/su-invocation.html ) හි ඇති මෑන්පේජ් සැබවින්ම පවසන්නේ “su: ආදේශක පරිශීලක සහ කණ්ඩායම් හැඳුනුම්පතක් සමඟ විධානයක් ක්‍රියාත්මක කරන්න” යන්නයි. මම හිතන්නේ gnu.org කැනොනිකල් ප්‍රභවයක් :)
සර්ජි

1
කුමක් ගැනද sudo su?
කැස් වුල්ෆ්

63

sudoමූල වරප්‍රසාද සහිතව ඔබේම පරිශීලක ගිණුමක විධාන ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසයි. suපරිශීලකයා මාරු කිරීමට ඔබට ඉඩ සලසයි, එවිට ඔබ ඇත්ත වශයෙන්ම root ලෙස ලොග් වී ඇත.

sudo -sමූල වරප්‍රසාද සහිත කවචයක් ධාවනය කරයි. sudo -iroot පරිශීලකයාගේ පරිසරය ද ලබා ගනී.

suසහ අතර වෙනස බැලීමට sudo -s, කරන්න cd ~, ඉන්පසු pwdඒවා එක් එක් පසු කරන්න. පළමු අවස්ථාවේ දී, ඔබ root නිසා නිවාස මූල නාමාවලියෙහි ඔබ සිටිනු ඇත. දෙවන අවස්ථාවේදී, ඔබ ඔබේම නිවාස නාමාවලියෙහි සිටිනු ඇත, මන්ද ඔබ ඔබම වරප්‍රසාද ලබා ඇති බැවිනි.

මෙම නිශ්චිත ප්‍රශ්නය පිළිබඳ වැඩි සාකච්ඡාවක් මෙහි ඇත.


22
"ඔබ ඔබම මූල වරප්‍රසාද ලබාගෙන ඇත" යනු ඇත්ත වශයෙන්ම සිදුවන්නේ කුමක්ද යන්න නොවේ :) ඇත්ත වශයෙන්ම, "මූල වරප්‍රසාද සහිත ඔබම" විය නොහැක - එක්කෝ ඔබ මූල හෝ ඔබම වේ. අවස්ථා දෙකේදීම හූමි ටයිප් කිරීමට උත්සාහ කරන්න . ප්‍රති cd ~results ල වෙනස් වීම sudo -s පරිසර විචල්‍යය සැකසීමේ ප්‍රති result ලයකි.
සර්ජි

1
Er සර්ජි, හූමි එය 'මූල' යැයි කියනුයේ ඔබ 'හූමි' සෙ.මී. sudoers ගොනුවට අනුව root ප්‍රවේශය.
ඔක්ටපස්

1
CtOctopus: මම කියන්නට උත්සාහ කළේ යුනික්ස් හි ක්‍රියාවලියකට තිබිය හැක්කේ එක් UID එකක් පමණක් වන අතර UID විසින් ක්‍රියාවලියේ අවසරයන් තීරණය කරයි. ඔබට "මූල වරප්‍රසාද සහිත" විය නොහැක, වැඩසටහනක් ඔබගේ UID සමඟ හෝ root හි UID (0) සමඟ ක්‍රියාත්මක වේ.
සර්ජි

5
"සුඩෝ ගොනුවට අනුව ඔබට තවමත් සම්පූර්ණ මූල ප්‍රවේශය නොතිබිය හැකිය": sudoersවෙනත් පරිශීලකයෙකු ලෙස කුමන විධානය ක්‍රියාත්මක කළ හැකිද යන්න ගොනුව පාලනය කරයි, නමුත් එය සිදු වන්නේ විධානය ක්‍රියාත්මක කිරීමට පෙරය. කෙසේ වෙතත්, ක්‍රියාවලියක් ආරම්භ කිරීමට ඔබට අවසර දුන් පසු, එනම් - ක්‍රියාත්මක වන ක්‍රියාවලියට root හි UID ඇති අතර පද්ධතියට පූර්ණ ප්‍රවේශයක් ඇත, එය සීමා කිරීමට සුඩෝට ක්‍රමයක් නොමැත. නැවතත්, ඔබ සැමවිටම ඔබම හෝ මූලයක් වේ, "අඩ-භාගයක්" නොමැත. එබැවින්, sudoersගොනුව මඟින් ඔබට ෂෙල් එක root ලෙස ධාවනය කිරීමට ඉඩ දෙන්නේ නම් - එම කවචයේ ඇති අවසරයන් “සාමාන්‍ය” මූල කවචයකින් වෙන් කොට හඳුනාගත නොහැකිය.
සර්ජි

40

මෙම පිළිතුර මෙම ප්‍රශ්නයේ ඩුප් එකක් මත මගේ පිළිතුරේ ඩුප් එකක් වන අතර, කැනොනිකල් පිළිතුර මත මෙහි තබන්න එවිට මිනිසුන්ට එය සොයාගත හැකිය!

sudo -iසහ අතර ඇති ප්‍රධාන වෙනස sudo -s:

  • sudo -iඔබට මූල පරිසරය ලබා දෙයි, එනම් ඔබ ~/.bashrcනොසලකා හරිනු ලැබේ.
  • sudo -sපරිශීලකයාගේ පරිසරය ඔබට ලබා දෙයි, එබැවින් ඔබට ~/.bashrcගරු කරනු ලැබේ.

මෙන්න උදාහරණයක්, ඔබට lslමගේ ~/.bin/ඩිරෙක්ටරියේ යෙදුමක් ඇති බව ඔබට දැක ගත හැකිය, එය හරහා ප්‍රවේශ විය හැකි sudo -sනමුත් ප්‍රවේශ විය නොහැක sudo -i. Bash විමසුම වෙනස් වන sudo -iනමුත් වෙනස් නොවන බව සලකන්න sudo -s:

dotancohen@melancholy:~$ ls .bin
lsl

dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl

dotancohen@melancholy:~$ sudo -i

root@melancholy:~# which lsl

root@melancholy:~# exit
logout

dotancohen@melancholy:~$ sudo -s
Sourced .bashrc

dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl

dotancohen@melancholy:~$ exit
exit

sudo -sඔබ හුරුපුරුදු පරිසරය ඔබට ලබා දීමට පහසු වුවද , හේතු දෙකක් සඳහා එය භාවිතා කිරීම මම නිර්දේශ කරමිsudo -i :

  1. ඔබ 'මූල' සැසියක සිටින බව දෘශ්‍ය මතක් කිරීම.
  2. මූල පරිසරය අනිෂ්ට මෘදුකාංග සමඟ විෂ වීමට ඇති ඉඩකඩ ඉතා අඩුය .bashrc.

මම දුටුවා sudo -s / etc / profile, හෝ /etc/profile.d/ හි ඇති කිසිවක් සැකසීමට නොපෙනේ .. කිසියම් අදහසක් ඇයි?
meffect

ototancohen - sudo -sපරිශීලකයෙකු හුරුපුරුදු පරිසරයක් සැපයීම යන්නෙන් ඔබ අදහස් කරන්නේ කුමක්ද?
අභිප්‍රේරණය

otdotancohen - sudo -s විධානය දැනටමත් දෘශ්‍ය සං ues ා ලබා දී ඇති බැවින් sudo -i වඩා හොඳ විකල්පයක් වන්නේ මන්දැයි මට කුතුහලයක් ඇත.
අභිප්‍රේරණය

10

su "root" පරිශීලකයාගේ මුරපදය ඉල්ලයි.

sudoඔබගේ මුරපදය ඉල්ලයි (තවද ඔබට විධාන root ලෙස ක්‍රියාත්මක කිරීමට ඉඩ දී ඇත්දැයි පරීක්ෂා කරයි, එය වින්‍යාස කර ඇත /etc/sudoers- පෙරනිමියෙන් "පරිපාලක" හෝ "සුඩෝ" කණ්ඩායම් වලට අයත් සියලුම පරිශීලක ගිණුම් වලට සුඩෝ භාවිතා කිරීමට අවසර ඇත).

sudo -sමූලයක් ලෙස කවචයක් දියත් කරයි, නමුත් ඔබේ වැඩ කරන නාමාවලිය වෙනස් නොකරයි. sudo -iමූල ගිණුමට පුරනය වීම අනුකරණය කරයි: ඔබේ වැඩ කරන නාමාවලිය වනු ඇත /root, සහ root .profileයනාදිය පුරනය වීමේ දී මෙන් මූලාශ්‍ර වේ.


1
පිළිතුර වඩාත් සම්පූර්ණ කිරීම සඳහා: sudo -sබොහෝ දුරට සමාන වේ su( sudo -isu -
OM

@DJCrashdummy - ඇයි ඔබ බොහෝ දුරට සමාන යැයි කියන්නේ? වෙනස් වන්නේ කුමක්ද?
අභිප්‍රේරණය

3
  • su මූල මුරපදය ඉල්ලයි, root බවට පත්වේ, අන්තර්ක්‍රියාකාරී නොවන පිවිසුම් කවචයක් විවෘත කරයි.
  • su - මූල මුරපදය විමසයි, root බවට පත්වේ, අන්තර්ක්‍රියාකාරී පිවිසුම් කවචයක් විවෘත කරයි.

  • sudo -s ඔබගේ මුරපද අසයි, මූල බවට පත්වේ, අන්තර්ක්‍රියාකාරී නොවන පිවිසුම් කවචයක් විවෘත කරයි.
  • sudo -i ඔබගේ මුරපද අසයි, මූල බවට පත්වේ, අන්තර්ක්‍රියාකාරී පිවිසුම් කවචයක් විවෘත කරයි.

හොඳම පුහුණුව නම් මේ දෙක භාවිතා කිරීමයි.


  • sudo suඔබගේ මුරපදය suවිමසයි, තත්පරයකට root බවට පත් වන අතර root` ලෙස ධාවනය වේ.
  • sudo su -ඔබගේ මුරපදය විමසයි, තත්පරයකට root බවට පත් වන අතර root su -ලෙස ධාවනය වේ.

එබැවින් මෙම අවස්ථාවේදී ඔබ suභාවිතා කරන්නේ ධාවනය වන sudoඅතර ඔබ root හි සත්‍ය මුරපදය දැන සිටිය යුතු නොවේ. ප්රතිඵල ලෙස සමාන වේ suහා su -.


පුරනය වීම සහ පිවිසුම් නොවන කවචය අතර වෙනස කුමක්ද?
නියමු 6


2

උබුන්ටු හෝ ඒ ආශ්‍රිත පද්ධතියක suසාම්ප්‍රදායික, සුපිරි පරිශීලක අර්ථයෙන් මට එතරම් ප්‍රයෝජනයක් නොමැත . sudoඑම නඩුව වඩා හොඳින් හසුරුවයි. කෙසේ වෙතත්, suසුඩෝ යන්ත්‍ර වින්‍යාස කිරීම මෝඩකමක් වන එක් අවස්ථාවකදී තවත් පරිශීලකයෙකු වීම සඳහා විශිෂ්ටයි.

උදාහරණයක් ලෙස, මම සජීවී සංයුක්ත තැටියක් / යූඑස්බී එකකින් මගේ පද්ධතිය අළුත්වැඩියා කරන්නේ නම්, මම බොහෝ විට මගේ දෘ hard තැටිය සහ අවශ්‍ය අනෙකුත් දෑ සහ chrootපද්ධතියට සවි කරමි . එවැනි අවස්ථාවක, මගේ පළමු විධානය සාමාන්‍යයෙන්:

su - myuser  # Note the '-'. It means to act as if that user had just logged in.

ඒ ආකාරයෙන්, මම ක්‍රියාත්මක වන්නේ root ලෙස නොව මගේ සාමාන්‍ය පරිශීලකයා ලෙස වන අතර පසුව මම sudoසුදුසු පරිදි භාවිතා කරමි .

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.