විවිධ පරිශීලක සහ ධාවන තිරය ලෙස සුඩෝ


173

වෙනත් පරිශීලකයෙකු ලෙස ධාවනය වන තිරය ක්‍රියා නොකරන බව අද සොයාගෙන ඇත!

එනම්

ssh bob@server         # ssh into server as bob
sudo su "monitor" -
screen                 # fails: Cannot open your terminal '/dev/pts/0'

"මොනිටරය" භාවිතා කරන්නා ලෙස ක්‍රියාත්මක වන ස්ක්‍රිප්ටයක් මා සතුව ඇත. තිරය ​​මත ප්‍රතිදානය දැකීම සඳහා අපි එය තිර සැසියක ක්‍රියාත්මක කරමු. ගැටළුව වන්නේ, ඔවුන්ගේම ගිණුමකින් (එනම් බොබ්, ජේම්ස්, සුසී, ආදිය) ලොග් වූ පරිශීලකයින් ගණනාවක් අප සතුව ඇති අතර පසුව ඔවුන් "මොනිටරය" භාවිතා කරන්නාට ඇතුල් වේ. "මොනිටරය" භාවිතා කරන්නාට ඔවුන්ට ප්‍රවේශය ලබා දීම ප්‍රශ්නයක් නොවේ.


14
ඔබට ලැබෙන දෝෂය මෙයද? "ඔබේ පර්යන්තය විවෘත කළ නොහැක '/ dev / pts / 0' - කරුණාකර පරීක්ෂා කරන්න."
ජිම්

ඔව් ඒක තමයි. එය සිදුවන්නේ ඇයිදැයි මට වැටහී ඇති නමුත් එහි විසඳුමක් තිබේද?
lucktaxi

4
ඔබගේ විධානයන් පිළිබඳ අදහස් දැක්වීමක් - මිනිසුන් දුවනවා මම දකිමි sudo su "user" -. භාවිතා නොකරන්නේ ඇයි sudo -u user -s?
ඇන්ඩ rew අයිලට්

2
Im ජිම්: නැතිවූ දෝෂ පණිවිඩය සැපයීම සඳහා +1.
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

1
Nd ඇන්ඩ rew මම දන්නා බොහෝ යාලුවනේ sudo su- මම හිතන්නේ එය මිනිසුන් පුරුදු වී ඇති දෙයයි (මගේ කාරණයේදී එය ඔබට කිසිදු සුඩෝ කොඩි දැන ගැනීමට අවශ්‍ය නැති නිසා sudo su- මම හිතන්නේ නැහැ මම කවදාවත් සුඩෝ මෑන්පේජ් කියවා නැහැ :)
voretaq7

Answers:


253

තිරය ​​දියත් කිරීමට පෙර script /dev/nullඔබ භාවිතා කරන්නා ලෙස ධාවනය කිරීමට උත්සාහ කරන්න su- එය ඉතා කුඩා හැක් එකක්, නමුත් එය තිරය සතුටු කළ යුතුය.


5
Re: ආරක්ෂක ඇඟවුම්, මම කිසිවක් නොදන්නා බව (නමුත් එයින් අදහස් නොකෙරේ :) :) IIRC මෙය නව පර්යන්ත උපාංගයක් විවෘත කරන "ස්ක්‍රිප්ට්" හි අතුරු ආබාධයක් මත රඳා පවතී (පරිශීලකයා එය ඉල්ලා සිටින පරිදි) , ඔබ ස්ක්‍රිප්ට් ප්‍රතිදානය / dev / null වෙත යවන බැවින් අල්ලා ගැනීමට කිසිවක් නැත.
Tty

2
අවංකවම ඔබ යුනික්ස් පද්ධති පරිපාලකයෙකු නම් ව්‍යාකූල බහුවිධ ෂෙල් සොයා නොගත යුතුය - එය scriptදියත් කිරීමට භාවිතා කළ හැකිය screen. එවිට ඔබට පිටවිය යුත්තේ දෙවරක් පමණි (එක් වරක් screen, එක් වරක් su). (මෙය scriptමෑන් පිටුවට ඔබට පැහැදිලි කළ හැකි දෙයකි, ඔබ එය කියවීමට කාලය ගත කරන්නේ නම් ...)
voretaq7

11
නැත්නම් දුවන්න sudo -u bob script -q -c 'screen -dr myscreen' /dev/null. එවිට ඔබට ඇත්තේ එක් පර්යන්තයක් පමණි.
ඇන්ඩි ෂුල්මන්

4
ස්තූතියි, මෙය මාව බේරුවා. නමුත් මෙය නිවැරදි කරන්නේ ඇයි? මට තේරෙන දෙයින්, එය stdout සිට ... කොතැනකවත් සියල්ල මුද්‍රණය කරයි. එය කෙසේ හෝ තිරය සවි කරයි.
sudo

4
ud සුඩෝ එය සිදු කිරීම සඳහා scriptඑය ක්‍රියාත්මක කළ පරිශීලකයාට අයත් තමන්ගේම ටීටී උපාංගයක් විවෘත කරයි (බලන්න, /devඔබ ධාවනය වූ පසු එය දිස්වනු ඇත script). screenඉන්පසු එම tty උපාංගය අල්ලා ගනී (එය ක්‍රියාත්මක වන පරිශීලකයා සතු වන screenබැවින් එයට ප්‍රවේශ වීමට කිසිදු ගැටළුවක් නොමැත). එය සම්පුර්ණ හැක් වැඩකි, නමුත් එය ක්‍රියාත්මක වේ. මගේ සමහර යන්ත්‍ර දෙස බලන විට තිරයේ නව අනුවාදයන් සෙටූයිඩ්-රූට් ස්ථාපනය කර ඇති බවක් පෙනේ, එය ද ක්‍රියා කරයි, නමුත් එයින් අදහස් කරන්නේ ඔබ වටා තවත් සෙටූයිඩ්-මූල ද්විමය පාවෙන බව ය, එමඟින් සමහර පුද්ගලයින් යුක්ති සහගත ලෙස අපහසුතාවයට පත් කරයි.
voretaq7

34

මා භාවිතා කරන screenපරිශීලකයින් සඳහා මම එතීමේ ශ්‍රිතයක් භාවිතා කරමි sudo su. මම පරිශීලකයාට (ය) එකතු කළ එතීමේ කාර්යය මෙයයි ~/.bashrc:

ශ්‍රිත තිරය () {
  / usr / bin / script -q -c "/ usr / bin / screen $ {*}" / dev / null
}

මෙය මට භාවිතා කිරීමට අවශ්‍ය විය හැකි සියලු විකල්ප සහ පරාමිතීන් භාවිතා කිරීමට මට ඉඩ දෙයි screen. මෙම ක්‍රියාව පද්ධතිමය වශයෙන් තැබීමට මම කල්පනා කරමි.


1
පරිපූර්ණව ක්රියා කරයි. මෙම පද්ධතිය පුරා ව්‍යාප්ත වීමට කැමති අය සඳහා, මෙය /etc/bash.bashrc වෙත එක් කිරීමට මම නිර්දේශ කරමි.
Someguy123

2
මෙය නිවැරදිව තිරය සඳහා තර්ක උපුටා දක්වන්නේ නැත, එසේ නොමැතිනම් හොඳ විසඳුමක්.
augurar

7

ඔවුන් කෙසේ හෝ ධාරකයට SSHing යැයි උපකල්පනය කළහොත්, ඔබට මොනිටරයේ ගිණුමට ප්‍රවේශය අවශ්‍ය සෑම පරිශීලකයෙකුටම ~ මොනිටරය / .ssh / author_keys ගොනුවේ පොදු ssh යතුරු එක් කළ හැකිය. එවිට එක් එක් පරිශීලකයාගේ දුරස්ථ යන්ත්‍රය මත ධාවනය කළ හැකිය

ssh -t monitor@remote.machine screen -RD


මෙය තවත් හොඳ ප්‍රවේශයකි - බලයලත් යතුරු ගොනුවේ බලහත්කාරයෙන් විධාන සඳහන් කිරීමට ඔබට සිදුවනු ඇත (වාසනාවන්ත ටැක්සි අනුව “මොනිටරය” වෙත පරිශීලකයාට ප්‍රවේශය ලබා දීම ප්‍රශ්නයක් නොවේ ”ඉහත සටහන - බලහත්කාරයෙන් විධාන මඟින් ඒවා සීමා කළ හැකිය තිර සැසිය
අමුණන්න

2
මගේ පිළිතුරෙන් එය ආමන්ත්‍රණය කරන්නේ කෙසේදැයි මට නොතේරුණි, මන්ද ඔහු "ඔවුන්ට ප්‍රවේශය ලබා දීම ... ප්‍රශ්නයක් නැත" යැයි පැවසූ නිසා පමණක් නොව "... ඔවුන් 'මොනිටරය' භාවිතා කරන්නා වෙතට යොමු කරයි. නමුත් මම එකඟ වෙමි, බලයලත්_කයිස් තුළ විධාන සීමා කිරීමට බල කිරීම ඒ ගැන සැලකිලිමත් විය යුතුය.
ඇලෙක්ස්

7

අපි මෙම දෝෂය ගැන කතා කරමු යැයි සිතමු:

$ sudo su - bob
$ screen
Cannot open your terminal '/dev/pts/5' - please check.

මෙන්න එක් ලයිනර් එකක් (උදාහරණයක් ලෙස "අන්වර්ථ ගොබොබ්" ලෙස භාවිතා කළ හැකිය):

sudo su - bob -c "script -c bash /dev/null"'

පැහැදිලි කිරීම:

මෙය පරිශීලක බොබ් ලෙස කවචයක් (පිවිසුම් කවචය වැනි) ආරම්භ කරනු ඇත. පරිශීලක බොබ් ආරම්භ scriptවන අතර, එය බාෂ් එකක් කැඳවීමට කියනු ලැබේ (ඉරක් හෝ ksh විය හැකිය ...) සහ සැසියේ පිටපතක් ඉවත දමනු ලැබේ.


0

බොහෝ විට සැක සහිත උපාංගයේ අවසර වෙනස් කිරීමට හෝ එම උපාංගය කියවීමට අවසර ඇති කණ්ඩායමකට මොනිටරයක් ​​එක් කිරීමට සිදුවනු ඇත, එය මගේ පළමු නැඹුරුව වනු ඇත. නමුත් එසේ කිරීමේ ආරක්‍ෂිත ඇඟවුම් කිරා මැන බැලීමට ඔබට සිදුවේ.


0

ඔබ කියනවා:

sudo su "monitor" -

මම කල්පනා කරන්නේ පසුපස ඉරක් ගැන ය. මම සාමාන්‍යයෙන් කරන්නේ:

sudo su - username

ඉරක් (su man පිටුවට අනුව) su ට පවසන්නේ “කවචය පිවිසුම් කවචයක් බවට පත් කරන්න” යන්නයි. මෙයින් අදහස් කරන්නේ එය සුපුරුදු ෂෙල් ආරම්භක ස්ක්‍රිප්ට් ප්‍රභව කර PATH සහ HOME වැනි දෑ නිසි ලෙස සකසන බවයි.


3
නෑ. sudo su - usernameහා sudo su username -එකම දෙයක් කරන්න.
ටිම් ලුඩ්වින්ස්කි

0

මම "වෙනත්" අයට කියවීමට / ලිවීමට අවසර දෙන්නෙමි:

sudo chmod o+rw /dev/pts/0

ඉන්පසු screenනැවත උත්සාහ කරන්න


-4

මම මේ ප්‍රශ්නයට පහර දුන්නා. සුඩෝ chmod +rw $(tty)ධාවනය කිරීමට පෙර එය විසඳා ඇත . මෙම විසඳුමේ ඇති ගැටළුව නම් ඕනෑම කෙනෙකුට ඔබගේ පර්යන්තය හා සම්බන්ධ වී ඉන් පසුව සෝදිසි කර බැලිය හැකිය.


2
විශිෂ්ට විසඳුමක් වගේ.
ඉවාන් කැරොල්

11
AvEvanCarroll එය මුළු ලෝකයටම ඔහුගේ පර්යන්තයට කියවීමට හා ලිවීමට ප්‍රවේශය ලබා දෙන කොටස හැර එය විශිෂ්ට විසඳුමකි . සුළු ආරක්ෂණ ගැටළුවක් - මුරපද භාර ගැනීමට පෙර පර්යන්ත ආරක්ෂාව පරීක්ෂා කරන කිසිවක් හැර වෙනත් කිසිදු වැඩසටහනක් ඒ ගැන තැකීමක් නොකරයි ( gpgනිදසුනක් ලෙස). නිසැකවම ඔහු කිසි විටෙකත් අනිෂ්ට පරිශීලකයින් සහිත පද්ධතියක tty
නොසිටින අතර

අවවාද කරන්න : මෙය කිසි විටෙකත් නිවසේදී උත්සාහ නොකරන්න! මේක භයානකයි !!!
ruizpauker
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.