Linux用戶的用戶名保存在/etc/passwd
文件中,密碼保存在/etc/shadow
中。要禁止用戶修改/重置密碼,將這兩個文件設(shè)置為只讀即可:
chattr +i /etc/passwd chattr +i /etc/shadow
要允許修改密碼,取消文件上的只讀標記:
chattr -i /etc/passwd chattr -i /etc/shadow
只設(shè)置/etc/passwd為只讀不能阻止更改密碼,因為更改密碼只需更新/etc/shadow文件。將這兩個文件設(shè)置為只讀后,附加效果是無法新建新用戶(新建用戶會寫入/etc/passwd)。例如使用yum安裝MySQL,安裝程序?qū)o法新建mysql用戶,從而無法正常啟動MySQL服務(wù)。如果設(shè)置了文件只讀后,建議在yum安裝程序時關(guān)閉只讀。
]]>之前在Ubuntu上吃過虧,因此我偏向于為root賬戶設(shè)置密碼,root賬戶讓我充滿著對機器的掌控感。但暴露在公網(wǎng)的服務(wù)器,安全畢竟十分重要,因此按照安全建議在部分重要機器上禁止了root賬戶遠程登錄,改用普通用戶+sudo提權(quán)模式。
使用一段時間后,發(fā)現(xiàn)禁用root賬戶并沒有帶來太多安全性提升,反而會導(dǎo)致日常管理十分不便。這也讓我反思如何才是禁用root賬戶的正確方式?
經(jīng)過一番思考,個人得出禁用root的場景:
桌面環(huán)境使用;例如在個人電腦上安裝桌面版的Ubuntu、Debian、Fedora等系統(tǒng)日常使用,推薦不創(chuàng)建root賬戶;
多人使用的工作站、服務(wù)器環(huán)境,并且自己也作為普通用戶進行日常使用。
其實上面場景的核心是:平時會以普通用戶身份使用Linux,因此禁用root賬戶是推薦的,不必記住兩套密碼。
而以下場景則無須禁用root賬戶,否則scp上傳等操作會帶來額外的麻煩:
Linux系統(tǒng)只有你一個人用,并且用作服務(wù)器,做的都是服務(wù)器管理和運維操作;
多人使用場景下,你是運維/管理員,不會以普通身份使用服務(wù)器。
沒必要禁用root賬戶核心點是,服務(wù)器的管理/運維人員,不會以普通身份使用服務(wù)器。因為維護服務(wù)器相對來說使用次數(shù)較少,每次使用幾乎都要運行特權(quán)命令。
當然,無論是否禁用root賬戶,以下安全操作是推薦的:
有條件的情況下將服務(wù)器隔離,使用跳板機或者VPN登錄;
暴露于公網(wǎng)環(huán)境的服務(wù)器,修改默認的22端口;
暴露于公網(wǎng)的服務(wù)器,修改為密鑰登錄或者密碼加Google authenticator/短信/token二次授權(quán)登錄;
服務(wù)器重要數(shù)據(jù)做好備份。
參考文章:
]]>區(qū)別一:linux區(qū)分大小寫,windows在dos界面命令下不區(qū)分大小寫;
區(qū)別二:文件系統(tǒng)區(qū)別
在 Windows 下,打開 “計算機”,我們看到的是一個個的驅(qū)動器盤符:
每個驅(qū)動器都有自己的根目錄結(jié)構(gòu),這樣形成了多個樹并列的情形,如圖所示:
在 Linux 下,我們是看不到這些驅(qū)動器盤符,我們看到的是文件夾(目錄):
linux沒有盤符這個概念,只有一個根目錄 /,所有文件都在它下面
Centos的文件結(jié)構(gòu)
一些額外的參數(shù)時需要函數(shù)庫的協(xié)助。
區(qū)別三:linux所有內(nèi)容均以文件形式保存包括硬件,用戶,而windows文件和硬件沒什么關(guān)系,兩個之間沒有關(guān)聯(lián);
區(qū)別四:windows用擴展名區(qū)分文件如.exe代表執(zhí)行文件,.txt代表文本文件,而linux無擴展名的概念,當然為了管理員區(qū)分方便會有部分擴展,
例如.gz , .bz2 ,.tar.bz2代表壓縮包,.html ,.php代表網(wǎng)頁文件,這些純粹是給管理員看的便于區(qū)分,但是linux本身是沒有擴展名的,linux是以權(quán)限區(qū)分文件的,文件權(quán)限總共有十位(可用ls -l查看每個文件的權(quán)限)。
區(qū)別五:windows平臺:數(shù)量和質(zhì)量的優(yōu)勢,不過大部分為收費軟件;由微軟官方提供重要支持和服務(wù) 。
linux平臺:大都為開源自由軟件,用戶可以修改定制和再發(fā)布,由于基本免費沒有資金支持,部分軟件質(zhì)量和體驗欠缺;有全球所有的Linux開發(fā)者和自由軟件社區(qū)提供支持。
區(qū)別六:windows下的.exe文件不能直接在linux下安裝與運行,同時linux大部分是字符界面,大大增加了linux系統(tǒng)的安全性,減少了木馬攻擊的可能性,同時linux字符界面占用的系統(tǒng)資源要小于windows下的圖形界面所占的資源。
]]>CentOS系統(tǒng)安裝命令:
yum install iftop
Debian系統(tǒng)安裝命令:
apt-get install iftop
安裝過程中會有提示輸入Y后繼續(xù)安裝完成。
安裝好后在服務(wù)器執(zhí)行iftop -i eth1就可以查看服務(wù)器公網(wǎng)網(wǎng)卡帶寬使用情況(如果只執(zhí)行iftop默認檢測第一塊網(wǎng)卡使用情況,這樣查的會是內(nèi)網(wǎng)網(wǎng)卡eth0。)
iftop -i eth0 -P
iftop界面含義如下
第一行:帶寬顯示
中間部分:外部連接列表,即記錄了哪些ip正在和本機的網(wǎng)絡(luò)連接
中間部分右邊:實時參數(shù)分別是該訪問ip連接到本機2秒,10秒和40秒的平均流量=>代表發(fā)送數(shù)據(jù),<= 代表接收數(shù)據(jù)
底部三行:表示發(fā)送,接收和全部的流量
底部三行第二列:為你運行iftop到目前流量
底部三行第三列:為高峰值
底部三行第四列:為平均值
通過iftop的界面很容易找到哪個ip在占用網(wǎng)絡(luò)流量,這個是ifstat做不到的。不過iftop的流量顯示單位是Mb,這個b是bit,是位,不是字節(jié),而ifstat的KB,這個B就是字節(jié)了,byte是bit的8倍。
進入iftop畫面后的一些操作命令(注意大小寫)
按h切換是否顯示幫助;
按n切換顯示本機的IP或主機名;
按s切換是否顯示本機的host信息;
按d切換是否顯示遠端目標主機的host信息;
按t切換顯示格式為2行/1行/只顯示發(fā)送流量/只顯示接收流量;
按N切換顯示端口號或端口服務(wù)名稱;
按S切換是否顯示本機的端口信息;
按D切換是否顯示遠端目標主機的端口信息;
按p切換是否顯示端口信息;
按P切換暫停/繼續(xù)顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒內(nèi)的平均流量;
按T切換是否顯示每個連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車后,屏幕就只顯示這個IP相關(guān)的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按j或按k可以向上或向下滾動屏幕顯示的連接記錄;
按1或2或3可以根據(jù)右側(cè)顯示的三列流量數(shù)據(jù)進行排序;
按<根據(jù)左邊的本機名或IP排序;
按>根據(jù)遠端目標主機的主機名或IP排序;
按o切換是否固定只顯示當前的連接;
按f可以編輯過濾代碼;
按!可以使用shell命令;
按q退出監(jiān)控。
]]>find ./ -name "*" -type f -size 0c | xargs -n 1 rm -f
find ./ -name "test" -type d -exec rm -rf {} ;
find ./ -name '.py' -exec rm -rf {} ;
find ./ -size +50M
find ./ -size +50M -exec rm {} \;
刪除當前路徑下,所有文件夾里面的大于300k的文件
find ./ -size +300k -exec rm {} \;
]]>最近,在寶塔面板里面看到100G的空間,使用率竟然達90%多,上面放了10個網(wǎng)站,只有兩三個網(wǎng)站打包后查看也就5G多的樣子。清空回收站也只是多了那么點空間,所以只能用SSH連接服務(wù)器查看了。
linux查看指定文件夾大小命令
du -sh
經(jīng)查看,網(wǎng)站這個目錄占用了69G的空間。(注意,輸入命令后,得等待十分鐘才能顯示文件夾大小,這個根據(jù)你網(wǎng)站的文件數(shù)來決定的。文件越多,等待的時間就越長。)
在網(wǎng)站總目錄下查某個網(wǎng)站的占用空間
du -sh www.vanhostingweb.com
du -sh : 查看當前目錄總共占的容量。而不單獨列出各子項占用的容量
du -lh --max-depth=1 : 查看當前目錄下一級子文件和子目錄占用的磁盤容量。
du -sh * | sort -n 統(tǒng)計當前文件夾(目錄)大小,并按文件大小排序
du -sk filename 查看指定文件大小
經(jīng)過檢測,終于發(fā)現(xiàn)一個網(wǎng)站占用率達到56G。
知道是哪個站就好解決了。不查不知道,一查嚇一跳。每天這圖片文件竟然多1G多??磥?。只好把圖片本地化功能取消了。
du -sh * | sort -n
]]>
輸入fdisk -l然后回車,我們可以看到/dev/vdb/數(shù)據(jù)盤有128.8GB沒有掛載(注意紅色文字,我在網(wǎng)上看別的教程顯示的是/xvdb/,而我這里顯示的是vdb,運行命令時根據(jù)實際顯示操作。)
2、掛載數(shù)據(jù)硬盤,輸入以下命令:
fdisk /dev/vdb
根據(jù)提示我們依次輸入 n p 1 回車 回車 wq
3、查看掛載情況(fdisk -l)
我們可以看到需要掛載盤已經(jīng)在了,現(xiàn)在需要加載到文件夾中去。由于我的網(wǎng)站是放在WWW文件夾里面。所以先用mkdir創(chuàng)建一個名為www文件夾
4、格式化分區(qū)、創(chuàng)建目錄和掛載
mkfs.ext4 /dev/vdb1
echo "/dev/vdb1 /www ext4 defaults 0 0" >> /etc/fstab
mount -a
df?查看是否加載成功
我們可以看到目錄已經(jīng)創(chuàng)建掛載完畢,在www目錄有112G,然后用reboot重起一下系統(tǒng) ,再看看是不是顯示正常。
最后安裝LNMP環(huán)境包或者BT面板。安裝方法官網(wǎng)都有介紹,我這邊就不做說明了。我比較喜歡安裝BT面板。
注意:只方法只適合有一個系統(tǒng)盤,又增加了一塊盤這種情況。如果只有一個系統(tǒng)盤,則不需要加掛,直接安裝環(huán)境面板。
關(guān)于分區(qū)時錯誤,分了兩個區(qū),想刪除重新分??蓤?zhí)行下面命令
fdisk /dev/vdb
然后輸入d ,再輸入wq保存。
]]>【漏洞詳情】
近日發(fā)現(xiàn) Linux 以及 FreeBSD 等系統(tǒng)內(nèi)核上存在嚴重遠程DoS漏洞,攻擊者可利用該漏洞構(gòu)造并發(fā)送特定的 SACK 序列請求到目標服務(wù)器導(dǎo)致服務(wù)器崩潰或拒絕服務(wù)。
【風險等級】
高風險
【漏洞風險】
遠程發(fā)送特殊構(gòu)造的攻擊包,導(dǎo)致目標 Linux 或 FreeBSD 服務(wù)器崩潰或服務(wù)不可用。
【影響版本】
目前已知受影響版本如下:
FreeBSD 12(使用到 RACK TCP 協(xié)議棧)
CentOS 5(Redhat 官方已停止支持,不再提供補?。?/p>
CentOS 6
CentOS 7
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 19.04
Ubuntu 18.10
【安全版本】
各大Linux發(fā)行廠商已發(fā)布內(nèi)核修復(fù)補丁,詳細內(nèi)核修復(fù)版本如下:
CentOS 6 :2.6.32-754.15.3
CentOS 7 :3.10.0-957.21.3
Ubuntu 18.04 LTS:4.15.0-52.56
Ubuntu 16.04 LTS:4.4.0-151.178
【修復(fù)建議】
請參照上述【安全版本】升級您的 Linux 服務(wù)器內(nèi)核,參考操作如下:
1)yum clean all && yum makecache,進行軟件源更新;
2)yum update kernel ?-y,更新當前內(nèi)核版本;
3)reboot,更新后重啟系統(tǒng)生效;
4)uname -a,檢查當前版本是否為上述【安全版本】,如果是,則說明修復(fù)成功。
1)sudo apt-get update && sudo apt-get install linux-image-generic,進行軟件源更新并安裝最新內(nèi)核版本;
2)sudo reboot,更新后重啟系統(tǒng)生效;
3)uname -a,檢查當前版本是否為【安全版本】,如果是,則說明修復(fù)成功。
1)echo 'net.ipv4.tcp_sack = 0' >> /etc/sysctl.conf ,禁用 SACK 配置;
2)sysctl -p ,重載配置,使其生效。
【漏洞參考】
1)官方通告:https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
2)社區(qū)參考:https://www.openwall.com/lists/oss-security/2019/06/17/5
3)紅帽公告:https://access.redhat.com/security/vulnerabilities/tcpsack
]]>可以通過yum install?iotop 安裝
下載完后,自動安裝,安裝過程中只用選擇一次Y??進行確認安裝!
安裝好之后,我們可以通過rpm?-qa?|grep?iotop?確認是否已經(jīng)安裝好,?直接通過io??tab補全查看有這個命令
直接輸入iotop?查看當前系統(tǒng)進程的磁盤讀寫情況,注意這個是一個動態(tài)的顯示結(jié)果。
當然也可以通過輸入??iotop??-o?直接查看輸出比較高的磁盤讀寫程序。
注意觀察發(fā)現(xiàn)異常的進程,記錄下程序的路徑(最后面就是腳本或文件的執(zhí)行路徑)
]]>Linux,免費開源,多用戶多任務(wù)系統(tǒng)?;贚inux有多個版本的衍生。RedHat、Ubuntu、Debian
常用指令
ls ? ? ? ?顯示文件或目錄
-l ? ? ? ? ? 列出文件詳細信息l(list)
-a ? ? ? ? ?列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir ? ? ? ? 創(chuàng)建目錄
-p ? ? ? ? ? 創(chuàng)建目錄,若無父目錄,則創(chuàng)建p(parent)
cd ? ? ? ? ? ? ? 切換目錄
touch ? ? ? ? ?創(chuàng)建空文件
echo ? ? ? ? ? ?創(chuàng)建帶有內(nèi)容的文件。
cat ? ? ? ? ? ? ?查看文件內(nèi)容
cp ? ? ? ? ? ? ? ?拷貝
mv ? ? ? ? ? ? ? 移動或重命名
rm ? ? ? ? ? ? ? 刪除文件
-r ? ? ? ? ? ?遞歸刪除,可刪除子目錄及文件
-f ? ? ? ? ? ?強制刪除
find ? ? ? ? ? ? ?在文件系統(tǒng)中搜索某文件
wc ? ? ? ? ? ? ? ?統(tǒng)計文本中行數(shù)、字數(shù)、字符數(shù)
grep ? ? ? ? ? ? 在文本文件中查找某個字符串
rmdir ? ? ? ? ? 刪除空目錄
tree ? ? ? ? ? ? 樹形結(jié)構(gòu)顯示目錄,需要安裝tree包
pwd ? ? ? ? ? ? ?顯示當前目錄
ln ? ? ? ? ? ? ? ? ?創(chuàng)建鏈接文件
more、less ?分頁顯示文本文件內(nèi)容
head、tail ? ?顯示文件頭、尾內(nèi)容
ctrl+alt+F1 ?命令行全屏模式
stat ? ? ? ? ? ? ?顯示指定文件的詳細信息,比ls更詳細
who ? ? ? ? ? ? ? 顯示在線登陸用戶
whoami ? ? ? ? ?顯示當前操作用戶
hostname ? ? ?顯示主機名
uname ? ? ? ? ? 顯示系統(tǒng)信息
top ? ? ? ? ? ? ? ?動態(tài)顯示當前耗費資源最多進程信息
ps ? ? ? ? ? ? ? ? ?顯示瞬間進程狀態(tài) ps -aux
du ? ? ? ? ? ? ? ? ?查看目錄大小 du -h /home帶有單位顯示目錄信息
df ? ? ? ? ? ? ? ? ?查看磁盤大小 df -h 帶有單位顯示磁盤信息
ifconfig ? ? ? ? ?查看網(wǎng)絡(luò)情況
ping ? ? ? ? ? ? ? ?測試網(wǎng)絡(luò)連通
netstat ? ? ? ? ?顯示網(wǎng)絡(luò)狀態(tài)信息
man ? ? ? ? ? ? ? ?命令不會用了,找男人? 如:man ls
clear ? ? ? ? ? ? ?清屏
alias ? ? ? ? ? ? ? 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill ? ? ? ? ? ? ? ? 殺死進程,可以先用ps 或 top命令查看進程的id,然后再用kill命令殺死進程。
gzip:
bzip2:
tar: ? ? ? ? ? ? ? ?打包壓縮
-c ? ? ? ? ? ? ?歸檔文件
-x ? ? ? ? ? ? ?壓縮文件
-z ? ? ? ? ? ? ?gzip壓縮文件
-j ? ? ? ? ? ? ?bzip2壓縮文件
-v ? ? ? ? ? ? ?顯示壓縮或解壓縮過程 v(view)
-f ? ? ? ? ? ? ?使用檔名
例:
tar -cvf /home/abc.tar /home/abc ? ? ? ? ? ? ?只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc ? ? ? ?打包,并用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc ? ? ?打包,并用bzip2壓縮
當然,如果想解壓縮,就直接替換上面的命令? tar -cvf? / tar -zcvf? / tar -jcvf 中的“c” 換成“x” 就可以了。
shutdown
-r ? ? ? ? ? ? 關(guān)機重啟
-h ? ? ? ? ? ? 關(guān)機不重啟
now ? ? ? ? ?立刻關(guān)機
halt ? ? ? ? ? ? ? 關(guān)機
reboot ? ? ? ? ?重啟
將一個命令的標準輸出作為另一個命令的標準輸入。也就是把幾個命令組合起來使用,后一個命令除以前一個命令的結(jié)果。
例:grep -r "close" /home/* | more ? ? ? 在home目錄下所有文件中查找,包括close的文件,并分頁輸出。
dpkg?(Debian Package)管理工具,軟件包名以.deb后綴。這種方法適合系統(tǒng)不能聯(lián)網(wǎng)的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統(tǒng)中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb ? ? ? ? 安裝軟件
sudo dpkg -r tree ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 卸載軟件
注:將tree.deb傳到Linux系統(tǒng)中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級軟件工具。這種方法適合系統(tǒng)能夠連接互聯(lián)網(wǎng)的情況。
依然以tree為例
sudo apt-get install tree ? ? ? ? ? ? ? ? ? ? ? ? 安裝tree
sudo apt-get remove tree ? ? ? ? ? ? ? ? ? ? ? 卸載tree
sudo apt-get update ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 更新軟件
sudo apt-get upgrade
將.rpm文件轉(zhuǎn)為.deb文件
.rpm為RedHat使用的軟件格式。在Ubuntu下不能直接使用,所以需要轉(zhuǎn)換一下。
sudo alien abc.rpm
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q ? ? ? ? ? ? ? ? ? ? ?退出
:q! ? ? ? ? ? ? ? ? ? ? 強制退出
:wq ? ? ? ? ? ? ? ? ? 保存并退出
:set number ? ? 顯示行號
:set nonumber ?隱藏行號
/apache ? ? ? ? ? ?在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp ? ? ? ? ? ? ? ? ? 復(fù)制光標所在行,并粘貼
h(左移一個字符←)、j(下一行↓)、k(上一行↑)、l(右移一個字符→)
/etc/passwd ? ?存儲用戶賬號
/etc/group ? ? ? 存儲組賬號
/etc/shadow ? ?存儲用戶賬號的密碼
/etc/gshadow ?存儲用戶組賬號的密碼
useradd 用戶名
userdel 用戶名
adduser 用戶名
groupadd 組名
groupdel 組名
passwd root ? ? 給root設(shè)置密碼
su root
su - root
/etc/profile ? ? 系統(tǒng)環(huán)境變量
bash_profile ? ? 用戶環(huán)境變量
.bashrc ? ? ? ? ? ? ?用戶環(huán)境變量
su user ? ? ? ? ? ? ?切換用戶,加載配置文件.bashrc
su - user ? ? ? ? ? ?切換用戶,加載配置文件/etc/profile ,加載bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬于用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組。可以使用命令。
sudo chown root:root?jdk-7u21-linux-i586.tar.gz
三種基本權(quán)限
R ? ? ? ? ? 讀 ? ? ? ? 數(shù)值表示為4
W ? ? ? ? ?寫 ? ? ? ? 數(shù)值表示為2
X ? ? ? ? ? 可執(zhí)行 ?數(shù)值表示為1
如圖所示,jdk-7u21-linux-i586.tar.gz文件的權(quán)限為-rw-rw-r--
-rw-rw-r--一共十個字符,分成四段。
第一個字符“-”表示普通文件;這個位置還可能會出現(xiàn)“l(fā)”鏈接;“d”表示目錄
第二三四個字符“rw-”表示當前所屬用戶的權(quán)限。 ? 所以用數(shù)值表示為4+2=6
第五六七個字符“rw-”表示當前所屬組的權(quán)限。 ? ? ?所以用數(shù)值表示為4+2=6
第八九十個字符“r--”表示其他用戶權(quán)限。 ? ? ? ? ? ? ?所以用數(shù)值表示為2
所以操作此文件的權(quán)限用數(shù)值表示為662
更改權(quán)限
sudo chmod [u所屬用戶 ?g所屬組 ?o其他用戶 ?a所有用戶] ?[+增加權(quán)限 ?-減少權(quán)限] ?[r ?w ?x] ? 目錄名
例如:有一個文件filename,權(quán)限為“-rw-r----x” ,將權(quán)限值改為"-rwxrw-r-x",用數(shù)值表示為765
sudo chmod u+x g+w o+r ?filename
上面的例子可以用數(shù)值表示
sudo chmod 765 filename
]]>