Answers:
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එය ස්ථාපනය කර ඇති අතර එය භාවිතා කිරීමට ඔබට අවසර තිබේ නම් එය බොහෝ විට සරල ය.
su - [user]ප්රයෝජනවත් විය හැකිය - අමතර ඉරක් මඟින් ඔබට පිවිසුම් කවචයක් ලබා දේ.
echo >>/dev/stderrපුරනය වීමේදී su --login ...කිසියම් තොරතුරක් සමඟ ක්රියාත්මක කිරීමෙන් පසුවද ? මට මෙය හමු විය btw unix.stackexchange.com/questions/38538/…
envඑය ලැයිස්තුගත කළ විට සියල්ල පිළිවෙලට ඇති බව දුටුවා මෙන්ම දෘශ්ය පරීක්ෂණයකට යා හැකිය; එක් දෙයක් වැරදියි: XAUTHORITY=/home/user1/.Xauthority'. Not sure _why_? So X-window doesn't work by default because the protection on ut / .සෞඛ්යතා ගොනුව : -rw-------. මම පිටපතක් සාදන ලද අතර එය අත්හදා බැලීමක් ලෙස gedit ධාවනය කිරීමට මට ඉඩ සලසයි.
සාමාන්යයෙන් ඔබ භාවිතා sudoකරන පරිශීලකයා ලෙස නව කවචයක් දියත් කිරීමට භාවිතා කරයි; මෙම -uධජය ඔබට අවශ්ය පරිශීලක-නාමයක් සඳහන් කල ඉඩ දෙනවා:
[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody
ඔබට සුඩෝ ප්රවේශය නොමැති නම් තවත් පරිපථ ක්රම තිබේ ssh username@localhost, නමුත් මම සිතන්නේ sudoඑය ස්ථාපනය කර ඇත්නම් සහ එය භාවිතා කිරීමට ඔබට අවසර තිබේ නම් එය වඩාත් සරල ය
sudo -sඔබට ෂෙල් එකක් වැනි su, sudo -iපිවිසුම් වැනි අනුකරණය කරයි su -. -u $userඇත්ත වශයෙන්ම, ඒකාබද්ධ කළ හැකිය .
$ whoami
මෙම විධානය වත්මන් පරිශීලකයා මුද්රණය කරයි. පරිශීලකයින් වෙනස් කිරීම සඳහා, අපට මෙම විධානය භාවිතා කිරීමට සිදුවේ (පරිශීලකයාගේ මුරපදය අනුගමනය කරමින්):
$ su secondUser
Password:
නිවැරදි මුරපදය ඇතුළත් කිරීමෙන් පසුව, ඔබ නිශ්චිත පරිශීලකයා ලෙස ලොග් වනු ඇත (නැවත ක්රියාත්මක කිරීමෙන් ඔබට පරීක්ෂා කළ හැකිය whoami.
ටර්මිනල් සැසිය වෙනත් පරිශීලකයෙකුට මාරු කිරීමට, එම පරිශීලකයාට මුල් පරිශීලකයාට නැවත පිටවිය නොහැකි තැන, exec භාවිතා කරන්න:
$ | # exec su - [පරිශීලක නාමය]
මෙය නව පරිශීලකයා නව කාලීන ක්රියාවලියකට තාක්ෂණිකව පුරනය වන අතර වත්මන් පරිශීලකයා වසා දමයි. ඒ ආකාරයෙන් පරිශීලකයා පිටවීමට උත්සාහ කරන විට හෝ Ctrl-D, ටර්මිනලය වැසෙනු ඇත්තේ එම පරිශීලකයා එය ක්ෂණිකව ක්රියාත්මක කළ තැනැත්තා ලෙසය, එනම් පරිශීලකයාට මුල් පරිශීලකයාගේ වාරයට නැවත පිටවිය නොහැක. තේරුමක් නැති, ඔවුන්ට තවමත් නව පර්යන්ත සැසියක් ආරම්භ කර ස්වයංක්රීයව මුල් පරිශීලක කාලීන පිවිසුමට ඇතුළත් විය හැකි බව සලකන නමුත් එය තිබේ.
සංස්කරණය කරන්න: එය වටින දෙය සඳහා, පෙරනිමියෙන් ටර්මිනල් සැසි අගුළු දැමීමට ඔබේ ~ / .bashrc හි ලිනක්ස් ව්ලොක් විධානය භාවිතා කළ හැකිය, සැසි පරිශීලකයා යන යෙදුමේ මුරපදය අගුළු ඇරීමට අවශ්ය වේ. වින්යාසගත කර ඇති පරිදි පරිශීලකයාගේ පෙරනිමි නොවන ~ / .bashrc භාවිතයෙන් මෙම පදය ක්ෂණිකව නොපවතින බැවින්, මුල් පරිශීලක සන්දර්භය යටතේ ඉහත සඳහන් යෙදුම නැවත ආරම්භ කිරීම මෙය තරමක් වළක්වනු ඇත.
තවත් මාර්ගයක් නම්, එම පරිශීලකයා ලෙස විධාන ක්රියාත්මක කිරීම සඳහා වෙනස් (මූල නොවන) පරිශීලකයෙකු ලෙස නව කවචයක් දියත් කිරීමයි.
ubuntu@aws-ip:~$ sudo -u mongodb bash #<-- or zsh, etc...
mongodb@aws-ip:~$ mongod --configsvr --dbpath /data/configdb --fork
මේ සඳහා උදාහරණයක් mongodbපරිශීලකයා වේ. මුවහත් කළ මොන්ගෝ ඩීබී පොකුරක් යෙදවීමේදී, අවශ්ය සියලු ක්රියාදාමයන් ක්රියාත්මක විය යුතු mongodbඅතර, නෝඩ් දුසිම් ගණනක් සඳහා ආරම්භක ස්ක්රිප්ට් භාවිතයෙන් ක්රියාවලි නිරූපණය කිරීම අවශ්ය නොවේ (හෝ සම්පූර්ණයෙන්ම පහසු).
අපි මෙය නිවැරදිව ලබා ගනිමු: ඔබ 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 කළ හැකි අතර ඔබේ පිවිසුමට ආපසු යන්න.
ඔබට එක් විධානයක් පමණක් ධාවනය කිරීමට අවශ්ය නම්, ඔබට sudo භාවිතා කළ හැකිය:
sudo -u username command
$XDG_RUNTIME_DIRවිශේෂයෙන්) සමඟ ගැටලු ඇති කර ගත් නිසාය. -> unix.stackexchange.com/questions/354826/…