程式說明
screen 是一個很方便的程式,可以讓你在同一個畫面開啟多個終端機來操作,即使你要離開電腦,也可以將終端機放到背景執行,下次登入時,再取回來操作。
首先啟動 Screen 程式:
screen
某些終端機視窗會在標題列顯示目前在操作的終端機編號,如果沒有顯示,你也可以輸入:
tty
來了解你目前正在哪個終端機中。
以快速鍵操作
Ctrl + A -> C
新增終端機畫面。
Ctrl + A -> P
切換到上一個編號的終端機畫面。
Ctrl + A -> N
切換到下一個編號的終端機畫面。
Ctrl + A -> Ctrl + A
在兩個終端機之間互相切換。
Ctrl + A -> X
鎖定終端機畫面。
Ctrl + A -> Shift + ”
顯示終端機列表,可供你選取。
Ctrl + A -> W
新視窗的標題列顯示所有的終端機編號 (其中有加上 “*” 表示是目前使用的終端機)。
Ctrl + A ->Shift + S
水平分割視窗 (多按幾下可以持續分割)。
Ctrl + A -> Tab
在分割的視窗做切換。
Ctrl + A -> D
將終端機的程序及畫面放到背景執行。在這種狀態下,用戶可以不須理會這個終端機,即使用戶離線了,只要下次登入時,就可以輸入:
將這個終端機叫回來繼續操作。
screen 的相關指令
啟動 Screen 程式:
查看目前已開啟多少個終端機:
取回被放到背景執行的終端機:
如有多個終端機要取回,可以在指令的後面接著輸入要取回的終端機名稱。
將終端機放到背景執行:
相關網頁
http://www.seety.org/Members/yungyuc/yblog/213
- Posted by citypig at 12:36 am (536 views)
- No comments published
- Filed under: linux
測硬碟速度:
hdparm -tT /dev/hda
UDMA3(ATA33):
# hdparm -X66 -c1 -d1 -m16 /dev/hda
UDMA4(ATA66):
# hdparm -X68 -c1 -d1 -m16 /dev/hda
UDMA5(ATA100):
# hdparm -X69 -c1 -d1 -m16 /dev/hda
轉載自: 中文 PHP 資訊站
在linux中,每個普通用戶都有一個帳戶,包括用戶名、密碼和主目錄等資訊。除此之外,還有一些系統本身創建的特殊用戶,它們具有特殊的意義。其中最重要的是超級用戶,在linux中,它默認用戶名是root。
基本操作
增加一個用戶 newuser :
useradd newuser
passwd newuser
然後根據提示兩次輸入新用戶的密碼,請注意,用useradd增加一個用戶後應該立刻用passwd給新用戶修改密碼,沒有密碼的新帳號將不能使用。在/etc/passwd文件中,沒有密碼的新用戶的記錄是如下一行:
newuser:!!:506:506::/home/newuser:/bin/bash
在這一行裏,用戶的密碼域被設置成了”!!”,這就意味著用戶密碼還沒有設置,用戶不能登陸。(passwd文件的格式是 用戶名:密碼:用戶ID(UID):組ID(GID):全名:用戶目錄:外殼腳本)。
當然你可以用-d參數設置新用戶的主目錄(例如:useradd newuser -d /www),也可以用-g參數為用戶指定新組名(例如:useradd newuser -g linuxusers),你還可以用-G參數把新用戶設成系統其他一些組的成員(例如:useradd newuser -G users,shutdown)。所有這些,你都可以在本站的命令查詢中得到詳細資訊。
附注:相應的,僅僅增加一個新組可以用命令groupadd。
修改現有用戶的帳號:
修改密碼
普通用戶可以用passwd修改自己的密碼,只有管理員才能用passwd username為其他用戶修改密碼。
修改用戶shell設置
使用chsh命令可以修改自己的shell,只有管理員才能用chsh username為其他用戶修改shell設置。注意,指定的shell必須是列入/etc/shells文件中的shell,否則該用戶將不能登陸。
你也可以使用usermod命令修改shell資訊,如下所示:
usermod -s(new shell path)(username)
其中new shell path和username應取相應的值。
修改主目錄設置
usermod -d(new home directory)(username)
如果想將現有主目錄的主要內容轉移到新的目錄,應該使用-m參數,如下所示:
usermod -d -m/www/newuser newuser
修改UID
主目錄中所有該用戶所擁有的文件和目錄都將自動修改UID設置。但是,對於主目錄外該用戶所擁有的文件,只能手工用chown命令修改所有權設置。
修改默認組設置
username -g(group name) or GID username
修改帳號的有效期
如果使用了影子密碼,則可以使用如下命令來修改一個帳號的有效期:
usermod -e MM/DD/YY username
例如把用戶newuser的有效期定為12/31/01:
usermod -e 12/31/01 newuser
刪除或禁止用戶帳號
使用userdel命令刪除現有用戶。例如,下面的命令將刪除bluewind用戶:
如果想同時刪除該用戶的主目錄以及其中所有內容,要使用-r參數來遞迴刪除。值得注意的是你無法刪除已經進入系統的用戶,如果想強行完成,需要先killall有關它的進程,然後再運行userdel命令。
如果只是想暫時禁止某個帳號,可以使用下列方法:
- 使用無效的shell。例如使用usermod -s newshell username將用戶的 shell改為/bin/false(最好把它列入/etc/shells文件裏)。
- 使該帳號過期。如果使用影子密碼,可使用usermod -e MM/DD/YY username命令使該帳號過期。
如果想禁止所有帳號(root帳號當然除外)的訪問,可以創建一個名為/etc/nologin的文件,說明系統暫時不允許訪問。注意,確認你還能用root直接登陸才使用這個辦法,否則你慘了。
本文中的所有命令都可以在linuxaid獲得中文詳細的幫助,下面我們一起來繼續探討有關用戶管理的高級內容。
建立多個超級用戶
不少新系統管理員認為root用戶是唯一的超級用戶,其實root只是系統默認的超級用戶的名稱,root並非因為它叫root而成為超級用戶的。隨便打開一個/etc/passwd文件的例子,你就會發現如下幾行:
root:asiewhgYfaoO/J:0:0:root:/root:/bin/tcsh
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
lanf:Yuao56Ioyefg:0:0:bluewind:/home/bluewind:/bin/bash
jake:gUyfaiIodashfj:501:501:jake cheng:/home/jake:/bin/tcsh
apache:!!:502:502::/usr/local/apache:/bin/false
可以看到,root的UID和GID都被設置為0了。實際上,超級用戶的充要條件就是UID和GID都等於0。也就是說,任何用戶,只要它的UID和GID都為0,就與常被稱為root超級用戶沒有什麼兩樣了。比如上面那個例子裏面的lanf,也是一個超級用戶。
所以,可以將任何普通用戶變成超級用戶。但是,這樣做並沒有好處,很多時候這都會增加系統的隱患。除非在組織中需要多個系統管理員管理同一個系統,這就需要有多個超級用戶帳號。這有利於各個管理員明確責任,通過日誌知道不同的人分別做過什麼事。
還有一種情況,也可能出現多個超級用戶帳號,那就是黑客入侵後設置一個看起來象普通帳號的用戶,卻修改了UID和GID使之為0。這樣根本就不需要知道root用戶密碼,就可以執行超級用戶許可權了。而從我們的系統管理員的一方來說,我們不可能時刻注意passwd文件的變化的,沒有那個時間也沒有那個精力。這時只好編寫一個腳本來幫助監視,例如:
/bin/grep '0:0' /etc/passwd |awk 'BEGIN{FS=":"}{print $1}'|mail -s "`date +"%D%T"`"root
這是一個很小的腳本程式,使用了一些常規的命令來查看/etc/passwd文件,把UID和GID為0的行寄給root用戶。把這個腳本放在/etc/cron.daily文件中讓cron運行,root將每天收到一封信,報告當前的超級用戶。
實際上,由於PAM(可插入驗證模組)的限制,在telnet上是不允許超級用戶登入的,也就是說,黑客修改了自己的UID和GID後,想再次登陸從而獲得超級用戶的許可權的話,不修改/etc/seuretty文件是不可能的–除非你傻到自己添加了為TTY設備ROOT用戶登陸許可權。一般可以讓超級用戶先用普通用戶帳號登陸,再su(su命令相關內容請參考本站命令查詢部分)。
為普通用戶分配特權
使用sudo命令可以允許普通用戶執行超級用戶才能執行的命令。無論是基於信任的建立需要時間,還是基於是否存在這種必要,我們都不會把超級用戶的所有權限輕易許人的。這是網管工作的原則。所以,當一些用戶必須訪問某些內容時,我們可以配置sudo以允許單獨的普通用戶運行特權命令。
sudo命令允許已經在/etc/sudoers文件中指定的用戶運行超級用戶命令。例如,一個已經獲得許可的普通用戶可以運行:
sudo vi /etc/passwd
實際上,sudo的配置完全可以讓我們指定某個列入/etc/sudoers文件的普通用戶可以做什麼、不可以做什麼。/etc/sudoers的配置行如下:
空行或注釋行(以#字元打頭):無用行。
可選的主機別名行:用來創建主機列表的簡稱。必須以Host_Alias關鍵字開頭,列表中的主機必須用逗號隔開。例如:
Host_Alias REDHAT=binbu,qd
其中binbu和qd是倆主機名,你可以用REDHAT(別名)統稱它們。
可選的用戶別名行:用來創建用戶列表的簡稱。用戶別名行必須以User_Alias關鍵字開頭,列表中的用戶名必須以逗號隔開。其格式同主機別名行。
可選的命令別名行:用來創建命令列表的簡稱。必須以Cmnd_alias開頭,列表中的命令必須用逗號隔開。
可選的運行方式別名行:也是用來創建用戶列表的簡稱。不同的是,使用這樣的別名可以告訴sudo程式以列表中某一用戶的身份來運行程式。
必要的用戶訪問說明行:用戶訪問的說明語法如下:
user host= [run as user ] command list
在user處指定一個真正的用戶名或定義過的別名,同樣的,host也可以是一個真正的主機名或者定義過的主機別名。默認情況下,sudo執行的所有命令都是以root身份執行。如果你想使用其他身份可以指定。至於command list可以是以逗號分隔的命令列表,也可以是一個已經定義過的別名。例如:
lanf binbu=/sbin/shutdown
這一句說明lanf可以在binbu主機上運行關機命令。
注意:
可以在一行定義多個別名,中間用:隔開。
可以在命令或命令別名之前加上!號,使該命令或命令別名無效。
有兩個關鍵字:ALL 和NOPASSWD。ALL意味著”所有文件”(所有主機或所有命令),NOPASSWD意味著不用密碼。
下面是一個sudoers文件的例子:
#sudoers files#User alias specificationUser_Alias ADMIN=yourid:POWERUSER=hisid,herid#user privilege specification ADMIN ALL=ALLPOWERUSER ALL=ALL,!/bin/su
第三行定義了兩個別名ADMIN和POWERUSER,第五行說明在所有主機上ADMIN都可以以root身份執行所有命令。第六行給POWERUSER除了運行su命令外同等ADMIN的許可權。
列出目前的規則
刪除 “INPUT” 的第 1 條規則
丟棄來自 192.168.1.203 的封包
iptables -A INPUT -p all -s 192.168.1.203 -j DROP
禁止 192.168.1.203 的用戶以 SSH 登入(Port:22)
iptables -A INPUT -p tcp -s 192.168.1.203 --dport 22 -j DROP
儲存防火牆的設定到 filename
從 filename 讀取防火牆的設定
iptables-restore < filename
use File::Copy;
copy('file1.txt','file2.txt') or die "can't copy: $!\n";
複製目錄
sub copy_dir{
my $source = $_[0];
my $target = $_[1];
use File::Copy;
opendir(DIR,$source);
while(my $filename = readdir(DIR)){
if(-f "$source/$filename")){
copy("$source/$filename","$target/$filename") or die "can't copy: $!\n";
}
}
close(DIR);
}
參考網頁
File::Copy - Copy files or filehandles
- Posted by citypig at 12:27 am (455 views)
- No comments published
- Filed under: perl