在VirtualBox中安裝調試Linux (小沐Linux命令全集整理版)

一、安裝VirtualBox的步驟比較簡單

下載好VirtualBox後 按照提示 一步步的安裝下去就可 

需要注意的是 網絡連接一般選擇 橋接網卡 選擇目前連接網絡的網卡 就能正常上網了 


二、 到資源站去下載一個ConterOS的ios 或者Ubuntu 目前我使用的是Ubuntu

目前使用的版本是 ubuntu-10.10-desktop-i386 這個到網上找很多 免費開源


三、 一些安裝的時候常用的命令 小結一下

1.文件目錄操作指令

進入 home/itcast 目錄

	cd /home/itcast

ls 顯示目錄內容:

	ls 

mkdir 創建一個目錄 家庭A:
	mkdir familyA 
	

cd 切換目錄 進入familyA 目錄:
	cd familyA 

ls 顯示當前目錄內容:

	ls

touch 新建空文件 
	
	touch father.txt 家庭A中有一個父親
	touch mother.txt 有一個母親
	touch son.txt 兒子
	touch daughter.txt 女兒

mkdir 創建一個目錄

	mkdir house 房子

cd 切換目錄

	cd house

mkdir 創建目錄
	mkdir kitchen 廚房
	mkdir bathroom 衛生間
	mkdir roomA
	mkdir roomB
	mkdir roomC
	touch sofa.txt 沙發

ls 顯示目錄內容:

	ls 顯示

cd 切換目錄

	cd roomB

touch 新建空文件
	touch bed.txt
	echo "Your are the best boy." > book.txt 建立帶簡單內容的文件
	cat book.txt 查看文件內容

cd 切換目錄
	cd .. 返回上一級目錄
	cd roomC

touch 新建空文件
	touch bed.txt
	echo "Your are the best girl." > book.txt
	cat book.txt
	touch doll.txt

cp 拷貝文件
	cp doll.txt /home/itcast/familyA/house/roomB 

cd 切換目錄
	cd ..
	cd roomB

ls 顯示目錄內容:

	ls 顯示

cd 切換目錄
	cd ..

mv 移動文件
	mv sofa.txt /home/itcast/familyA/house/roomB

cd 切換目錄
	cd roomB

ls 顯示目錄內容:

	ls 顯示

rm 刪除文件目錄
	rm doll.txt
	

more less 分頁顯示

	more book.txt

wc 顯示文檔行數,字數,字符數
	wc book.txt

find 查找指定的文件
	find -name book.txt

grep 查找指定字符串

	grep best book.txt

pwd 顯示當前目錄

tree 顯示目錄樹

rmdir 刪除空目錄
	rmdir bathroom

ln -s 建立軟連接

	ln -s /home/itcast/familyA/house/roomB /home/roomB 
	
2.系統管理命令

stat 顯示指定文件的相關信息 
	cd /home/itcast
	stat familyA

who、w 顯示在線登錄用戶 
	who

whoami 顯示用戶自己的身份 

hostname 顯示主機名稱 
	hostname
	hostname -i 顯示主機IP

uname 顯示系統信息 
	uname -a 顯示全部信息 (內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統名稱)


top 顯示當前系統中耗費資源最多的進程 動態顯示過程,實時監控

ps 顯示瞬間進程狀態
	ps -aux  顯示所有瞬間進程狀態

du 顯示指定的文件(目錄)已使用的磁盤空間的總量 .可以使用--help查看幫助
	du
	du familyA
	du -h familyA

df 顯示文件系統磁盤空間的使用情況 
	df
	df -h

free 顯示當前內存和交換空間的使用情況 	

ifconfig 顯示網絡接口信息 

ping 測試網絡的連通性 

netstat 顯示網絡狀態信息 

3.備份壓縮命令

gzip 命令

把/home/itcast目錄下的familyA目錄下所有文件壓縮成.gz文件
	cd /home/itcast
	tar -cvf /home/itcast/familyA.tar /home/itcast/familyA 首先進行打包,因爲gzip不能直接對目錄進行壓縮
	gzip familyA.tar 進行壓縮
	gzip -l familyA.tar.gz 查看壓縮包詳細信息

解壓縮familyA.tar
	gzip -dv familyA.tar.gz
	gzip -v -9 familyA.tar 高壓縮比
	gzip -l familyA.tar.gz


	gzip -dv familyA.tar.gz
	gizp -v -1 familyA.tar 低壓縮比
	gzip -l familyA.tar.gz


bzip2 命令

把/home/itcast目錄下的familyA目錄下所有文件壓縮成.bz2文件
	cd /home/itcast
	tar -cvf /home/itcast/familyA.tar /home/itcast/familyA
	bzip2 -z familyA.tar 壓縮需加上參數-z

解壓縮itcast.tar.bz2
	bzip2 -d familyA.tar.bz2 



tar  命令

將整個/home/itcast/familyA目錄下的文件全部打包成爲/home/itcast/familyA.tar

僅打包,不壓縮

	tar -cvf /home/itcast/familyA.tar /home/itcast/familyA

打包後,以gzip壓縮

	tar -zcvf /home/itcast/familyA.tar.gz /home/itcast/familyA

打包後,以bzip2壓縮

	tar -jcvf /home/itcast/familyA.tar.bz2 /home/itcast/familyA

	# 特別注意,在參數f之後的文件檔名是自己取的,我們習慣上都用.tar來作爲辨識
	# 如果加z參數,則以.tar.gz或.tgz來代表gzip壓縮過的tar file
	# 如果加j參數,則以.tar.bz2來作爲文檔名



4.Ubuntu軟件包管理

1.安裝tree軟件包

sudo dpkg -i tree_1.5.3-1_i386.deb


2.刪除tree軟件包

sudo dpkg -r tree

3.查看軟件包中信息

sudo dpkg -c tree_1.5.3-1_i386.deb

4.查看Ubuntu系統已安裝所有軟件包列表

sudo dpkg -l


5.VIM編輯器命令


VIM 編輯器

在/home/itcast/目錄下建立一個bank.txt文件

	cd /home/itcast/familyA/
	touch bank.txt
	vim bank.txt
	
	數據命令i 進入插入模式

	輸入內容
	ICBC
	RMB:10000000000
	USD:100000000000
	user:familyA.father

	ctrl+C 退出插入模式或者敲ESC切換至命令模式

	:wq 回車 保存


編輯bank.txt 內容不保存 退出

	vim bank.txt
		
	數據命令i 進入插入模式

	隨便輸入內容
	
	ctrl+C 退出插入模式或者敲ESC

	:q! 回車 強制退出

編輯bank.txt 內容並顯示行號

	vim bank.txt
		
	:set number 回車

	:q 回車 正常退出

	


6.用戶和組管理

添加一個賬戶

	useradd -m ltw  參數-m用來設定系統添加賬戶時自動建立用戶根目錄
	
	adduser

修改ltw賬戶的 登錄名稱
	
	usermod -l litingwei ltw

修改litingwei賬戶的 登錄目錄 (注意:修改前需要提前手動建立好litingwei目錄)

	usermod -d /home/litingwei litingwei

鎖定用戶litingwei賬號密碼

	usermod -L litingwei 鎖定後賬號不可使用

解鎖用戶litingwei賬號密碼

	usermod -U litingwei



添加一個分組

	groupadd superman

修改superman分組
	
	groupmod -g 355 superman

刪除 superman 分組
	
	groupdel superman


修改root 密碼(root密碼尚未設定,需要設定密碼後方可使用)

	passwd root


root ,litingwei 賬戶切換

	su - root

	或sudo -i 切換root


刪除litingwei賬號 

	userdel -r litingwei (-r 連同用戶目錄一起刪除)

7.文件權限管理

顯示出文件 /home/itcast/familyA/bank.txt 的權限
	
	cd /home/itcast/familyA/
	ls -l 

切換至litingwei用戶

	su litingwei

用litingwei賬戶查看是否可以讀寫bank.txt

	cat bank.txt

	vim bank.txt 此時litingwei沒有權限進行修改文件

切換回 itcast
	su itcast

修改bank.txt 權限爲 其他用戶可讀寫

	chmod o+w bank.txt

再切換回litingwei

	su litingwei

修改bank.txt
	
	vim bank.txt

8.Ubuntu-jdk+tomcat+eclipse軟件包安裝

第一步 安裝jdk

su - root 切換成root用戶

sudo -i 不需要密碼直接切換成root

1.進入usr目錄

cd /usr

2.在usr目錄下建立java安裝目錄

mkdir java

3.將jdk-6u24-linux-i586.bin拷貝到java目錄下

cp /home/itcast/Desktop/jdk-6u24-linux-i586.bin /usr/java/

4.安裝jdk

cd /usr/java

./jdk-6u24-linux-i586.bin


5.安裝完畢爲他建立一個鏈接以節省目錄長度

ln -s /usr/java/jdk1.6.0_24/ /usr/jdk

6.編輯配置文件

vim /etc/profile

添加如下內容:
JAVA_HOME=/usr/jdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH


8.重啓機器或source /etc/profile

sudo shutdown -r now

9.查看安裝情況
java -version

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)



第二步安裝 tomcat

tar -zxvf apache-tomcat-6.0.29.tar.gz -C /opt       (解壓到/opt下)
ln -s /opt/apache-tomcat-6.0.29/ /opt/tomcat   (建立鏈接文件)
啓動tomcat
cd /opt/tomcat/bin/
./startup.sh   (注意:點代表當前目錄下)
如果啓動不了,請嘗試
-i 切換到root用戶再重新啓動
./startup.sh
測試http://127.0.0.1:8080/


第三步 安裝eclipse

tar -zxvf eclipse-SDK-4.2-linux-gtk.tar.gz -C /opt (解壓到/usr/local目錄下並生成/usr/local/eclipse目錄)
cd /opt/eclipse/
./eclipse (注意:點代表當前目錄下)


9.telnet遠程登錄操作


telnet 

1.安裝telnet-server
    sudo dpkg -i xinetd_1%3a2.3.14-7ubuntu3_i386.deb
    sudo dpkg -i telnetd_0.17-36build1_i386.deb
    
    如果連網的情況下可以sudo apt-get install telnet進行安裝
    
2.設置一下ip
    sudo ifconfig eth0 192.168.1.222 netmask 255.255.255.0
    
3.修改/etc/xinetd.conf配置文件
    vim /etc/xinetd.conf
    
加入如下內容:

defaults
{

# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info(插入如下部分)
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30

}

4. 修改/etc/xinetd.d/telnet配置文件
    vim /etc/xinetd.d/telnet
    
 加入如下內容:
 
 # default: on
 # description: The telnet server serves telnet sessions; it users \
 # unencrypted username/password pairs for authentication.
 service telnet
 {
 disable = no
 flags = REUSE
 socket_type = stream
 wait = no
 user = root
 server = /usr/sbin/in.telnetd
 log_on_failure +=USERID
 }
 
 5.重啓網絡服務
 sudo /etc/init.d/xinetd restart
 sudo service xinetd restart
 
 6.打開windows命令行 telnet 192.168.1.222


9.Ubuntu遠程登錄操作
telnet 

1.安裝telnet-server
    sudo dpkg -i xinetd_1%3a2.3.14-7ubuntu3_i386.deb
    sudo dpkg -i telnetd_0.17-36build1_i386.deb
    
    如果連網的情況下可以sudo apt-get install telnet進行安裝
    
2.設置一下ip
    sudo ifconfig eth0 192.168.1.222 netmask 255.255.255.0
    
3.修改/etc/xinetd.conf配置文件
    vim /etc/xinetd.conf
    
加入如下內容:

defaults
{

# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info(插入如下部分)
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30

}

4. 修改/etc/xinetd.d/telnet配置文件
    vim /etc/xinetd.d/telnet
    
 加入如下內容:
 
 # default: on
 # description: The telnet server serves telnet sessions; it users \
 # unencrypted username/password pairs for authentication.
 service telnet
 {
 disable = no
 flags = REUSE
 socket_type = stream
 wait = no
 user = root
 server = /usr/sbin/in.telnetd
 log_on_failure +=USERID
 }
 
 5.重啓網絡服務
 sudo /etc/init.d/xinetd restart
 
 6.打開windows命令行 telnet 192.168.1.222

10.ssh遠程登錄操作 

ssh

1.安裝openssh-server
    sudo dpkg -i openssh-client_1%3a5.5p1-4ubuntu6_i386.deb
    sudo dpkg -i openssh-server_1%3a5.5p1-4ubuntu6_i386.deb
    
    如果連網的情況下可以sudo apt-get install openssh-server進行安裝
    
2.設置一下ip
    sudo ifconfig eth0 192.168.1.222 netmask 255.255.255.0
    
3. 啓動ssh-server。
$ /etc/init.d/ssh restart
service ssh restart
 
4. 確認ssh-server已經正常工作。
$ netstat -tlp
tcp6    0    0 *:ssh                *:*                   LISTEN     -
看到上面這一行輸出說明ssh-server已經在運行了。
 
5. 在客戶端通過ssh登錄服務器。假設服務器的IP地址是192.168.0.103,登錄的用戶名是hyx。
$ ssh -l hyx 192.168.0.103
接下來會提示輸入密碼,然後就能成功登錄到服務器上了

11.ssh信任

1.在第一臺主機上生成密鑰文件(用戶根目錄下就產生了.ssh的隱含目錄,進入些目錄下產生兩個文件)
id_dsa            ------------      私鑰文件
id_dsa.pub    ------------      公鑰文件
命令:
ssh-keygen -d

2.將id_dsa.pub複製一份文件名爲:authorized_keys2
並將 authorized_keys2 的屬性改爲 600 即文件所屬用戶有讀和寫的權限,組用戶和其它用戶禁止讀寫
命令:
cp id_dsa.pub authorized_keys2

chmod 600 authorized_keys2

3.在第二臺主機上生成密鑰文件
參看第一步

4.將server_1上/home/work/.ssh目錄下的id_dsa.pub公鑰文件拷到
server_2的/home/work/.ssh目錄下(注意:不要覆蓋掉server_2的id_dsa.pub,拷時要改名)
命令:
scp id_dsa.pub work@server_2:.ssh/server_1.pub

5.查看server_2上.ssh的目錄文件有:
authorized_keys2
id_dsa
id_dsa.pub
server_1.pub


6.將server_1.pub內容放到authorized_keys2,注意一定要用追加操作 ">>" 不能用 ">")
命令:
cat server_1.pub >>authorized_keys2


5.測試
ssh work@server_2


第一種級別(基於口令的安全驗證),
只要你知道自己的帳號和口令,就可以登錄到遠程主機,
並且所有傳輸的數據都會被加密。
但是,這種驗證方式不能保證你正在連接的服務器就是你想連接的服務器。
可能會有別的服務器在冒充真正的服務器,也就是受到"中間人"這種攻擊方式的攻擊。
 
第二種級別(基於密匙的安全驗證),需要依靠密匙,
也就是你必須爲自己創建一對密匙,並把公有密匙放在需要訪問的服務器上。
如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。
服務器收到請求之後,先在你在該服務器的用戶根目錄下尋找你的公有密匙,
然後把它和你發送過來的公有密匙進行比較。如果兩個密匙一致,服務器就用公有密匙加密"質詢"(challenge)並把它發送給客戶端軟件。
客戶端軟件收到"質詢"之後就可以用你的私人密匙解密再把它發送給服務器。
 
 與第一種級別相比,第二種級別不需要在網絡上傳送用戶口令。
 另外,第二種級別不僅加密所有傳送的數據,而"中間人"這種攻擊方式也是不可能的(因爲他沒有你的私人密匙)。但是整個登錄的過程可能慢一些。

四、oracle安裝

創建一個用戶組oinstall: 
# groupadd oinstall 

創建一個用戶組dba: 
# groupadd dba 

創建一個用戶主目錄/u01/oracle: 
# mkdir -p /u01/oracle 

創建用戶oracle 到主組oinstall,副組dba,主目錄/u01/oracle: 
# useradd -g oinstall -G dba -d /u01/oracle oracle 

如果oracle用戶已經存在則: 
# usermod -g oinstall -G dba -d /u01/oracle oracle 

查看用戶oracle的添加情況 
# id oracle 

查看oracle所屬的組: 
<span style="font-family: Arial, Helvetica, sans-serif;"># groups oracle</span>
把/u01的所有者改爲oracle
# chown -R oracle:oinstall /u01
<pre name="code" class="html">


五、sudo及其配置文件sudoers

sudo及其配置文件sudoers 

sudo是linux下常用的允許普通用戶使用超級用戶權限的工具。

它的主要配置文件是sudoers,linux下通常在/etc目錄下,如果是solaris,缺省不裝sudo的,編譯安裝後通常在安裝目錄的etc目錄下,不過不管sudoers文件在哪兒,sudo都提供了一個編輯該文件的命令:visudo來對該文件進行修改。強烈推薦使用該命令修改sudoers,因爲它會幫你校驗文件配置是否正確,如果不正確,在保存退出時就會提示你哪段配置出錯的。
言歸正傳,下面介紹如何配置sudoers
首先寫sudoers的缺省配置:
#############################################################
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)    ALL
# Same thing without a password
# %wheel        ALL=(ALL)    NOPASSWD: ALL
# Samples
# %users   ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users   localhost=/sbin/shutdown -h now
##################################################################
1. 最簡單的配置,讓普通用戶support具有root的所有權限
執行visudo之後,可以看見缺省只有一條配置:
root ALL=(ALL) ALL
那麼你就在下邊再加一條配置:
support ALL=(ALL) ALL
這樣,普通用戶support就能夠執行root權限的所有命令
以support用戶登錄之後,執行:
sudo su -
然後輸入support用戶自己的密碼,就可以切換成root用戶了
2. 讓普通用戶support只能在某幾臺服務器上,執行root能執行的某些命令
首先需要配置一些Alias,這樣在下面配置權限時,會方便一些,不用寫大段大段的配置。Alias主要分成4種
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主機的列表
Host_Alias    HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允許執行的命令的列表
Cmnd_Alias    COMMAND_FLAG = command1, command2, command3
3) 配置User_Alias:就是具有sudo權限的用戶的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用戶以什麼身份執行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置權限
配置權限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密碼驗證的話,則按照這樣的格式來配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG
配置示例:
############################################################################
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
Host_Alias    EPG = 192.168.1.1, 192.168.1.2
# User alias specification
# Cmnd alias specification
Cmnd_Alias    SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm
# Defaults specification
# User privilege specification
root ALL=(ALL) ALL
support EPG=(ALL) NOPASSWD: SQUID
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)    ALL
# Same thing without a password
# %wheel        ALL=(ALL)    NOPASSWD: ALL
# Samples
# %users   ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users   localhost=/sbin/shutdown -h now
###############################################################
我們不可以使用su讓他們直接變成root,因爲這些用戶都必須知道root的密碼,這種方法很不安全,而且也不符合我們的分工需求。一般的做法是利用權限的設置,依工作性質分類,讓特殊身份的用戶成爲同一個工作組,並設置工作組權限。例如:要wwwadm這位用戶負責管理網站數據,一般Apache Web Server的進程httpd的所有者是www,您可以設置用戶wwwadm與www爲同一工作組,並設置Apache默認存放網頁目錄 /usr/local/httpd/htdocs的工作組權限爲可讀、可寫、可執行,這樣屬於此工作組的每位用戶就可以進行網頁的管理了。 
但這並不是最好的解決辦法,例如管理員想授予一個普通用戶關機的權限,這時使用上述的辦法就不是很理想。這時您也許會想,我只讓這個用戶可以以 root身份執行shutdown命令就行了。完全沒錯,可惜在通常的Linux系統中無法實現這一功能,不過已經有了工具可以實現這樣的功能—— sudo。 
sudo通過維護一個特權到用戶名映射的數據庫將特權分配給不同的用戶,這些特權可由數據庫中所列的一些不同的命令來識別。爲了獲得某一特權項,有資格的用戶只需簡單地在命令行輸入sudo與命令名之後,按照提示再次輸入口令(用戶自己的口令,不是root用戶口令)。例如,sudo允許普通用戶格式化磁盤,但是卻沒有賦予其他的root用戶特權。 
1、sudo工具由文件/etc/sudoers進行配置,該文件包含所有可以訪問sudo工具的用戶列表並定義了他們的特權。一個典型的/etc/sudoers條目如下: 
代碼: 
liming ALL=(ALL) ALL 
這個條目使得用戶liming作爲超級用戶訪問所有應用程序,如用戶liming需要作爲超級用戶運行命令,他只需簡單地在命令前加上前綴sudo。因此,要以root用戶的身份執行命令format,liming可以輸入如下命令: 
代碼: 
# sudo /usr/sbin/useradd sam 
注意:命令要寫絕對路徑,/usr/sbin默認不在普通用戶的搜索路徑中,或者加入此路徑:PATH=$PATH:/usr/sbin;export PATH。另外,不同系統命令的路徑不盡相同,可以使用命令“whereis 命令名”來查找其路徑。 
這時會顯示下面的輸出結果: 
代碼: 
We trust you have received the usual lecture from the local System 
Administrator. It usually boils down to these two things: 
#1) Respect the privacy of others. 
#2) Think before you type. 
Password: 
如果liming正確地輸入了口令,命令useradd將會以root用戶身份執行。 
注意:配置文件/etc/sudoers必須使用命令 Visudo來編輯。 
只要把相應的用戶名、主機名和許可的命令列表以標準的格式加入到文件/etc/sudoers,並保存就可以生效,再看一個例子。 
2、例子:管理員需要允許gem用戶在主機sun上執行reboot和shutdown命令,在/etc/sudoers中加入: 
代碼: 
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown 
注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執行,從而造成安全隱患。 
然後保存退出,gem用戶想執行reboot命令時,只要在提示符下運行下列命令: 
代碼: 
$ sudo /usr/sbin/reboot 
輸入正確的密碼,就可以重啓服務器了。 
如果您想對一組用戶進行定義,可以在組名前加上%,對其進行設置,如: 
代碼: 
%cuug ALL=(ALL) ALL 
3、另外,還可以利用別名來簡化配置文件。別名類似組的概念,有用戶別名、主機別名和命令別名。多個用戶可以首先用一個別名來定義,然後在規定他們可以執行什麼命令的時候使用別名就可以了,這個配置對所有用戶都生效。主機別名和命令別名也是如此。注意使用前先要在/etc/sudoers中定義: User_Alias, Host_Alias, Cmnd_Alias項,在其後面加入相應的名稱,也以逗號分隔開就可以了,舉例如下: 
代碼: 
Host_Alias SERVER=no1 
User_Alias ADMINS=liming,gem 
Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot 
ADMINS SERVER=SHUTDOWN 
、再看這個例子: 
代碼: 
ADMINS ALL=(ALL) NOPASSWD: ALL 
表示允許ADMINS不用口令執行一切操作,其中“NOPASSWD:”項定義了用戶執行操作時不需要輸入口令。 
5、sudo命令還可以加上一些參數,完成一些輔助的功能,如 
代碼: 
$ sudo –l 
會顯示出類似這樣的信息: 
代碼: 
User liming may run the following commands on this host: 
(root) /usr/sbin/reboot 
說明root允許用戶liming執行/usr/sbin/reboot命令。這個參數可以使用戶查看自己目前可以在sudo中執行哪些命令。 
6、在命令提示符下鍵入sudo命令會列出所有參數,其他一些參數如下: 
代碼: 
-V 顯示版本編號。 
-h 顯示sudo命令的使用參數。 
-v 因爲sudo在第一次執行時或是在N分鐘內沒有執行(N預設爲5)會詢問密碼。這個參數是重新做一次確認,如果超過N分鐘,也會問密碼。 
-k 將會強迫使用者在下一次執行sudo時詢問密碼(不論有沒有超過N分鐘)。 
-b 將要執行的命令放在背景執行。 
-p prompt 可以更改問密碼的提示語,其中%u會替換爲使用者的賬號名稱,%h會顯示主機名稱。 
-u username/#uid 不加此參數,代表要以root的身份執行命令,而加了此參數,可以以username的身份執行命令(#uid爲該username的UID)。 
-s 執行環境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 裏所指定的 Shell。 
-H 將環境變量中的HOME(宿主目錄)指定爲要變更身份的使用者的宿主目錄。(如不加-u參數就是系統管理者root。) 
要以系統管理者身份(或以-u更改爲其他人)執行的命令。

##########################     實         例     ###############################

實例一:

beinan ALL=/bin/chown,/bin/chmod

假如我們在/etc/sudoers 中添加這一行,表示beinan 能夠在任何可能出現的主機名的系統中,能夠轉換到root用戶下執行 /bin/chown 和/bin/chmod 命令,通過sudo -l 來查看beinan 在這臺主機上允許和禁止運行的命令;

值得注意的是,在這裏省略了指定轉換到哪個用戶下執行/bin/shown 和/bin/chmod命令;在省略的情況下默認爲是轉換到root用戶下執行;同時也省略了是不是需要beinan用戶輸入驗證密碼,假如省略了,默認爲是需要驗證密碼。

爲了更周詳的說明這些,我們能夠構造一個更復雜一點的公式;

授權用戶 主機=[(轉換到哪些用戶或用戶組)] [是否需要密碼驗證] 命令1,[(轉換到哪些用戶或用戶組)] [是否需要密碼驗證] [命令2],[(轉換到哪些用戶或用戶組)] [是否需要密碼驗證] [命令3]....

註解:

凡是[ ]中的內容,是能夠省略;命令和命令之間用,號分隔;通過本文的例子,能夠對照着看哪些是省略了,哪些地方需要有空格;

在[(轉換到哪些用戶或用戶組)] ,假如省略,則默認爲root用戶;假如是ALL ,則代表能轉換到任何用戶;注意要轉換到的目的用戶必須用()號括起來,比如(ALL)、(beinan)

實例二:

beinan ALL=(root) /bin/chown, /bin/chmod

假如我們把第一個實例中的那行去掉,換成這行;表示的是beinan 能夠在任何可能出現的主機名的主機中,能夠轉換到root下執行 /bin/chown ,能夠轉換到任何用戶招執行/bin/chmod 命令,通過sudo -l 來查看beinan 在這臺主機上允許和禁止運行的命令;

實例三:

beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod

假如換成這個例子呢?表示的是beinan 能夠在任何可能出現的主機名的主機中,能夠轉換到root下執行 /bin/chown ,無需輸入beinan用戶的密碼;並且能夠轉換到任何用戶下執行/bin/chmod 命令,但執行chmod時需要beinan輸入自己的密碼;通過sudo -l 來查看beinan 在這臺主機上允許和禁止運行的命令;

關於一個命令動作是不是需要密碼,我們能夠發現在系統在默認的情況下是需要用戶密碼的,除非特加指出無需用戶需要輸入自己密碼,所以要在執行動作之前加入NOPASSWD: 參數;

有可能有的弟兄對系統管理的命令不太懂,不知道其用法,這樣就影響了他對 sudoers定義的理解,下面我們再舉一個最簡單,最有說服務力的例子;

實例四:

比如我們想用beinan普通用戶通過more /etc/shadow文檔的內容時,可能會出現下面的情況;

[beinan@localhost ~]?$ more /etc/shadow/etc/shadow: 權限不夠

這時我們能夠用sudo more /etc/shadow 來讀取文檔的內容;就需要在/etc/soduers中給beinan授權

於是我們就能夠先su 到root用戶下通過visudo 來改/etc/sudoers ;(比如我們是以beinan用戶登錄系統的)

[beinan@localhost ~]?$ su

Password: 注:在這裏輸入root密碼

下面運行visodu;

[root@localhost beinan]# visudo 注:運行visudo 來改 /etc/sudoers

加入如下一行,退出保存;退出保存,在這裏要會用vi,visudo也是用的vi編輯器;至於vi的用法不多說了;
beinan ALL=/bin/more 表示beinan能夠轉換到root下執行more 來查看文檔;

退回到beinan用戶下,用exit命令;

[root@localhost beinan]# exit

exit

[beinan@localhost ~]?$

查看beinan的通過sudo能執行哪些命令?

[beinan@localhost ~]?$ sudo -l

Password: 注:在這裏輸入beinan用戶的密碼

User beinan may run the following commands on this host: 注:在這裏清楚的說明在本臺主機上,beinan用戶能夠以root權限運行more ;在root權限下的more ,能夠查看任何文本文檔的內容的;

(root) /bin/more

最後,我們看看是不是beinan用戶有能力看到/etc/shadow文檔的內容;

[beinan@localhost ~]?$ sudo more /etc/shadow

beinan 不但能看到 /etc/shadow文檔的內容,還能看到只有root權限下才能看到的其他文檔的內容,比如;

[beinan@localhost ~]?$ sudo more /etc/gshadow

對於beinan用戶查看和讀取任何系統文檔中,我只想把/etc/shadow 的內容能夠讓他查看;能夠加入下面的一行;

beinan ALL=/bin/more /etc/shadow

題外話:有的弟兄會說,我通過su 轉換到root用戶就能看到任何想看的內容了,哈哈,對啊。但咱們現在不是在講述sudo的用法嗎?假如主機上有多個用戶並且不知道root用戶的密碼,但又想查看某些他們看不到的文檔,這時就需要管理員授權了;這就是sudo的好處;

實例五:練習用戶組在/etc/sudoers中寫法;

假如用戶組出現在/etc/sudoers 中,前面要加%號,比如%beinan ,中間不能有空格;%beinan ALL=/usr/sbin/*,/sbin/*

假如我們在 /etc/sudoers 中加上如上一行,表示beinan用戶組下的任何成員,在任何可能的出現的主機名下,都能轉換到root用戶下運行 /usr/sbin和/sbin目錄下的任何命令;

實例六:練習取消某類程式的執行:

取消程式某類程式的執行,要在命令動作前面加上!號; 在本例中也出現了通配符的*的用法;

beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk 注:把這行規則加入到/etc/sudoers中;但您得有beinan這個用戶組,並且beinan也是這個組中的纔行;

本規則表示beinan用戶在任何可能存在的主機名的主機上運行/usr/sbin和/sbin下任何的程式,但fdisk 程式除外;

[beinan@localhost ~]?$ sudo -l

Password: 注:在這裏輸入beinan用戶的密碼;

User beinan may run the following commands on this host:(root) /usr/sbin/*(root) /sbin/*(root) !/sbin/fdisk[beinan@localhost ~]?$ sudo /sbin/fdisk -lSorry, user beinan is not allowed to execute '/sbin/fdisk -l' as root on localhost.

注:不能轉換到root用戶下運行fdisk 程式;

實例七:別名的運用實踐;

假如我們就一臺主機localhost,能通過hostname 來查看,我們在這裏就不定義主機別名了,用ALL來匹配任何可能出現的主機名;並且有beinan、linuxsir、lanhaitun 用戶;主要是通過小例子能更好理解;sudo雖然簡單好用,但能把說的明白的確是件難事;最好的辦法是多看例子和man soduers ;

User_Alias SYSADER=beinan,linuxsir,%beinan

User_Alias DISKADER=lanhaitun

Runas_Alias OP=root

Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 注:定義命令別名DSKCMD,下有成員parted和fdisk ;

SYSADER ALL= SYDCMD,DSKCMDDISKADER     ALL=(OP) DSKCMD

註解:

第一行:定義用戶別名SYSADER 下有成員 beinan、linuxsir和beinan用戶組下的成員,用戶組前面必須加%號;

第二行:定義用戶別名 DISKADER ,成員有lanhaitun

第三行:定義Runas用戶,也就是目標用戶的別名爲OP,下有成員root

第四行:定義SYSCMD命令別名,成員之間用,號分隔,最後的!/usr/bin/passwd root 表示不能通過passwd 來更改root密碼;

第五行:定義命令別名DSKCMD,下有成員parted和fdisk ;

第六行:表示授權SYSADER下的任何成員,在任何可能存在的主機名的主機下運行或禁止 SYDCMD和DSKCMD下定義的命令。更爲明確遙說,beinan、linuxsir和beinan用戶組下的成員能以root身份運行 chown 、chmod 、adduser、passwd,但不能更改root的密碼;也能夠以root身份運行 parted和fdisk ,本條規則的等價規則是;

beinan,linuxsir,%beinan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk

第七行:表示授權DISKADER 下的任何成員,能以OP的身份,來運行 DSKCMD ,無需密碼;更爲明確的說 lanhaitun 能以root身份運行 parted和fdisk 命令;其等價規則是:

lanhaitun ALL=(root) /sbin/parted,/sbin/fdisk

可能有的弟兄會說我想不輸入用戶的密碼就能轉換到root並運行SYDCMD和DSKCMD 下的命令,那應該把把NOPASSWD:加在哪裏爲好?理解下面的例子吧,能明白的;

SYSADER ALL= NOPASSWD: SYDCMD, NOPASSWD: DSKCMD

六、linux的排錯

1.ping serverip
2.檢查服務器性能
top
3.看tomcat進程
4.查看tomcat的log文件
5.重啓tomcat
6.殺掉tomcat進程
ps -ef | grep tomcat
kill -9 2207


七、切換

ctrl + shift + alt + F1是切到終端模式
 
Alt+F7 切到圖形界面



---------------------- 拖走FM----期待與您交流! --------

收音機,電臺,網上電臺,廣播,在線廣播,網絡廣播,廣播電臺,網絡電臺,在線電臺,電臺在線收聽,廣播電臺在線收聽,網絡電臺在線收聽,在線收聽電臺,fm收音機,網絡收音機,廣播下載,在線收音機,收音機軟件下載,電臺軟件下載,網絡收音機下載--------------

---------------------- 拖走FM----期待與您交流! --------


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章