Linux常見疑難問答html
(1)按a~z順序排列啓動服務進程。java
#exportLC_ALL=C #英文環境變量設置,主要用於解決亂碼問題node
#chkconfig –list | grep [z-a] : | grepon $ sortmysql
(2)顯示運行級別爲5的全部服務。linux
#chkconfig –list | grep 5: on | sortweb
(3)如何中止某個(如cups)服務。算法
#chkconfig cups off ; /etc/init.d/cups stopsql
(4)修改了/etc/profile文件配置,怎麼當即生效。shell
#source/etc/profile以及「/etc/profile」點後面是空格。數據庫
(5)如何使用find工具找到用戶cgweb在30天內的文件並備份歸檔。
#find / -user cgweb –ctime -30 –exec tar azvf /home/backup/cgweb -new-files.tgz {} \;
(6)如何將分區表信息轉成文件。
#fdisk –l /dev/sda > /etc/config-data/sda-fdisk.txt #注意:要先創建config-data目錄
如何將硬盤分區表和MBR備份到文件:
#dd if=/dev/sda of=/etc/config-data/sda-boot.img bs=512 count=1
(7)如何提升TCP/IP堆棧安全。
一般有個辦法是經過「#echo1>/proc/sys/net/ipv4/tcp_syncookied」來阻止SYNFlood攻擊,其實這並不安全,可靠的作法是發送到/etc/sysctl.conf文件中,須要將下列代碼加到/etc/sysctl.conf中:
net.ipv4.tcp_syncookies=1
net.ipv4.ip_default_ttl=61
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.send_redirects=0
若是機器多的話能夠將這個配置文件存儲在FTP服務器(如sysctl-add,服務器IP:10.10.10.1),而後從FTP中提取出來,追加到現有的/etc/sysctl.conf文件尾:
wge tftp://10.10.10.1/pub/sysctl-add
catsystl-add >>/etc/sysctl.conf
(8)如何把/var目錄下的全部RPM文件找出來並刪除。
#find /var –name "*.rpm" –exec rm {}\;
(9)如何使用SSH在遠程主機(10.10.10.1)上創建目錄(upload)並上傳文件。
#ssh root@10.10.10.1 mkdir/var/www/html/upload
#scp *.cfg root@10.10.10.1 : /var/www/html/upload/
(10)如何用find命令查找某個文件夾下包含全部指定關鍵字的全部文件。
例如須要查找/etc/tomcat5目錄下,包含JAVA_OPTS關鍵字的全部文件:
#find /etc/tomcat5 -name "*" | xargs grep "JAVA_OPTS"
(11)把舊系統上的/etc/passwd和/etc/shadows複製到新系統裏,能夠繼續使用嗎。
千萬不要在新的機器上覆制原來的/etc/apsswd,一般在新舊兩個系統之間有不少服務都會產生衝突,若是是同一張盤安裝出來的系統,那麼能夠驗證一下系統的crypt/hash函數是否相同(即密碼採用相同的算法加密的),切忌不要在新系統中的配置文件上覆制整個/etc/的配置文件。
(12)如何實時查看日誌文件的信息(排除網絡故障時經常使用,例如DNS、DHCP調試問題)。
#tail –f /var/log/messages #如不用-f選項,默認狀態的tail只能列出文件的最後10行
(13)如何找到/etc/目錄下全部文件中,內容包括字符串「ip_forward」的文件,並打印到屏幕。
#find /etc/ -exec grep "ip_forward" '{}' \;-print
(14)如何搜索當前系統裏文件大小超過1GB的文件(排除磁盤空間方面的故障時經常使用)。
#find / -size +1024000k –exec du –h '{}' \; -print
(15)遠程服務器上沒有磁帶機,怎麼對它進行異地備份。
#tar cvf -/home/etc | ssh root@10.101.10.1 "cat > /mnt/backup/remoteserver 1_$
(date+%Y-%m-%d).tar"
SSH對於管理員來講是再熟悉不過了,那麼如何利用它從Linux服務器經過網絡傳輸標準輸出(stdout)到備份服務器呢?以上命令便可,注意date後面有個空格。
(16)普通用戶cgweb登陸系統後如何在根用戶才能訪問的位置中新建目錄呢。
# su --c "mkdir /root/cgwebtmp"
(17)如何只顯示top裏的幾個進程。
若是隻顯示幾個進程,可在top中輸入要查看進程的PID:
#top –p 4300 –p4500
(18)如何查看一個命令在執行期間發生了什麼系統調用。
#strace /bin/ping 10.10.10.12 > /tmp/ping_out
在這行命令中,經過在strace命令中運行ping命令並將標準錯誤定向到/tmp/ping_out文件,不少處理消息就會發送到ping_out文件中。若是要查看ping從哪裏得到了它的信息,則將找到全部出現open的地方來查看它打開過哪些文件:
#grep ^open /tmp/ping.out
除此以外,還可讓它跟蹤子進程,例如要跟蹤open系統在上面例子中的調用:
# strace –e trace= open/bin/ping 10.10.10.1
除了打開庫以外,ping命令還打開了配置文件resolv.conf來查找IP地址,進而找出它從何處將域名解析爲IP地址。
(19)如何測定X server服務器的性能。
當顯卡驅動裝好後可以使用下列命令來檢測Xserver服務器的性能:
# X11perf –repeat 3 –reps 10 –subs 10 100 –circulate
上述例子的X11perf命令從下至上運行一套窗口。circulate動做將重複3次,第一組有10個窗口,分別運行10次(共100次循環運行),第二組有100個窗口,依然分別循環運行10次(共1000次循環)。在每組的最後,將顯示出重複的總次數和完成整套動做所花費的時間。
還能夠用下列命令來測試性能:
#X11perf –repeat 2 –reps 1000 –ftext
將1000個包含80個字符的文本發送給顯示器(-ftext):
#X11perf –repeat2 –reps 500 –copywinwin 500
從一個窗口把500×500平方像素大小的方塊複製到另外一個窗口(-copywinwin500):
#X11perf –repeat2 –reps 800 –scroll 500
垂直滾動500×500平方像素大小的框800次。
(20)如何查看安裝的GPG密鑰。
#rpm –qa gpg-pubkey*
gpg-pubkey-0dfb3188-41ed929b
其中gpg-pubkey-0dfb3188-41ed929b表明RedHat公司用於簽名軟件包的共有密鑰。若是想得到有關這種公有密鑰的信息,能夠繼續使用RPM命令:
#rpm –qi gpg -pubkey -0dfb3188-41ed929b|less
在輸出的Summary代碼行中密鑰表示爲適用於OpenEnterpriseServer,最後輸入q退出。
(21)如何檢查包的簽名信息。
經過如下命令能夠檢查RPM遭破壞和修改的內容:
# rpm –check sig– vv fedora-logos-1.2.-1.noarch.rpm
(22)在Xen下安裝虛擬機。
#virt-install-nvm-mysql-r512-f/vm/vm-mysql.img-s10--nographics-p-lftp://ip/pub/iso
經過上面很簡單的一句代碼就能夠在Xen下安裝虛擬機了。
(23)查看當前的TCP鏈接數。
除了使用常規的netstat-na|more等命令之外,還可利用如下命令實現精確統計鏈接數量:
#netstat -n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'
TIME_WAIT29
FIN_WAIT1152
FIN_WAIT22
ESTABLISHED26
SYN_RECV16
(24)訪問遠程共享的目錄。
將以下代碼放到/etc/fstab中:
//ip/share1/mnt/dsmbfsdefaults,auto,username=name,password=pass00
其中,IP是遠程機器的IP地址,是共享目錄的共享名,「/mnt/d」是要將該分區mount到本地Linux的目錄,name和pass是能夠訪問該共享目錄的用戶名和密碼。
(25)如何加大Tomcat鏈接數。
在Tomcat配置文件server.xml中,應同時加大maxProcessors和acceptCount這兩個參數的值。
(26)如何修改Tomcat的端口數。
編輯/etc/tomcat5/server.xml找到其中的connectorport="8080"maxHttpHeaderSize="8192",這一行更改8080這個值爲其餘1024以上未用端口便可。
(27)如何加大Tomcat的內存。
Tomcat默認的內存爲128,在一些大型應用上,顯然不夠用,因此咱們須要手動加大內存:
#vi /etc/tomcat5/tomcat5.conf
找到「JAVA_OPTS=-Xmin0.1–Xmaxf0.3」代碼,Xmin0.1表示初始內存大小,更改爲Xmin256m,Xmaxf0.3表示最大內存大小,修改成512m,退出重啓便可生效。
(28)如何將大的tar包分卷壓縮或合併。
以每卷500MB爲例,tar分卷壓縮:
#tar cvz pf -somedir | split -d -b 500m
-d不是split的選項,是Shell的選項,表示將tar命令的輸出做爲split的輸入。
tar多卷合併:
catx*>mytarfile.tar.gz。
(29)如何去掉文本中多餘的回車符(尤爲是從Windows複製到Linux的狀況)。
sed's/^M//'test.sh>back.sh
注意「^M」是敲「ctrl+V+M」獲得的。
或者:
dos2unixtest.sh
(30)如何改變RedHat的系統語言/字符集。
將vi/etc/sysconfig/i18n文件修改爲:LANG="en_US",X-window會顯示英文界面,修改成:LANG="zh_CN.GB18030",X-window會顯示中文界面。
(31)查找權限位爲S的文件。
#find . -typef\(-perm-04000-o-perm-02000\)-execls-lg{}\;
(32)查找或刪除正在使用某文件的進程。
fuserfilename
fuser-kfilename
(33)如何讓用戶的密碼必須具備必定的長度,而且符合複雜度。
vi/etc/login.defs
修改PASS_MIN_LEN。
(34)如何刪除3天之前的全部內容(包括目錄名和目錄中的文件)。
1find.-ctime+3-execrm-rf{}\;
2find./-mtime+3-print|xargsrm-f–r
(35)如何不改變inode而清空一個文件。
>filename
(36)Oracle的安裝程序爲何顯示亂碼。
如今Oracle的安裝程序對中文的支持存在問題,建議使用英文界面來安裝,在執行runinstaller以前,執行:
export;exportLC_ALL=C
(37)Linux下文件和目錄的顏色表明什麼含義。
藍色表示目錄;綠色表示可執行文件;紅色表示壓縮文件;淺藍色表示連接文件;灰色表示其餘文件;紅色閃爍表示連接的文件有問題了;黃色是設備文件,包括block、char、fifo。利用dircolors–p可查看默認的顏色設置,包括各類顏色和「粗體」、下劃線、閃爍等定義。
(38)如何查看有多少活動httpd的腳本,每隔3s刷新一次。
編輯以下腳本:
#!/bin/sh
while(true)
do
pstree|grep"*\[httpd\]$"|sed's/.*-\([0-9][0-9]*\)\*\[httpd\]$/\1/'
sleep3
done
(39)如何讓cp命令在運行中顯示進度。
cp-r-vdir1dir2
cp-a-d-vdir1dir2
(40)編輯/etc/inittab後不重啓電腦,配置直接生效。
initq
(41)讓Linux連續執行幾個命令,出錯中止執行。
command1&&command2&&command3
(42)屏幕變花時怎麼辦。
當不當心cat了一個並非文本的文件時,屏幕會變花,那麼能夠按兩下「Enter」鍵,以及「Reset」鍵,屏幕就可恢復正常了。
(43)在命令行中列出本機IP地址,而不是獲得網卡信息。
#ifconfig | grep "inet"|cut-c0-36|sed-e's/[a-zA-Z:]//g'
hostname–i
(44)如何不顯示grep進程自己。
#ps -aux | grep httpd | grep -v grep
grep-vgrep能夠取消顯示所執行的grep自己這個進程,-v參數是不顯示所列出的進程名。
(45)刪除目錄中含輸入關鍵字的文件。
#find /mnt/ebook/ -typef -exec grep"輸入關鍵字"{}\;-print-execrm{}\;
(46)讓cron中的任務不回饋信息,假設5分鐘檢查一次郵件。
0-59/5****/usr/local/bin/fetchmail>/dev/null2>&1
(47)如何開啓多個X-window。
startx默認以display:0.0開啓第一個X-window,經過傳遞參數給Xserver能夠開啓多個X-window:
#startx--:1.0
#startx--:2.0
...
而後利用Ctrl+Alt+F7/F8鍵進行切換。
(48)如何產生一個長度固定(例如文件長度爲1MB)的空文件,即每一個字節的值全爲0x00。
#dd if=/dev/zero of=/tmp/zero_file bs=1024 count=1024
(49)查找當前目錄下的文件並更改擴展名。
例如將當前目錄下的全部擴展名爲.cf的文件更改成.conf。
#find ./ -name "*.cf"-execrename.conf'{}'\;
(50)如何刪除RPM-e刪除不了的包。
若是在刪除包以前刪除了包的目錄,執行如下代碼:
#rpm -e --noscripts
若是系統裏一個包被裝兩次(因爲某些異常引發的),則執行如下代碼:
#rpm -emulti-installed-pkgs–allmatches
(51)如何防止某個關鍵文件被修改。
在Linux下,有些配置文件是不容許任何人(包括root)修改的。爲了防止被誤刪或修改,能夠設定該文件的「不可修改位(Immutable)」。命令以下:
#chattr+i/etc/fstab
若是須要修改文件則採用下面的命令:
#chattr-i/etc/fstab
(52)怎樣限制一個用戶能夠啓動的進程數。
先肯定一下/etc/pam.d/login文件中以下一行代碼是否存在:
sessionrequired/lib/security/pam_limits.so
而後編輯/etc/security/limits.conf,在其中能夠設置限制用戶的進程數、CPU佔用率和內存使用率等,如hardnproc30就是指限制30個進程。
(53)如何限制Shell命令記錄的大小。
在默認狀況下,bash會在文件$HOME/.bash_history中存放多達500條命令記錄。有時根據具體的系統不一樣,默認記錄條數也不一樣。系統中每一個用戶的主目錄下都有一個這樣的文件。爲了系統的安全,在此強烈建議用戶限制該文件的大小,若是是root用戶,更應該減少這個條目數。用戶能夠編輯/etc/profile文件,修改其中的選項以下:HISTFILESIZE=5或HISTSIZE=5,這樣就將記錄的命令條數減小到5條。
(54)使用RPM命令時沒有任何響應,怎麼辦。
#rm -rf /var/lib/rpm/__db.*
(55)如何防止用戶修改某文件。
對系統中的一些關鍵文件和我的重要資料,能夠經過文件權限來保護,例如將文件屬性設爲600。另外,若是Linux使用的是ext2或ext3文件系統,還可使用chattr命令,給文件加上i屬性,即便root用戶也不能直接修改或刪除這類文件,以有效防止意外修改狀況的發生。具體命令以下:
#chattr +i passwd
可以使用以下命令去除i屬性:
#chattr –i passwd
(56)解決WebLogic在Linux下啓動關閉很慢的問題。
啓動、關閉WebLogic時,時間很是長,其緣由是JDK中存在一個Bug,解決辦法是在WebLogic啓動腳本里setDomainEnv.sh加入如下內容:
JAVA_OPTIONS="${JAVA_OPTIONS}-Djava.security.egd=file:/dev/./urandom"
exportJAVA_OPTIONS
建議操做前先將setDomainEnv.sh進行備份。
(57)如何實時查看某一進程的資源消耗狀況。
首先查看這個進程的PID,假設PID爲500。利用「top-p500」命令,就能夠實時查看這個進程的資源消耗狀況了。
(58)如何刪除一類進程。
#ps -efww|grepLOCAL=NO|grep-vgrep|cut-c9-15|xargskill-9
(59)如何手動修改IP。
編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,而後執行以下命令:
ifdowneth0;ifupeth0
(60)如何查看22端口如今運行什麼程序。
#lsof -i :22
(61)如何開啓IP轉發。
編輯/etc/sysctl.conf,例如:
net.ipv4.ip_forward=0
將其修改成:
net.ipv4.ip_forward=1
重啓後生效,利用「sysctl-a」查看可知已開啓IP轉發。
(62)如何容許/禁止root經過SSH登陸系統。
經過修改「sshd_config:PermitRootLoginno|yes」便可實現。
(63)如何讓Linux自動同步時間。
#vi /etc/crontab
添加如下代碼:
0001**rootrdate-stime.nist.gov
(64)如何讓SSH登陸系統永久不斷開。
修改本身HOME目錄下的.bash_profile文件,加上exportTMOUT=1000000(以s爲單位),而後運行source.bash_profile。
(65)防止任何人使用su命令成爲root。
在vi/etc/pam.d/su中加入如下代碼:
authsufficient/lib/security/pam_rootok.sodebug
authrequired/lib/security/pam_wheel.sogroup=wheel
在/etc/pam.d/su配置文件中定義wheel組。
(66)如何給一塊網卡綁定多個IP。
Linux系統中的一塊網卡,最多支持256個IP,執行如下代碼:
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:1
#vi ifcfg-eth0:1
修改IP和設備名便可。
(67)Linux下清空ARP表的命令。
#arp-d-a (適用於BSD)
forHOSTinarp|sed'/Address/d'|awk'{print$1}';doarp-d$HOST;done
(68)如何使Linux支持NAT。
#echo1>/proc/sys/net/ipv4/ip_forward
#iptables-tnat-IPOSTROUTING-jMASQUERADE
(69)臨時修改網卡MAC地址的方法。
l關閉網卡:/sbin/ifconfig eth0 down
l修改地址:/sbin/ifconfig eth0 hwether 00:AA:BB:CCD:EE
l啓動網卡:/sbin/ifconfig eth0 up
(70)更改eth0爲混雜模式。
打開網卡eth0,改爲混雜模式:
#ifconfig eth0 promisc
關閉混雜模式:
#ifconfig eth0 –promisc
(71)如何讓SSH只容許指定的用戶登陸。
在/etc/pam.d/sshd文件中加入:
authrequiredpam_listfile.soitem=usersense=allowfile=/etc/sshusersonerr=fail
而後在/etc下創建sshusers文件,編輯這個文件,加入容許使用SSH服務的用戶名,從新啓動SSHD服務便可。
(72)在Linux下如何綁定IP地址和硬件地址。
能夠編輯一個地址對應文件,裏面記錄了IP地址和硬件地址的對應關係,而後執行「arp–f地址對應文件」。若是沒有指定地址對應文件,則一般狀況下以默認文件/etc/ethers爲準。地址對應文件的格式以下:
192.168.12.100:0D:61:27:58:E3
192.168.12.200:40:F4:2A:2E:DC
192.168.12.300:0A:EB:5E:BA:AE
(73)已知網絡中一個機器的硬件地址,如何知道它所對應的IP地址。
在Linux下,假定要查「00:0A:EB:27:17:B9」這樣一個硬件地址所對應的IP地址,可使用如下命令:
#cat /proc/net/arp|grep00:0A:EB:27:17:B9
192.168.2.540x10x600:0A:EB:27:17:B9*eth2
另外,還能夠利用「arp-a」命令查詢:
#arp–a|grep00:0A:EB:27:17:B9
(192.168.2.54)at00:0A:EB:27:17:B9[ether]oneth2
(74)基於Apache的HTTPD或Sendmail服務在啓動時被掛起了,如何解決此問題。
遇到此類問題,請確認/etc/hosts文件中是否包含以下一行:
127.0.0.1localhost.localdomainlocalhost
注意:127.0.0.1是網絡的迴路地址
(75)如何使Linux系統對ping不迴應。
要使Linux對ping沒反應,也就是使Linux系統忽略ICMP包,可用以下命令實現:
#echo1>/proc/sys/net/ipv4/icmp-echo-ignore-all
若想恢復,可用以下命令實現:
#echo 0>/proc/sys/net/ipv4/icmp-echo-ignore-all
(76)rsync同步壓縮傳輸文件或目錄。
rsync-azessh--deletesample_dir/remote_host:remote_dir/sample_dir/
(77)無須輸入密碼使用SSH密鑰登陸。
ssh-keygen-b1024-trsa
sshserver"mkdir.ssh;chmod0700.ssh"
scp~/.ssh/id_rsa.pubserver:~/.ssh/authorized_keys
這樣就再也不提示輸入密碼,直接能夠登陸Server了,對文件複製、同步等操做都比較方便。
(78)命令行下發送帶附件的郵件。
#cat<mailcontent.txt>|mutt-s"title"-a<attachfile>mail@address
這裏:<mailcontent.txt>表明郵件正文內容。<attachfile>表明本地須要做爲附件的文件名。
(79)如何增長httpd動態模塊,而不從新編譯Apache(以deflate模塊爲例)。
進入httpd源代碼目錄:
#cd /usr/local/src/httpd-2.2.6
執行httpd安裝後目錄中的bin/apxs文件:
/usr/local/apache2/bin/apxs-ciamodules/metadata/mod_deflate.c
從新啓動httpd:
#service httpd restart
(80)如何變動sendmail郵件的默認存儲位置。
若是sendmail使用Procmail做爲MDA(郵件投遞代理)的話,可使用Procmail來指定接收郵件的默認存儲位置。方法以下:
創建/etc/procmailrc文件。
編輯/etc/procmailrc文件,指定環境變量MAIL的路徑,如設爲「$HOME/mbox」等。
(81)新編譯生成的GCC,使用的標準鏈接庫都位於/usr/local/lib下,但使用的默認鏈接路徑是/usr/lib,怎樣添加。
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
將其寫到「~/.bash_profile」裏面便可。
(82)爲何編寫的Shell腳本沒法運行。
腳本權限要爲可執行「#chmod+xtest.sh」。且腳本所在的目錄在環境變量PATH中,或者直接執行「#./test.sh」。
(83)MySQL的數據庫存放在什麼地方。
若是使用RPM包安裝,應該位於/var/lib/mysql目錄下,以數據庫名爲目錄名。
若是源碼安裝在/usr/local/mysql中,應該位於/usr/local/mysql/var中,以數據庫名爲目錄名。
(84)忘記了MySQL的root口令怎麼辦。
#service mysql stop
#mysqld_safe--skip-grant-tables&
#mysqladmin -u user password'newpassword''
#mysqladminflush -privileges
(85)讓MySQL以大內存方式啓動。
將/usr/share/mysql下的某個「mysql-*.cnf」(如1GB內存時爲mysql-huge.cnf)複製爲「/etc/mysql.cnf」文件,並重啓MySQL。
(86)經過SSH掛載遠程主機上的文件夾。
sshfsname@server:/path/to/folder/path/to/mount/point
(87)顯示消耗內存最多的10個運行中的進程,之內存使用量排序。
#ps aux |sort -nk +4 | tail
(88)利用Shell郵件通知。
#echo "Testmail" | mail -s「主題測試」root@sampl.com
注意:主機的SMTP服務須要啓用。
(89)如何在OracleRAC環境中找出因爲系統程序崩潰而產生的core文件。
因爲系統程序發生崩潰時,內核會把當前內存映射到core文件中,咱們以X86環境爲例,使用下面命令找到core的位置,還能看出是由哪一個文件引發的。
#find /u01 -name core.* -exec ls -l thr {}\; | awk'{print$9}' | xargs file
/u01/oracle/product/crs/log/rac1/crsd/core.4107:ELF32-bitLSBcorefileIntel80386,version1(SYSV),SVR4-style,from'crsd.bin'
由上面這條命令,能夠看出core.4107的產生,是由「crsd.bin」文件引發的。
(90)如何快速掃描出某網段(例如:192.168.150.0/24)內開機的服務器。
第一種簡單方法:
#nmap –sP 192.168.150.*
第二種簡單方法,使用一行Shell腳本:
for((i=1;i<=254;i++)); do ping 192.168.150.$i;done
(91)如何禁止某個進程的網絡鏈接。
咱們能夠先根據進程找到端口號,而後把發出去的包直接丟掉,或者使用owner功能。
#iptables –m owner –pid -owner <processid> -j REJECT
(92)如何快速關閉SELinux。
#/usr/sbin/setenforce0馬上關閉SELinux
#/usr/sbin/setenforce1馬上啓用SELinux
也能夠編輯配置文件達到一樣的目的:
#vi /etc/selinux/conf
setSELINUX=disabled
(93)如何監聽80端口發給client-A或從client-A發送過來的數據包
#tcpdump –i eth0 host client-A and port80
若是你的計算機有多個網卡,請在-i後面指定好網卡。
(94)如何實現系統某用戶登錄後不顯示用戶名稱?咱們將系統用戶的shell環境變量中/sbin/bash改爲/sbin/nologin便可,注意不能將root用戶,改爲/sbin/nologin,不然沒法登錄。nologin的做用還能夠限制某些用戶經過ssh登錄到shell上