එක් පර්යන්තයක පරිශීලකයින් අතර මාරු වන්නේ කෙසේද?


542

වත්මන් පරිශීලකයාගෙන් (එකම පර්යන්තයකින්) ඉවත් නොවී වෙනත් පරිශීලකයෙකු ලෙස ලොග් වීමට මම කැමතියි. මම කොහොමද ඒක කරන්නේ?


1
මම ඒ හා සමාන ප්‍රශ්නයක් ඇසුවෙමි. මන්දයත් මා එක්ස්ඩීජී පරිසර විචල්‍යයන් ( $XDG_RUNTIME_DIRවිශේෂයෙන්) සමඟ ගැටලු ඇති කර ගත් නිසාය. -> unix.stackexchange.com/questions/354826/…
ජොනතන්

Answers:


637

suවිධානය භාවිතා කරන්නේ කෙසේද ?

$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout

ඔබට root ලෙස ලොග් වීමට අවශ්‍ය නම්, පරිශීලක නාමය සඳහන් කිරීමට අවශ්‍ය නැත:

$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout

සාමාන්‍යයෙන්, sudoඔබට අවශ්‍ය පරිශීලකයා ලෙස නව කවචයක් දියත් කිරීමට භාවිතා කළ හැකිය ; මෙම -uධජය ඔබට අවශ්ය පරිශීලක-නාමයක් සඳහන් කල ඉඩ දෙනවා:

$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2

ඔබට ssh පරිශීලක නාමය @ localhost වැනි සුඩෝ ප්‍රවේශයක් නොමැති නම් වඩාත් පරිපථ ක්‍රම තිබේ, නමුත් sudoඑය ස්ථාපනය කර ඇති අතර එය භාවිතා කිරීමට ඔබට අවසර තිබේ නම් එය බොහෝ විට සරල ය.


23
එසේම, su - [user]ප්‍රයෝජනවත් විය හැකිය - අමතර ඉරක් මඟින් ඔබට පිවිසුම් කවචයක් ලබා දේ.
ephemient

1
මට මෙම දෝෂය ලැබෙන්නේ "-su: / dev / stderr: අවසරය ප්‍රතික්ෂේප කර ඇත" මෙම විධානය echo >>/dev/stderrපුරනය වීමේදී su --login ...කිසියම් තොරතුරක් සමඟ ක්‍රියාත්මක කිරීමෙන් පසුවද ? මට මෙය හමු විය btw unix.stackexchange.com/questions/38538/…
Aquarius Power

1
මෙය සෑම නව පරිශීලකයෙකුටම පරිසර විචල්‍යයන් සඳහා වෙනස්, අභිබවා යන අගයන් ලබා ගැනීමට ඉඩ දෙයිද? උදා: වැඩ සඳහා විවෘත වින්‍යාසය, විවෘත මූලාශ්‍රය
කෙවින් සූට්ල්

1
එක් සොයාගැනීමක්, මම envඑය ලැයිස්තුගත කළ විට සියල්ල පිළිවෙලට ඇති බව දුටුවා මෙන්ම දෘශ්‍ය පරීක්‍ෂණයකට යා හැකිය; එක් දෙයක් වැරදියි: XAUTHORITY=/home/user1/.Xauthority'. Not sure _why_? So X-window doesn't work by default because the protection on ut / .සෞඛ්‍යතා ගොනුව : -rw-------. මම පිටපතක් සාදන ලද අතර එය අත්හදා බැලීමක් ලෙස gedit ධාවනය කිරීමට මට ඉඩ සලසයි.
ඇත

2
ඔබට "මෙම ගිණුම දැනට නොමැත": su -s / bin / bash - www-data
max4ever

51

සාමාන්‍යයෙන් ඔබ භාවිතා sudoකරන පරිශීලකයා ලෙස නව කවචයක් දියත් කිරීමට භාවිතා කරයි; මෙම -uධජය ඔබට අවශ්ය පරිශීලක-නාමයක් සඳහන් කල ඉඩ දෙනවා:

[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody

ඔබට සුඩෝ ප්‍රවේශය නොමැති නම් තවත් පරිපථ ක්‍රම තිබේ ssh username@localhost, නමුත් මම සිතන්නේ sudoඑය ස්ථාපනය කර ඇත්නම් සහ එය භාවිතා කිරීමට ඔබට අවසර තිබේ නම් එය වඩාත් සරල ය


1
මගේ පද්ධතියට ssh සේවාදායකයක් හෝ sudo නොමැති නම් කුමක් කළ යුතුද? පිළිතුරෙහි එම කොටස සඳහන් කළ හැකිද?
tshepang

1
හරි, ප්‍රට් ඊට පිළිතුරු දුන්නා
tshepang

5
sudo -sඔබට ෂෙල් එකක් වැනි su, sudo -iපිවිසුම් වැනි අනුකරණය කරයි su -. -u $userඇත්ත වශයෙන්ම, ඒකාබද්ධ කළ හැකිය .
ephemient

1
වඩා කාර්යක්ෂම. සාමාන්‍යයෙන් පුරනය වීමට නොහැකි පරිශීලකයෙකු ලෙස "පුරනය වීමට" හැකිවීම විශාල සම්පතකි ..! අවසර හෝ සෙලිනක්ස් සමඟ පටලවා නොගෙන දත්ත සමුදායක් ක්‍රියාත්මක කිරීමට මට මුළුමනින්ම අවසර දී ඇත
ෆීලික්ස් ගග්නොන්-ග්‍රෙනියර්

26
$ whoami 

මෙම විධානය වත්මන් පරිශීලකයා මුද්‍රණය කරයි. පරිශීලකයින් වෙනස් කිරීම සඳහා, අපට මෙම විධානය භාවිතා කිරීමට සිදුවේ (පරිශීලකයාගේ මුරපදය අනුගමනය කරමින්):

$ su secondUser
Password:

නිවැරදි මුරපදය ඇතුළත් කිරීමෙන් පසුව, ඔබ නිශ්චිත පරිශීලකයා ලෙස ලොග් වනු ඇත (නැවත ක්‍රියාත්මක කිරීමෙන් ඔබට පරීක්ෂා කළ හැකිය whoami.


ඔබ සුදර් නොවේ නම් ප්‍රයෝජනවත්.
මාකෝ සුල්ලා

17

ඔබ උබුන්ටු ධාවනය කරන්නේ නම්, සහ ඔබට පිවිසීමට අවශ්‍ය පරිශීලකයාට මුරපද කට්ටලයක් නොමැති නම්:

sudo su - username

ඔබගේ මුරපදය ඇතුළත් කරන්න, එවිට ඔබ සැකසිය යුතුය. ඇත්ත වශයෙන්ම, මේ සඳහා ඔබේ පරිශීලකයාට මූල වරප්‍රසාද ලබා ගැනීමේ අයිතිය තිබිය යුතුය sudo.


9

ටර්මිනල් සැසිය වෙනත් පරිශීලකයෙකුට මාරු කිරීමට, එම පරිශීලකයාට මුල් පරිශීලකයාට නැවත පිටවිය නොහැකි තැන, exec භාවිතා කරන්න:

$ | # exec su - [පරිශීලක නාමය]

මෙය නව පරිශීලකයා නව කාලීන ක්‍රියාවලියකට තාක්‍ෂණිකව පුරනය වන අතර වත්මන් පරිශීලකයා වසා දමයි. ඒ ආකාරයෙන් පරිශීලකයා පිටවීමට උත්සාහ කරන විට හෝ Ctrl-D, ටර්මිනලය වැසෙනු ඇත්තේ එම පරිශීලකයා එය ක්ෂණිකව ක්‍රියාත්මක කළ තැනැත්තා ලෙසය, එනම් පරිශීලකයාට මුල් පරිශීලකයාගේ වාරයට නැවත පිටවිය නොහැක. තේරුමක් නැති, ඔවුන්ට තවමත් නව පර්යන්ත සැසියක් ආරම්භ කර ස්වයංක්‍රීයව මුල් පරිශීලක කාලීන පිවිසුමට ඇතුළත් විය හැකි බව සලකන නමුත් එය තිබේ.

සංස්කරණය කරන්න: එය වටින දෙය සඳහා, පෙරනිමියෙන් ටර්මිනල් සැසි අගුළු දැමීමට ඔබේ ~ / .bashrc හි ලිනක්ස් ව්ලොක් විධානය භාවිතා කළ හැකිය, සැසි පරිශීලකයා යන යෙදුමේ මුරපදය අගුළු ඇරීමට අවශ්‍ය වේ. වින්‍යාසගත කර ඇති පරිදි පරිශීලකයාගේ පෙරනිමි නොවන ~ / .bashrc භාවිතයෙන් මෙම පදය ක්ෂණිකව නොපවතින බැවින්, මුල් පරිශීලක සන්දර්භය යටතේ ඉහත සඳහන් යෙදුම නැවත ආරම්භ කිරීම මෙය තරමක් වළක්වනු ඇත.


ඔබ SSH සම්බන්ධතාවයක සිටින විට exec භාවිතා කිරීම හොඳ භාවිත අවස්ථාවක් වන අතර නැවත සම්බන්ධ කිරීමකින් තොරව පවතින සම්බන්ධතාවයක් වෙනත් පරිශීලකයෙකුට "භාර දීමට" අවශ්‍යය. මේ සම්බන්ධයෙන් ආරක්ෂාව සම්බන්ධයෙන් අනාරක්‍ෂිතතා තිබේදැයි මම කල්පනා කරමි.
යේටි

එය process ජු ක්‍රියාවලියකි; නව ක්‍රියාවලියෙන් කිසිවක් උරුම නොවිය යුතුය ... පරිසර විචල්‍යයන් සහ මාර්ගය හැර! ඔහ්, සහ විභව ssh-agent ද විය හැකිය. Envars සහ ssh-agent keyring කනස්සල්ලට පත්විය හැකිය!
සයනිඩ්

3

sudo -iu <your_username> මට උපක්‍රමය කරන්න


2

තවත් මාර්ගයක් නම්, එම පරිශීලකයා ලෙස විධාන ක්‍රියාත්මක කිරීම සඳහා වෙනස් (මූල නොවන) පරිශීලකයෙකු ලෙස නව කවචයක් දියත් කිරීමයි.

ubuntu@aws-ip:~$ sudo -u mongodb bash          #<-- or zsh, etc... 
mongodb@aws-ip:~$ mongod --configsvr --dbpath /data/configdb --fork

මේ සඳහා උදාහරණයක් mongodbපරිශීලකයා වේ. මුවහත් කළ මොන්ගෝ ඩීබී පොකුරක් යෙදවීමේදී, අවශ්‍ය සියලු ක්‍රියාදාමයන් ක්‍රියාත්මක විය යුතු mongodbඅතර, නෝඩ් දුසිම් ගණනක් සඳහා ආරම්භක ස්ක්‍රිප්ට් භාවිතයෙන් ක්‍රියාවලි නිරූපණය කිරීම අවශ්‍ය නොවේ (හෝ සම්පූර්ණයෙන්ම පහසු).


2

අපි මෙය නිවැරදිව ලබා ගනිමු: ඔබ UserA ලෙස ප්‍රවිෂ්ට වී ඇති අතර සමහර විධාන ක්‍රියාත්මක කිරීම සඳහා UserB ලෙස "පුරනය වීමට" අවශ්‍යය, නමුත් එය සිදු වූ විට නැවත UserA වෙත පැමිණීමට කැමතියි. සරල බව සඳහා, මම ඔබට ls -l / tmp පරිශීලක බී ලෙස ධාවනය කිරීමට අවශ්‍ය යැයි සිතමි. ඔබ නම් නෑ නෑ UserA වත්මන් ෂෙල් පිටත්ව යාමට අවශ්ය එහෙත් ඒ වෙනුවට UserB ලෙස විධානය ක්රියාත්මක කර තවමත් UserA ලෙස ලොගින් වී, ඔයාට මේක කරන්න යුතුය:

su - UserB -c "ls -l /tmp"   <-- Just an example

පරිශීලක බී සඳහා මුරපදය ඔබ දන්නා බව උපකල්පනය කරයි. කෙසේ වෙතත්, ඔබ UserB හි මුරපදය නොදන්නේ නම්, ඔබ root මුරපදය දැන සිටිය යුතුය. ඉන්පසු:

sudo su - UserB -c "ls -l /tmp"   <-- UserB's pw not needed here

බොහෝ විධාන ක්‍රියාත්මක කිරීම සඳහා ඔබ තාවකාලිකව UserB ලෙස පුරනය වීමට කැමති නම්, එසේ කරන්න:

sudo su - UserB

මෙය ඔබට UserB සඳහා නව කවචයක් ලබා දෙනු ඇත (හැඳුනුම්පත ටයිප් කිරීමෙන් එය පරීක්ෂා කරන්න). එය සිදු කළ විට, ඔබට ctrl-d කළ හැකි අතර ඔබේ පිවිසුමට ආපසු යන්න.


1

ඔබට එක් විධානයක් පමණක් ධාවනය කිරීමට අවශ්‍ය නම්, ඔබට sudo භාවිතා කළ හැකිය: sudo -u username command


-1
~$ sudo login

එවිට එය සුඩෝ මුරපදය සඳහා ඔබෙන් විමසනු ඇත (දැනට පරිශීලකයාගේ මුරපදය පුරනය වී ඇත).

එසේම: වත්මන් පරිශීලකයා sudoers ගොනුවේ ඇති බවට වග බලා ගන්න!


2
ප්‍රශ්නය වූයේ වෙනත් පරිශීලකයෙකු ලෙස ප්‍රවේශ වීම ගැන ය.
මිනික්ස්
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.