آموزش حذف تاریخچه دستورات در لینوکس

آموزش حذف تاریخچه دستورات در لینوکس
آموزش حذف تاریخچه دستورات در لینوکس
9 ماه پیش

آموزش حذف تاریخچه دستورات در لینوکس به شما کمک می‌کند که امنیت سیستم Linux خود را ارتقا بخشیده و مانع از سوءاستفاده افراد کلاه‌بردار از اطلاعات خود شوید. آیا به دنبال راهی برای بالا بردن امنیت و حفظ حریم خصوصی خود در سرویس‌های اشتراکی سرور لینوکس می‌گردید؟ آیا می‌خواهید از اطلاعات سیستم خود در برابر افراد سودجو محافظت کنید؟ در این صورت حتماً این مقاله در مورد آموزش حذف تاریخچه دستورات در لینوکس را بخوانید. 

لینوکس یک سیستم‌عامل رایانه متن‌باز از خانواده سیستم‌های شبه یونیکس است که از هسته (کرنل) لینوکس استفاده می‌کند. در تعریف اصلی این سیستم‌عامل رایانه آمده است که Linux is a family of Unix-like operating systems that use the Linux kernel and are open source.

شما می‌توانید از دستور History برای حذف کامل تاریخچه دستورات در لینوکس استفاده کنید. در این مقاله قصد داریم به شما نحوه حذف تمام دستورات یا یک دستور بخصوص را از bash history در لینوکس، سیستم عامل مک و دیگر سیستم‌های شبه یونیکس آموزش دهیم. پس با ما همراه باشید. 

 

بش هیستوری (Bash History) چیست؟

همانطور که می‌دانید ، پس از وارد کردن هر دستور در ترمینال لینوکس ، تمامی دستورات در فایلی ذخیره شده و شما می‌توانید با کلیدهای جهت‌دار بالا و پایین از روی کیبورد به آنها دسترسی داشته باشید.

خُب این یک نکته مثبت برای شماست که نیازی نیست ، دستوری را که بارها به آن نیاز دارید تایپ کنید و با کلیدهای بالا و پایین از روی کیبورد ، خیلی سریع به آن دست پیدا خواهید کرد.

اما در کنار نکات مثبت آن ، مسائل امنیتی وجود دارد که باید به آن دقت کنید. تمامی دستورات وارد شده در ترمینال توسط هر یوزری در فایلی با نام bash_history. در دایرکتوری home/ همان یوزر ذخیره شده و می‌توانید با دیدن آن فایل تمام دستوراتی که وارد شده است را مشاهده کنید. البته نکته مهم اینجاست که یوزرها قادر به دیدن تاریخچه سایر یوزرهای دیگر نیستند و این اجازه را تنها یوزر root داراست. 

نکته: با توجه به اینکه تمامی دستورات در بش هیستوری ذخیره می‌شوند، هیچ گاه نباید پسورد خود را با فرمت متنی در خط فرمان Linux وارد کنید. در اینصورت ادمین یا هر فرد دیگری که به تاریخچه دستورات شما دسترسی داشته باشد می‌تواند پسوردتان را ببینید. 

 

چرا باید تاریخچه دستورات Linux را پاکسازی کنیم؟

در اکثر موارد توصیه می‌شود که مدیران شبکه به طور مرتب تاریخچه دستورات لینوکس را پاکسازی نمایند. علت این موضوع آن است که با حذف هیستوری عملاً دسترسی افراد متفرقه به این دستورات غیرممکن خواهد بود. 

فرض کنید که شما یک سری تنظیمات امنیتی وضع کرده‌اید که دسترسی اشخاص ثالث به دیتای شبکه شما را محدود می‌سازد. اکنون اگر فردی به دستورات مربوط به تنظیمات امنیتی شما دسترسی پیدا کند، می‌تواند به آسانی از این اطلاعات سوء استفاده کرده و سد امنیتی شما را در هم بشکند. از این رو حذف تاریخچه دستورات در لینوکس از لحاظ امنیتی بسیار حائز اهمیت است. 

علت دیگر این موضوع کنجکاوی سایر اعضا و خصوصاً همکاران تازه کار شماست. گاهی اوقات برخی دستوراتی که شما در لینوکس وارد می‌کنید، به طور بالقوه آسیب زننده بوده و ممکن است سلامت سیستم شما را به خطر بیاندازند. 

شما این دستورات را می‌شناسید؛ اما ممکن است همه اعضای تیمتان با عواقب وارد کردن این دستورات آشنایی نداشته باشند. بنابراین اگر فردی صرفاً از روی لیست History دستورات بخواهد آن‌ها را تکرار کند، ممکن است به سیستم آسیب جدی وارد کند. 

اگرچه شما در این شرایط همواره گزینه نصب دوباره سیستم را خواهید داشت، اما بهتر است قبل از آنکه کار به نصب سیستم جدید بکشد، از چنین پیشامدی جلوگیری کنید.   

 

آموزش حذف تاریخچه دستورات در Linux

- دستور history ، دستوری است که شما قادر خواهید بود با آن تمامی دستوراتی را که وارد کرده‌اید را مشاهده نمایید.

history

پس از وارد کردن این دستور ، خروجی همانند عبارات زیر دریافت خواهید کرد که شامل دو بخش دستور وارد شده و یک شماره خط می‌باشد.

[root@websrv ~]# history
1 systemctl stop firewalld
2 ls -ltrh

- شما می‌توانید در لینوکس ، یک دستور را در بین تاریخچه خود پیدا کرده و حذف کنید و یا کل تاریخچه را پاکسازی نمایید.

حذف یک دستور از تاریخچه دستورات لینوکس

برای این امر کافی است ، پس از مشاهده کل تاریخچه با وارد کردن دستور history ، شماره خط آن را یادداشت کرده و به شکل زیر به حذف آن بپردازید.

history -d 2

با وارد کردن دستور بالا ، تنها خطی که شماره آن 2  است ، حذف خواهد شد و سایر موراد به همان ترتیب قبلی نمایش داده می‌شوند.

 

حذف کل تاریخچه دستورات لینوکس

حال برای حذف کلیه تاریخچه شما می‌توانید از دو روش استفاده کنید.

 

روش اول

روش اول استفاده از همان دستور history است که به شکل زیر تمام تاریخچه را حذف خواهد کرد.

history -c

این روش تنها برای حذف تاریخچه همان یوزری که در حال حاضر با آن لاگین هستید ، کاربرد دارد.

 

روش دوم

روش دوم کمی پیچیده بنظر می‌رسد و عموماً در اسکریپت‌ها و یا حذف تاریخچه یک یوزر دیگر توسط root استفاده می‌گردد اما خالی از لطف نیست که در این مطلب نیز به آن اشاره نماییم.

در ابتدای مطلب خدمت شما عرض کردیم که تمامی تاریخچه لینوکس در یک فایل با نام bash_history. در دایرکتوری home/ هر یوزر ذخیره می‌گردد. بنابراین می‌توان به شکل زیر محتویات داخل آن را به null یعنی تهی تبدیل کنیم.

cat /dev/null > ~/.bash_history

با وارد کردن دستور بالا ، محتویات فایل bash_histroy. همان یوزری که با آن لاگین کرده‌اید حذف خواهد شد ، چنانچه قصد دارید تاریخچه یک یوزر دیگر را حذف کنید باید به دایرکتوری home/ همان یوزر رفته و فایل مذکور را در آن یافته و حذف نمایید.

به طور مثال در دستور زیر تاریخچه یوزر abtin را حذف خواهیم کرد.

cat /dev/null > /home/abtin/.bash_history

 

حذف تاریخچه دستورات در لینوکس در زمان لاگ اوت

شما می‌توانید تنظیمات Linux را طوری تغییر دهید که تاریخچه دستورات بلافاصله بعد از خارج شدن شما (لاگ اوت) صورت گیرد. برای این کار خط زیر را در ترمینال وارد کنید:

cat /dev/null > ~/.bash_history && history -c

 

نحوه مشاهده بش هیستوری

به طور معمول، هیستوری دستورات در لینوکس تحت فایلی با عنوان bash_history ذخیره می‌گردد. این فایل در پوشه home کاربر قابل دسترسی است. برای پیدا کردن فایل بش هیستوری خود دستور زیر را در ترمینال وارد کنید:

ls  -l  /home/username/ .bash_history

به جای یوزرنیم نام کاربر مورد نظر را جایگزین کنید. 

دقت داشته باشید که کاربر روت می‌تواند تاریخچه دستورات تمامی کاربران سیستم را مشاهده کند. اما برای کاربران معمولی تنها تاریخچه دستورات خودشان نمایش داده می‌شود. 

در اینجا مطلب آموزش حذف تاریخچه دستورات در لینوکس به پایان رسیده است.

امیدواریم از این آموزش استفاده مفید و لازم را برده باشید.

سوالات متداول

دستور History لینوکس چه کاربردی دارد؟

دستور History در لینوکس یک ابزار پوسته پیش ساخته است که لیست دستورات به کار رفته در ترمینال را نمایش می‌دهد. در واقع این دستور به کاربران این امکان را می‌دهد که بدون نیاز به تایپ مجدد یک دستور، آن را اجرا کنند.

چطور تاریخچه دستورات را در ویندوز پاک کنم؟

برای حذف تاریخچه دستورات در ویندوز باید از دستور Clear-History در پاورشل استفاده کنید. همچنین می‌توانید از میانبر Alt + F7 در ویندوز استفاده کنید.

چطور سایز بش تاریخچه لینوکس را افزایش دهم؟

برای بالا بردن سایز بش تاریخچه باید کانفیگ زیر را در فایل ~/.bashrc تغییر دهید و فایل را بعد از تغییر ذخیره کنید. ## Set the maximum number of lines contained in the history file ## HISTFILESIZE=5000000 ## Set the number of commands to remember in the command history ## HISTSIZE=10000 ## Append it ## shopt -s histappend

تاریخچه دستورات در کدام قطعه سخت افزاری ذخیره می‌شود؟

به طور پیشفرض تاریخچه دستورات Linux تا زمان لاگ اوت در RAM ذخیره می‌شود. بعد از خروج از ترمینال، این دستورات بر روی دیسک در پوشه ~/ ذخیره می‌شوند.

آیا می‌توانم تاریخچه دستورات لینوکس را به طور دائم پاک کنم؟

بله. شما می‌توانید با استفاده از دستور زیر بش هیستوری را به طور دائم غیرفعال کنید: echo 'set +o history' >> ~/.bashrc با این کار، دفعه بعدی که یک کاربر وارد پوسته می‌شود، هیچ دستوری در فایل bash_history ذخیره نخواهد شد.

آیا برای اجرای دستور History و پاک کردن تاریخچه دستورات احتیاج به دسترسی ادمین دارم؟

خیر. شما برای حذف تاریخچه دستورات لینوکس احتیاجی به دسترسی ادمین ندارید. اما دقت داشته باشید که بدون دسترسی ادمین تنها قادر به پاک کردن تاریخچه فعالیت‌های خودتان خواهید بود.

author
Mina seyfollahzadeh- نویسنده

13147
A
A