මම අහම්බෙන් මුරපදය bash විධාන රේඛාවට ටයිප් කළෙමි


190

මම හදිසියෙන් සුලුය, bash විධාන රේඛාව බවට මගේ මුරපදය ටයිප් Last login: ...කිරීම සඳහා මාර්ගය Wrong password(මම කඩිමුඩියේ විය). මගේ හෝඩුවාව ආවරණය කිරීමට මා කුමක් කළ යුතුද?

මා කළේ .bash_historyවරදකාරී රේඛාව සංස්කරණය කිරීම සහ මකා දැමීමයි (මුරපදය ගොනුවේ දිස්වන බව බැලීමට වරක් නැවත බැලීමට සිදු වූ නිසා මට එය මකා දැමිය හැකි අතර UPARROW යතුර යටතේ ඇති ඉතිහාසයෙන් එය අතුරුදහන් වන බව දැකීමට නැවත පුරනය වන්න).

විධාන ඉතිහාසය සුරැකිය හැකි වෙනත් ස්ථානයක් තිබේද? පද්ධතිය CentOS 6.5 වේ.


59
මුරපදය වෙනස් කරන්න :)
gronostaj

96
මුරපදය වෙනස් කිරීම එතරම් සරල නැත ... විවිධ සේවාදායක 15 ක මගේ නව පොදු යතුර නැවත ස්ථාපනය කරන ලෙස මට පරිපාලකගෙන් ඉල්ලා සිටිය යුතුය - ඒ වගේම මිනිහා වගේ /dev/null.
මාඩා

72
ඔබට ඕනෑම වේලාවක ඔබගේ මුරපදය පහසුවෙන් වෙනස් කළ නොහැකි නම්, ඔබට බරපතල ආරක්ෂක අඩුපාඩුවක් තිබිය හැකිය. යමෙකුට ඔබගේ මුරපදය සැබවින්ම ලැබුණු විට ඔබ කරන්නේ කුමක්ද? පද්ධති ප්‍රවේශය වහාම අවලංගු කිරීමට ඔබට ක්‍රමයක් තිබේද?
gronostaj

42
යතුර වෙනස් නොකර ඔබට ssh යතුරක මුරපදය වෙනස් කළ හැකිය : ssh-keygen -f id_rsa -p.
jwg

6
අවම වශයෙන් ජාලගත වින්ඩෝස් පිවිසුම් යටතේ, ඔබ හෝස් කර ඇති බව සඳහන් කිරීම අතහැර දමන්න. පරිපාලක (සමහර උසස් සේවාදායක කුළුණක) පෙරනිමිය නම් සියලු පිවිසුම් උත්සාහයන් පටිගත කිරීමයි, ඇත්ත වශයෙන්ම පරිශීලක නාම පැහැදිලි පා te ය. සමහර ව්‍යවසායකයින් විසින් කළ යුතුව ඇත්තේ පරිශීලක නොවන-ඊෂ් නූල් සෙවීම සහ ඊළඟ වලංගු පරිශීලක නාමය සමඟ ඒවා සහසම්බන්ධ කිරීම (හෝ එකම යන්ත්‍රයේ ඊළඟ පිවිසුම් උත්සාහය) ය. එම පරිපාලක ලොග් ගොනුව මකා දැමීමට සරල ක්‍රමයක් නොමැත. ඉතින් ඇත්තටම ඔබේ මුරපදය වෙනස් කළ යුතුයි.
කාල් විතොෆ්ට්

Answers:


187

ඔබ පමණක් අමනාප රේඛාව ඉවත් කළ හැක bash, ඒ වෙනුවට සමස්ත ඉතිහාසය පිරිසිදු, ඉතිහාසය. -dධජය සමඟ පේළිය ඉවත් කරන්න , ඉන්පසු -wධජය සමඟ නව ඉතිහාසය සුරකින්න (ලියන්න) :

$ history
351 ssh me@site.com
352 my_password
$ history -d 352
$ history -w

2
ඔබ "PROMPT_COMMAND = history -a" සකසා ඇත්නම් මෙය ක්‍රියාත්මක නොවන බව මතක තබා ගන්න. මෙය ක්‍රියාත්මක වීමත් සමඟම ඔබේ මුරපදය සහිත විධානය වහාම ඔබේ .bash_history වෙත ලියා එවනු ලැබේ. එය ඉවත් කිරීමට ඔබට .bash_history සංස්කරණය කිරීමට සිදුවේ.
බෙන්රිෆ්කා

1
රේඛාව සත්කාරක ගොනුවේ ලියා ඇත්නම් සහ පසුව බහු ෂෙල් වෙඩි (පර්යන්ත කවුළු) විවෘත කර ඇත්නම්, එම ෂෙල් වෙඩි සියල්ල ඉතිහාසයේ එහි ඇති බව සලකන්න! එක්කෝ ඔබට එම ෂෙල් වෙඩි සියල්ලෙන් ඉවත් කිරීමට අවශ්‍ය වනු ඇත, නැතහොත් අවම වශයෙන් ඔබ වසා දැමූ ඉතිහාසයේ අන්තිම කවචයෙන්! එය භාවිතා කළ කවචය පැවතීමට පෙර එය ලබා ගැනීම වඩා හොඳය. බහු ෂෙල් වෙඩි සමඟ කටයුතු කිරීමේදී ඉතිහාසය බියකරු සිහිනයක් බවට පත්විය හැකිය.
ඇන්තනි

en බෙන්රිෆ්කා ඔයා මගේ දවස බේරුවා. මෙම පිළිතුර ක්‍රියාත්මක විය යුතු බව මම දැන සිටිය අතර එය එසේ නොවීය, ඒ මන්දැයි මට නොතේරුණි. PROMPT_COMMAND සැකසීමෙන් පසු එය කළ යුතු ආකාරයට ක්‍රියාත්මක විය.
törzsmókus

120

මේ සඳහා කොටස් දෙකක් තිබේ:

  • bash~/.bash_historyපෙරනිමියෙන්, සැසිය අවසානයේ ලියා ඇති ගොනුවක ඉතිහාසය ගබඩා කරයි
  • මෙම historyමතක තබා ඇති බව

ආරක්ෂිත වීමට, ඔබ එය සැසිවාරයෙන් ඉවත් කළ යුතුය:

history -c

අවශ්‍ය පරිදි ඉතිහාස ගොනුව කපා දමන්න:

> ~/.bash_history

ඔබ මුරපදය ටයිප් කළ සැසිය තවමත් විවෘතව පවතී නම්, ඔබේ හෝඩුවාව ආවරණය කිරීමට තවත් ක්‍රමයක් නම් HISTFILEවිචල්‍යය ශුන්‍ය උපාංගයට සැකසීමයි, එවිට ~/.bash_historyසැසිය පිටවන විට ඉතිහාසය ලිවීමට නොහැකි වනු ඇත :

export HISTFILE=/dev/null

206
හේයි, මේ පරිපාලකයා!
රේස්ටැෆරියන්

5
පුන් අදහස් නොකෙරේ, සමාවෙන්න :) මම මගේ අදහස ලියන විට මම ඔබේ නිකට දෙස බැලුවේ නැත.
මාඩා

7
ව්‍යාකූල වීමට (සහ කිසියම් හේතුවක් නිසා තවමත් ඔබගේ මුරපදය වෙනස් කර නැත) ඔබ shredගොනුව හෝ වෙනත් ආකාරයකින් එය නැවත ලිවිය යුතු නොවේද ?
kojiro

1
A මාඩා ගැටළුවක් නැත. මගේ නික් එක පින්තූරයට ගෙන ඒමට මම පිළිතුරේ තවත් ක්‍රමයක් එකතු කළෙමි.
devnull

5
සැකසීම HISTFILE=ප්රමාණවත්ය. සිට bash(1): සකසා නොමැති නම්, කවචයක් පිටවන විට විධාන ඉතිහාසය සුරකිනු නොලැබේ.
ලෙකන්ස්ටයින්

22

ඔබ පිටවන තුරු බැෂ් (අවම වශයෙන් සියලුම histor තිහාසික හා වර්තමාන අනුවාදයන්) ඉතිහාසය ස්වයංක්‍රීයව සුරකින බැවින්, ඔබ කිසි විටෙකත් සුරැකෙන්නේ නැති බව සහතික කිරීමට අවශ්‍ය විධානයක් ටයිප් කළ විට සාමාන්‍යයෙන් අදාළ වන උපාය මාර්ගයක් වන්නේ වහාම ටයිප් කිරීමයි:

kill -9 $$

මෙය ෂෙල් SIGKILLඑකෙන් මරා දමයි , එය අල්ලා ගත නොහැක, එබැවින් පිටවීමේදී කිසිවක් ඉතිරි කිරීමට කවචයට හැකියාවක් නැත.

වෙනත් බොහෝ ප්‍රවේශයන් සත්‍යයට පසුව (එනම් දත්ත දැනටමත් තැටියට පහර දුන් පසු) සීරීමට ඇතුළත් වේ, එය දෝෂ සඳහා වැඩි ඉඩක් ඇත (පිටපතක් අස්ථානගත වී ඇත), විශේෂයෙන් පද්ධතිය btrfs හෝ ඊට සමාන භාවිතා කරන්නේ නම්.


2
+1, වැරැද්දට වැඩි අවස්ථාවක් පමණක් නොව, ඊට පසු විධාන කීයක් ක්‍රියාත්මක කළේද යන්න මත පදනම්ව එය නැවත ලබා ගත හැකිය
Cruncher

"ස්වයංක්‍රීයව" යන වචනය අස්ථානගත වී තිබේද? මන්ද යත් ඩොටැන්කොහෙන් කවචයෙන් පිටවීමකින් තොරව ඉතිහාසය සුරැකීමට ක්‍රමයක් පෙන්වා ඇති බැවිනි.
බෙන් වොයිග්ට්

3
එක් එක් විධානය ක්‍රියාත්මක වූ පසු පිටවීම වෙනුවට ඉතිහාසය සුරැකීමට කවචය වින්‍යාසගත කළ හැකිය.
නික් මැටියෝ

1
+1 මෙය හරියටම මට නිර්දේශ කිරීමට අවශ්‍ය විය! rm ~/.bash_history~OP නඩුවේ උපස්ථ ගොනුව දැනටමත් සුරකින විට ඉවත් කිරීමට අමතරව
ටොමාස්

ඔබ "PROMPT_COMMAND = history -a" සකසා ඇත්නම් මෙය ක්‍රියාත්මක නොවන බව මතක තබා ගන්න. මෙය ක්‍රියාත්මක වීමත් සමඟම ඔබේ මුරපදය සහිත විධානය වහාම ඔබේ .bash_history වෙත ලියා එවනු ලැබේ. එය ඉවත් කිරීමට ඔබට .bash_history සංස්කරණය කිරීමට සිදුවේ.
බෙන්රිෆ්කා

11

ඔබ ඉතිහාසයේ ගබඩා කිරීමට අකමැති දෙයක් අහම්බෙන් ටයිප් කිරීමෙන් පසුව, ඔබට ටයිප් කළ හැකිය: unset HISTFILE

ඔබ ලොග් වන විට ඉතිහාසය ගබඩා කරන්නේ කොතැනදැයි බාෂ් නොදනී, එබැවින් මෙය සැසිවාරය සඳහා ඉතිහාසය ලොග් වීම අක්‍රීය කරනු ඇත.


ඔබ "PROMPT_COMMAND = history -a" සකසා ඇත්නම් මෙය ක්‍රියාත්මක නොවන බව මතක තබා ගන්න. මෙය ක්‍රියාත්මක වීමත් සමඟම ඔබේ මුරපදය සහිත විධානය වහාම ඔබේ .bash_history වෙත ලියා එවනු ලැබේ. එය ඉවත් කිරීමට ඔබට .bash_history සංස්කරණය කිරීමට සිදුවේ.
බෙන්රිෆ්කා

11

මේ සඳහා මගේ ප්‍රියතම උපක්‍රමය නම් ඉහළ ඊතලය, විධානයට පිටුපසට පහර දීම, යමක් ටයිප් කිරීම (අවශ්‍ය නොවනු ඇත), පහළ ඊතලයට පහර දීම, "ls" ටයිප් කිරීම සහ එන්ටර් යතුර ඔබන්න. ඇත්තෙන්ම හොකී බවක් දැනේ, නමුත් එය සැබවින්ම ක්‍රියාත්මක වේ. මගේ ඉතිහාසයේ වැරදි විධානයක් සංස්කරණය කිරීමෙන් පසුව කෝපයට පත් වූ විට මෙය සොයාගනු ලැබුවෙමි. මම හිතන්නේ බැෂ් සංශෝධනවාදී ඉතිහාසයට සහය දක්වයි. ;-)

$ passw0rd
$ <up arrow><backspace x8>cd<down arrow>echo hi
$ history|tail -3

පෙනේ:

$ passw0rd
passw0rd: command not found
$ echo hi
hi
$ history|tail -3
 2445* cd
 2446  echo hi
 2447  history|tail -3
$ 

ඒක අමුතුයි . එක් අවාසියක් නම්, ඔබ ඉතිහාසය සංස්කරණය කළ බව දන්නා බව පෙනේ, එබැවින් පැරණි අනුවාදය යථා තත්වයට පත් කිරීමට යම් ක්‍රමයක් තිබිය හැකිද?
මැඩ්ටක්ස්

AdMadTux - සම්පුර්ණයෙන්ම, නමුත් .bash_history යනු සරල පෙළ ගොනුවකි. එබැවින් ඔබට ඉහත උදාහරණය කළ හැකිය, පිටවීම සහ නැවත සම්බන්ධ කිරීම. .Bash_history ගොනුවේ සම්පූර්ණ අන්තර්ගතය බැලූ විට, ඔබ "සීඩී" ධාවනය කර ඇත්නම් එය වෙන්කර හඳුනාගත හැකි කිසිවක් එහි නොමැත, එබැවින් මාර්ගය පිරිසිදුයි.
මාර්ක් ජර්ඩ්

ඔබ "PROMPT_COMMAND = history -a" සකසා ඇත්නම් මෙය ක්‍රියාත්මක නොවන බව මතක තබා ගන්න. මෙය ක්‍රියාත්මක වීමත් සමඟම ඔබේ මුරපදය සහිත විධානය වහාම ඔබේ .bash_history වෙත ලියා එවනු ලැබේ. එය ඉවත් කිරීමට ඔබට .bash_history සංස්කරණය කිරීමට සිදුවේ.
බෙන්රිෆ්කා

10

අනෙක් පිළිතුරු වලට අමතරව, මුරපදය ටර්මිනල් අනුචලන බෆරයේ ද - ප්‍රදර්ශනය කළ පෙළෙහි ඉතිහාසය - ද, දැන්, සහ, තවත් බොහෝ ගැටලු, සමහර විට දෘඩ තැටියේ, ටර්මිනල් ඉමුලේටරය සුරකින ලද්දේ නම් අදාළ විය හැකිය. ඉතිහාසය තැටියට. මෙය සිදුවන්නේ KDE konsole හි වන අතර ඉතිහාසයේ ප්‍රමාණය “අසීමිත අනුචලන” ලෙස සකසා ඇත.


7

සමඟ $<space> command, ඉතිහාසයට විධානයක් එක් නොකෙරේ, සමහර විට ප්‍රයෝජනවත් වේ

$  history | grep mywierdgrep
$ history | grep mywierdgrep
 2005  history | grep mywierdgrep

2
සිත්ගන්නා සුළු වුවත්, විස්තර කර ඇති තත්වය තුළ මෙය ප්‍රයෝජනවත් වන්නේ කෙසේද යන්න පැහැදිලි නැත. සෑම මුරපදයක්ම ඉඩකින් ආරම්භ කළ යුතු යැයි ඔබ යෝජනා කරනවාද?
බෙන් වොයිගට්

1
නැත, ඔහු යෝජනා කරන්නේ මෙය ක්‍රියාත්මක වන විට, ඔබ ඉතිහාසයට කැපවීමට අකමැති ඕනෑම පේළියක් ප්‍රමුඛ අවකාශයකින් ටයිප් කළ යුතු බවයි. උදා: "ls" "ls" බවට පත්වන අතර එම රේඛාව ඉතිහාසයේ හෝ ඔබේ සැසිවල ඉහළ ඊතල ලැයිස්තුවේ කිසි විටෙකත් නොපෙන්වයි.
බ්‍රයන් සී.

4
මෙම ප්‍රමුඛ-අභ්‍යවකාශ උපක්‍රමය ක්‍රියාත්මක වන්නේ $ HISTCONTROL හි නොසලකා හැරීම් අවකාශයක් තිබේ නම් පමණි.
බර්න්ඩ් ජෙන්ඩ්‍රිසෙක්

2
ris jris198944 විධාන රේඛා තර්කයක් හරහා මුරපදයක් ලබා දීමෙන් එය ක්‍රියාත්මක වන පද්ධතියේ ඕනෑම කෙනෙකුට එය නිරාවරණය විය හැකිය ps.
jamesdlin

2
කෙසේ වෙතත්, ඔබ කලින් සැලසුම් කරන්නේ නම් මෙම උපක්‍රමය ප්‍රයෝජනවත් වන අතර, යමෙකු අහම්බෙන් විධාන රේඛාවක මුරපදයක් ඇතුළත් කළ මුල් දර්ශනයට මෙය උදව් නොකරයි .
ජේම්ස්ඩ්ලින්

4

ඉතිහාස ගොනුවට සුරැකීම වළක්වා ගැනීම සඳහා තවත් විකල්පයක් වන්නේ (ඔබ ඉවත් වීමට පෙර)

chmod 400 ~/.bash_history 

ඉන්පසු ඉවත් වන්න. ඉතිහාසය ගොනුවට ලිවීම නවත්වන්න (ගොනුව කියවීමට පමණක් බැවින්) එවිට මුළු බාෂ් සැසියම ඉවත දමා පෙර ඉතිහාසය රඳවා ගනු ඇත.

නැවත පුරනය වී අවසර නැවත සකසන්න 600(නැතහොත්, ඔබ කෙතරම් ව්‍යාකූලද යන්න මත පදනම්ව!).


1

මම නැවත නැවතත් සඳහන් කරමි

ඔබ "PROMPT_COMMAND = history -a" [..] සකසා ඇත්නම් මෙය ක්‍රියාත්මක නොවන බව මතක තබා ගන්න.

පළමු කොටස නියත වශයෙන්ම සත්‍ය වේ, නමුත් එය නිවැරදි කිරීම සඳහා ඔබ අතින් සංස්කරණය කිරීම අවශ්‍ය නොවේ .bash_history. ඔබ එක් පේළියක විධාන දෙක ඒකාබද්ධ කළහොත් එය හොඳින් ක්‍රියාත්මක වේ:

$ history
351 ssh me@site.com
352 my_password
$ history -d 352 ; history -w

මෙම ක්‍රමය ක්‍රියාත්මක වීමට හේතුව කුමක්දැයි ඔබට පැහැදිලි කළ හැකිද?
කමිල් මැකියෝරොව්ස්කි

PROMPT_COMMAND ක්‍රියාත්මක වන්නේ ඊළඟ විධාන විමසුමට පෙර පමණි. -D සහ -w විධානයන් වෙනම රේඛාවලට ඇතුළත් කිරීමේ ගැටළුව වන්නේ PROMPT_COMMAND විසින් ඉතිහාසය -a විධානයක් ක්‍රියාත්මක කරනු ඇත. ඔබ -d සහ -w යන දෙකම එක් විධාන
රේඛාවක

0

මෙහි බොහෝ පිළිතුරු උත්සාහ කරන්නේ සැක සහිත විධානය කරන්ට් බැෂ් සැසියේ ඉතිහාසයෙන් $HISTFILE(පෙරනිමියෙන් ~ / .bash_history) ලිවීමට පෙර ඉවත් කිරීමට ය. කෙසේ වෙතත්, ඔබ PROMPT_COMMAND=history -a ඔබේ මුරපදය සමඟ විධානය සකසා ඇත්නම් $HISTFILE, විධානය අවසන් වූ වහාම විමසුම දර්ශනය වන විට වහාම ඔබට ලියනු ලැබේ . $HISTFILEඑය ඉවත් කිරීමට ඔබට සංස්කරණය කිරීමට සිදුවේ.

මෙම සැකසුම බහු විවෘත සැසි වලින් විධාන අන්තර් සම්බන්ධ කිරීමට බහුලව භාවිතා වේ .


-3

ඔබට සයිස්ලොග් ලොග් ද පරීක්ෂා කිරීමට අවශ්‍ය වනු ඇත. වලංගු නොවන පිවිසුම් සාමාන්‍යයෙන් syslog වෙත ලොග් වනු ඇත.

/ var / log / messages හෝ ඔබේ මෙහෙයුම් පද්ධතියට සමාන වේ.


1
ගැටළුව වන්නේ ඔහු මුරපදයක් වැරදියට ඇතුළත් කිරීම නොවේ, ඔහු දැනටමත් පුරනය වී ඇති අතර ඔහුගේ මුරපදය විමසුමට ඇතුළත් කර Enter යතුර ඔබන්න. මෙය පණිවිඩ ගොනුවේ නොපෙන්වයි.
මැක්ලියෝඩ්
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.