新聞中心
操作系統(tǒng)是計(jì)算機(jī)的核心組件之一,它為計(jì)算機(jī)提供了資源管理、進(jìn)程調(diào)度、文件管理、網(wǎng)絡(luò)通信等各種功能。在服務(wù)器領(lǐng)域,Linux作為一種主流的操作系統(tǒng),廣泛應(yīng)用于各種場(chǎng)景,如Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、存儲(chǔ)服務(wù)器等。由于服務(wù)器承載著大量的敏感數(shù)據(jù)和業(yè)務(wù),安全問(wèn)題顯得尤為重要。本文主要介紹如何利用Linux內(nèi)核提供的進(jìn)程UID修改功能,實(shí)現(xiàn)進(jìn)程安全運(yùn)行。

1. 什么是UID?
UID(User ID)是Linux系統(tǒng)中用于標(biāo)識(shí)用戶的一個(gè)數(shù)字。每個(gè)用戶都有一個(gè)獨(dú)特的UID,它在系統(tǒng)中具有唯一性。UID是由系統(tǒng)管理員分配的,具有不可變性和全局唯一性。常見(jiàn)的UID值為0到65535,其中0為超級(jí)用戶(root),獲得了更高級(jí)別的權(quán)限,能夠?qū)ο到y(tǒng)進(jìn)行任意操作。
2. 進(jìn)程UID的概念
在Linux系統(tǒng)中,每個(gè)進(jìn)程都有一個(gè)UID,與用戶賬戶的UID對(duì)應(yīng)。當(dāng)用戶登錄系統(tǒng)后,系統(tǒng)會(huì)為該用戶分配一個(gè)UID,而當(dāng)用戶啟動(dòng)一個(gè)進(jìn)程時(shí),進(jìn)程的UID就與該用戶的UID相同。進(jìn)程的UID通常用于限制進(jìn)程的權(quán)限,因?yàn)槊總€(gè)UID都有一個(gè)相應(yīng)的權(quán)限級(jí)別,進(jìn)程只能訪問(wèn)與該UID相同或更低的權(quán)限級(jí)別下的資源。
3. 修改進(jìn)程UID的方法
在Linux系統(tǒng)中,修改進(jìn)程UID的方法比較簡(jiǎn)單。可以使用setuid()系統(tǒng)調(diào)用,它可以讓進(jìn)程在運(yùn)行過(guò)程中切換UID。該系統(tǒng)調(diào)用的原型如下:
int setuid(uid_t uid);
其中,uid是要設(shè)置的UID值。如果調(diào)用成功,setuid()會(huì)返回0,否則會(huì)返回-1。在實(shí)際應(yīng)用中,我們通常會(huì)用到這個(gè)系統(tǒng)調(diào)用來(lái)切換進(jìn)程的UID,從而降低進(jìn)程的權(quán)限級(jí)別。
舉個(gè)例子:
int mn()
{
// 打印當(dāng)前進(jìn)程的UID
printf(“Current UID: %d\n”, getuid());
// 修改進(jìn)程的UID為1000
int ret = setuid(1000);
if (ret != 0)
{
perror(“setuid”);
return -1;
}
// 打印修改后的UID
printf(“New UID: %d\n”, getuid());
return 0;
}
上述代碼中,我們首先使用getuid()獲取當(dāng)前進(jìn)程的UID,然后使用setuid()將UID修改為1000。如果修改成功,就使用getuid()再獲取一遍UID,以便驗(yàn)證修改結(jié)果。如果修改失敗,就輸出錯(cuò)誤信息并返回-1。
4. 實(shí)現(xiàn)進(jìn)程安全運(yùn)行
實(shí)現(xiàn)進(jìn)程安全運(yùn)行的主要思路是:在程序運(yùn)行前,將進(jìn)程的UID修改為指定的低權(quán)限用戶,然后執(zhí)行程序的主體邏輯,完成后再切換回原來(lái)的UID。這樣做的好處是,即使程序在執(zhí)行過(guò)程中被攻擊,攻擊者也只能使用當(dāng)前UID所擁有的權(quán)限,而無(wú)法影響到系統(tǒng)的其他部分。
以Web服務(wù)器為例,通常情況下,Web服務(wù)器需要以root權(quán)限運(yùn)行,以便可以監(jiān)聽(tīng)80號(hào)端口等特權(quán)端口。但是,root權(quán)限的進(jìn)程存在安全隱患,因?yàn)楣粽呷绻晒粼撨M(jìn)程,就能夠完全控制系統(tǒng),造成了極大的威脅。因此,我們需要通過(guò)修改進(jìn)程UID的方式,將Web服務(wù)器的權(quán)限降到更低,以提高系統(tǒng)的安全性。
下面是Web服務(wù)器部分代碼:
void mn()
{
// 降低進(jìn)程的權(quán)限
if (setuid(1000) != 0)
{
perror(“setuid”);
exit(EXIT_FLURE);
}
// 創(chuàng)建一個(gè)監(jiān)聽(tīng)套接字
int sockfd = create_socket();
// 循環(huán)處理客戶端請(qǐng)求
while (1)
{
// 等待客戶端請(qǐng)求的到來(lái)
int connfd = accept(sockfd, NULL, NULL);
if (connfd
{
perror(“accept”);
continue;
}
// 處理客戶端請(qǐng)求
handle_request(connfd);
// 關(guān)閉連接
close(connfd);
}
// 恢復(fù)進(jìn)程的權(quán)限
if (setuid(0) != 0)
{
perror(“setuid”);
exit(EXIT_FLURE);
}
}
在該代碼中,我們首先使用setuid()將進(jìn)程的UID修改為1000,然后創(chuàng)建一個(gè)監(jiān)聽(tīng)套接字,循環(huán)處理客戶端請(qǐng)求。在處理請(qǐng)求的過(guò)程中,由于當(dāng)前進(jìn)程的UID已經(jīng)被降低,攻擊者即使成功攻擊,也無(wú)法訪問(wèn)系統(tǒng)內(nèi)受限的資源,因此可以盡可能地減少安全風(fēng)險(xiǎn)。待程序執(zhí)行完成后,我們?cè)賹⑦M(jìn)程的UID恢復(fù)為0,以便可以正常退出。
5.
本文主要介紹了Linux如何修改進(jìn)程UID,以實(shí)現(xiàn)進(jìn)程的安全運(yùn)行。通過(guò)切換進(jìn)程UID,我們可以有效地限制進(jìn)程能夠訪問(wèn)的資源,從而提高系統(tǒng)的安全性。對(duì)于服務(wù)器等敏感應(yīng)用程序而言,實(shí)現(xiàn)進(jìn)程安全運(yùn)行是至關(guān)重要的,希望讀者能夠加強(qiáng)應(yīng)用,并采取更多的安全措施,保障系統(tǒng)的穩(wěn)定和安全。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
Linux命令那么多,記不下來(lái),怎么破?
不用明彎模記,中要認(rèn)得是怎樣就能鬧睜解決了,打多了就記得,只認(rèn)得的話就打前幾個(gè)字母,按TAB鍵就激緩會(huì)顯示或補(bǔ)全幾個(gè)字母開(kāi)頭的命令了,很方便的
進(jìn)入Linux系統(tǒng):
必須要輸入用戶的賬號(hào),在系統(tǒng)安裝過(guò)程中可以創(chuàng)建以下兩種帳號(hào):
1.root–超級(jí)用戶帳號(hào)(系統(tǒng)管理員),使用這個(gè)帳號(hào)可以在系統(tǒng)中做任何事情。
2.普通用戶–這個(gè)帳號(hào)供普通用戶使用,可以進(jìn)行有限的操作。
一般的Linux使用者均為普通用戶,而系統(tǒng)管理員一般使用超級(jí)用戶帳號(hào)完成一些系統(tǒng)管理的工作。如果只需要完成一些由普通帳號(hào)就能完成的任務(wù),建議不要使用超級(jí)用戶帳號(hào),以免無(wú)意中破壞系統(tǒng)。影響系統(tǒng)的正常運(yùn)行。
用戶登錄分兩步:之一步,輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名識(shí)別用戶;第二步,輸入用戶的口令,該口令是用戶自己設(shè)置的一個(gè)字符串,對(duì)其他用戶是保密的,是在登錄時(shí)系統(tǒng)用來(lái)辨別真假用戶的關(guān)鍵字。
當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進(jìn)入系統(tǒng)。屏幕顯示:
# 這時(shí)就可以對(duì)系統(tǒng)做各種操作了。注意超級(jí)用戶的提示符是“#”,其他用歷隱戶的提示符是“$”。 修改口令
為了更好的保護(hù)用戶帳號(hào)的安全,Linux允許用戶隨時(shí)修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之后還要求用戶再次確認(rèn)新口令,以避免用戶無(wú)意中按錯(cuò)鍵。如果用戶忘記了口令,可以向系統(tǒng)管理員申請(qǐng)為自己重新設(shè)置一個(gè)。 虛擬控尺爛搜制臺(tái)
Linux是一個(gè)真正的多用戶操作系統(tǒng),它可以同時(shí)接受多個(gè)用戶登錄。Linux還允許一個(gè)用戶進(jìn)行多次登錄,這是因?yàn)長(zhǎng)inux和UNIX一樣,提供了虛擬控制臺(tái)的訪問(wèn)方式,允許用戶在同一時(shí)間從控制臺(tái)進(jìn)行多次登錄。虛擬控制臺(tái)的選擇可以通過(guò)按下Alt鍵和一個(gè)功能鍵來(lái)實(shí)現(xiàn),通常使用F1-F6例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到”login:”提示符,說(shuō)明用戶看到了第二個(gè)虛擬控制臺(tái)。然后只需按Alt-F1鍵,就可以回到之一個(gè)虛擬控制臺(tái)。 一個(gè)新安裝的Linux系統(tǒng)默認(rèn)允許用戶使用Alt-F1到Alt-F6鍵來(lái)訪問(wèn)前六個(gè)虛擬控制臺(tái)。虛擬控制臺(tái)可使用戶同時(shí)在多個(gè)控制臺(tái)上工作,真正體現(xiàn)Linux系統(tǒng)多用戶的特性。用戶可以在某一虛擬控制臺(tái)上進(jìn)行的工作尚未結(jié)束時(shí),切換到另一虛擬控制臺(tái)開(kāi)始另一項(xiàng)工作。 退出系統(tǒng)
不論是超級(jí)用戶,還是普通用戶,需要退出系統(tǒng)時(shí),在shell提示符下,鍵入exit命令即可。cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的copy命令一樣,功能十分強(qiáng)大。 語(yǔ)法: cp 源文件或目錄 目標(biāo)文件或目錄 說(shuō)明:該命令把指定的源文件復(fù)制到目標(biāo)文件或把多個(gè)源文件復(fù)制到目標(biāo)目錄中。 該命令的各選項(xiàng)含義如下: – a 該選項(xiàng)通常在拷貝目錄時(shí)使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項(xiàng)的組合。 – d 拷貝時(shí)保留鏈接。 – f 刪除已經(jīng)存在的目標(biāo)文件而不提示。 – i 和f選項(xiàng)相反,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)?;卮饄時(shí)目標(biāo)文件將被覆蓋,是交互式拷貝。 – p 此時(shí)cp除復(fù)制源文件的內(nèi)容外,還將把其修改時(shí)間和訪問(wèn)權(quán)限也復(fù)制到新文件中。 – r 若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時(shí)目標(biāo)文件必須為一個(gè)目錄名。 – l 不作拷貝,只是鏈接文件。 需要說(shuō)明的是,為防止用戶在不經(jīng)意的情況下用cp命令破壞另一個(gè)文件,如用戶指定的目標(biāo)文件名已存在,用cp命令拷貝文件后,這個(gè)文件就會(huì)被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時(shí),更好使用i選項(xiàng)。mv命令 用戶可以使用mv命令來(lái)為文件或目錄改名或?qū)⑽募梢涣隁v個(gè)目錄移入另一個(gè)目錄中。該命令如同MSDOS下的ren和move的組合。 語(yǔ)法:mv 源文件或目錄 目標(biāo)文件或目錄 說(shuō)明:視mv命令中第二個(gè)參數(shù)類型的不同(是目標(biāo)文件還是目標(biāo)目錄),mv命令將文件重命名或?qū)⑵湟浦烈粋€(gè)新的目錄中。當(dāng)?shù)诙€(gè)參數(shù)類型是文件時(shí),mv命令完成文件重命名,此時(shí),源文件只能有一個(gè)(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標(biāo)文件名。當(dāng)?shù)诙€(gè)參數(shù)是已存在的目錄名稱時(shí),源文件或目錄參數(shù)可以有多個(gè),mv命令將各參數(shù)指定的源文件均移至目標(biāo)目錄中。在跨文件系統(tǒng)移動(dòng)文件時(shí),mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。 命令中各選項(xiàng)的含義為: – I 交互方式操作。如果mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,此時(shí)系統(tǒng)詢問(wèn)是否重寫(xiě),要求用戶回答y或n,這樣可以避免誤覆蓋文件。 – f 禁止交互操作。在mv操作要覆蓋某已有的目標(biāo)文件時(shí)不給任何指示,指定此選項(xiàng)后,i選項(xiàng)將不再起作用。 如果所給目標(biāo)文件(不是目錄)已存在,此時(shí)該文件的內(nèi)容將被新文件覆蓋。為防止用戶用mv命令破壞另一個(gè)文件,使用mv命令移動(dòng)文件時(shí),更好使用i選項(xiàng)。 rm命令 用戶可以用rm命令刪除不需要的文件。該命令的功能為刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,它也可以將某個(gè)目錄及其下的所有文件及子目錄均刪除。對(duì)于鏈接文件,只是斷開(kāi)了鏈接,原文件保持不變。 rm命令的一般形式為: rm 文件… 如果沒(méi)有使用- r選項(xiàng),則rm不會(huì)刪除目錄。 該命令的各選項(xiàng)含義如下: – f 忽略不存在的文件,從不給出提示。 – r 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除。 – i 進(jìn)行交互式刪除。 使用rm命令要小心。因?yàn)橐坏┪募粍h除,它是不能被恢復(fù)的。了防止這種情況的發(fā)生,可以使用i選項(xiàng)來(lái)逐個(gè)確認(rèn)要?jiǎng)h除的文件。如果用戶輸入y,文件將被刪除。如果輸入任何其他東西,文件則不會(huì)刪除。mkdir命令 功能:創(chuàng)建一個(gè)目錄(類似MSDOS下的md命令)。 語(yǔ)法:mkdir dir-name 說(shuō)明:該命令創(chuàng)建由dir-name命名的目錄。要求創(chuàng)建目錄的用戶在當(dāng)前目錄中(dir-name的父目錄中)具有寫(xiě)權(quán)限,并且dirname不能是當(dāng)前目錄中已有的目錄或 文件名稱。 命令中各選項(xiàng)的含義為: – m 對(duì)新建目錄設(shè)置存取權(quán)限。也可以用chmod命令設(shè)置。 – p 可以是一個(gè)路徑名稱。此時(shí)若路徑中的某些目錄尚不存在, 加上此選項(xiàng)后, 系統(tǒng)將自動(dòng)建立好那些尚不存在的目錄,即一次可以建立多個(gè)目錄。 rmdir 命令 功能:刪除空目錄。 語(yǔ)法:rmdir dir-name 說(shuō)明:dir-name表示目錄名。該命令從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng)。需要 特別注意的是,一個(gè)目錄被刪除之前必須是空的。rm – r dir命令可代替 rmdir,但是有危險(xiǎn)性。刪除某目錄時(shí)也必須具有對(duì)父目錄的寫(xiě)權(quán)限。 命令中各選項(xiàng)的含義為: – p 遞歸刪除目錄dirname,當(dāng)子目錄刪除后其父目錄為空時(shí),也一同被刪除。如果整個(gè)路徑被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標(biāo)準(zhǔn)輸出上顯示相應(yīng) 的信息。 cd 命令 功能:改變工作目錄。 語(yǔ)法:cd 說(shuō)明:該命令將當(dāng)前目錄改變至directory所指定的目錄。若沒(méi)有指定directory, 則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對(duì)指定目錄的執(zhí)行和讀 權(quán)限。 該命令可以使用通配符(通配符含義請(qǐng)參見(jiàn)第十章)。
pwd 命令 在Linux層次目錄結(jié)構(gòu)中,用戶可以在被授權(quán)的任意目錄下利用mkdir命令創(chuàng)建新目錄,也可以利用cd命令從一個(gè)目錄轉(zhuǎn)換到另一個(gè)目錄。然而,沒(méi)有提示符來(lái)告知用 戶目前處于哪一個(gè)目錄中。要想知道當(dāng)前所處的目錄,可以使用pwd命令,該命令顯示整個(gè)路徑名。 語(yǔ)法:pwd 說(shuō)明:此命令顯示出當(dāng)前工作目錄的絕對(duì)路徑。 ls 命令 ls是英文單詞list的簡(jiǎn)寫(xiě),其功能為列出目錄的內(nèi)容。這是用戶最常用的一個(gè)命令之一,因?yàn)橛脩粜枰粫r(shí)地查看某個(gè)目錄的內(nèi)容。該命令類似于DOS下的dir命令。 語(yǔ)法:ls 對(duì)于每個(gè)目錄,該命令將列出其中的所有子目錄與文件。對(duì)于每個(gè)文件,ls將輸出 其文件名以及所要求的其他信息。默認(rèn)情況下,輸出條目按字母順序排序。當(dāng)未給出目錄名或是文件名時(shí),就顯示當(dāng)前目錄的信息。 命令中各選項(xiàng)的含義如下: – a 顯示指定目錄下所有子目錄與文件,包括隱藏文件。 – A 顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和 “..”。 – b 對(duì)文件名中的不可顯示字符用八進(jìn)制逃逸字符顯示。 – c 按文件的修改時(shí)間排序。 – C 分成多列顯示各項(xiàng)。 – d 如果參數(shù)是目錄,只顯示其名稱而不顯示其下的各文件。往往與l選項(xiàng)一起使 用,以得到目錄的詳細(xì)信息。 – f 不排序。該選項(xiàng)將使lts選項(xiàng)失效,并使aU選項(xiàng)有效。 – F 在目錄名后面標(biāo)記“/”,可執(zhí)行文件后面標(biāo)記“*”,符號(hào)鏈接后面標(biāo)記 “@”,管道(或FIFO)后面標(biāo)記“|”,socket文件后面標(biāo)記“=”。 – i 在輸出的之一列顯示文件的i節(jié)點(diǎn)號(hào)。 – l 以長(zhǎng)格式來(lái)顯示文件的詳細(xì)信息。這個(gè)選項(xiàng)最常用。 每行列出的信息依次是: 文件類型與權(quán)限 鏈接數(shù) 文件屬主 文件屬組 文件大小 建立或最近修改的時(shí)間 名字 對(duì)于符號(hào)鏈接文件,顯示的文件名之后有“—〉”和引用文件路徑名。 對(duì)于設(shè)備文件,其“文件大小”字段顯示主、次設(shè)備號(hào),而不是文件大小。 目錄中的總塊數(shù)顯示在長(zhǎng)格式列表的開(kāi)頭,其中包含間接塊。 – L 若指定的名稱為一個(gè)符號(hào)鏈接文件,則顯示鏈接所指向的文件。 – m 輸出按字符流格式,文件跨頁(yè)顯示,以逗號(hào)分開(kāi)。 – n 輸出格式與l選項(xiàng)相同,只不過(guò)在輸出中文件屬主和屬組是用相應(yīng)的UID號(hào)和 GID號(hào)來(lái)表示,而不是實(shí)際的名稱。 – o 與l選項(xiàng)相同,只是不顯示擁有者信息。 – p 在目錄后面加一個(gè)“/”。 – q 將文件名中的不可顯示字符用“?”代替。 – r 按字母逆序或最早優(yōu)先的順序顯示輸出結(jié)果。 – R 遞歸式地顯示指定目錄的各個(gè)子目錄中的文件。 – s 給出每個(gè)目錄項(xiàng)所用的塊數(shù),包括間接塊。 – t 顯示時(shí)按修改時(shí)間(最近優(yōu)先)而不是按名字排序。若文件修改時(shí)間相同,則 按字典順序。修改時(shí)間取決于是否使用了c或u選頂。缺省的時(shí)間標(biāo)記是最后一次修 改時(shí)間。 – u 顯示時(shí)按文件上次存取的時(shí)間(最近優(yōu)先)而不是按名字排序。即將-t的時(shí)間 標(biāo)記修改為最后一次訪問(wèn)的時(shí)間。 – x 按行顯示出各排序項(xiàng)的信息。 用ls – l命令顯示的信息中,開(kāi)頭是由10個(gè)字符構(gòu)成的字符串,其中之一個(gè)字符表示文件類型,它可以是下述類型之一: – 普通文件 d 目錄 l 符號(hào)鏈接 b 塊設(shè)備文件 c 字符設(shè)備文件 后面的9個(gè)字符表示文件的訪問(wèn)權(quán)限,分為3組,每組3位。 之一組表示文件屬主的權(quán)限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個(gè)字 符分別表示對(duì)文件的讀、寫(xiě)和執(zhí)行權(quán)限。 各權(quán)限如下所示: r 讀 w 寫(xiě) x 執(zhí)行。對(duì)于目錄,表示進(jìn)入權(quán)限。 s 當(dāng)文件被執(zhí)行時(shí),把該文件的UID或GID賦予執(zhí)行進(jìn)程的UID(用戶ID)或GID(組 ID)。 t 設(shè)置標(biāo)志位(留在內(nèi)存,不被換出)。如果該文件是目錄,在該目錄中的文件只能被超級(jí)用戶、目錄擁有者或文件屬主刪除。如果它是可執(zhí)行文件,在該文件執(zhí)行 后,指向其正文段的指針仍留在內(nèi)存。這樣再次執(zhí)行它時(shí),系統(tǒng)就能更快地裝入該文件。Linux文本處理命令
sort命令 sort命令的功能是對(duì)文件中的各行進(jìn)行排序。sort命令有許多非常實(shí)用的選項(xiàng),這些選項(xiàng)最初是用來(lái)對(duì)數(shù)據(jù)庫(kù)格式的文件內(nèi)容進(jìn)行各種排序操作的。實(shí)際上,sort命令可以被認(rèn)為是一個(gè)非常強(qiáng)大的數(shù)據(jù)管理工具,用來(lái)管理內(nèi)容類似數(shù)據(jù)庫(kù)記錄的文件。 Sort命令將逐行對(duì)文件中的內(nèi)容進(jìn)行排序,如果兩行的首字符相同,該命令將繼續(xù)比較這兩行的下一字符,如果還相同,將繼續(xù)進(jìn)行比較。 語(yǔ)法: sort 文件 說(shuō)明:sort命令對(duì)指定文件中所有的行進(jìn)行排序,并將結(jié)果顯示在標(biāo)準(zhǔn)輸出上。如不指定輸入文件或使用“- ”,則表示排序內(nèi)容來(lái)自標(biāo)準(zhǔn)輸入。 sort排序是根據(jù)從輸入行抽取的一個(gè)或多個(gè)關(guān)鍵字進(jìn)行比較來(lái)完成的。排序關(guān)鍵字定義了用來(lái)排序的最小的字符序列。缺省情況下以整行為關(guān)鍵字按ASCII字符順序進(jìn)行排序。 改變?nèi)笔≡O(shè)置的選項(xiàng)主要有: – m 若給定文件已排好序,合并文件。 – c 檢查給定文件是否已排好序,如果它們沒(méi)有都排好序,則打印一個(gè)出錯(cuò)信息,并以狀態(tài)值1退出。 – u 對(duì)排序后認(rèn)為相同的行只留其中一行。 – o 輸出文件 將排序輸出寫(xiě)到輸出文件中而不是標(biāo)準(zhǔn)輸出,如果輸出文件是輸入文件之一,sort先將該文件的內(nèi)容寫(xiě)入一個(gè)臨時(shí)文件,然后再排序和寫(xiě)輸出結(jié)果。 改變?nèi)笔∨判蛞?guī)則的選項(xiàng)主要有: – d 按字典順序排序,比較時(shí)僅字母、數(shù)字、空格和制表符有意義。 – f 將小寫(xiě)字母與大寫(xiě)字母同等對(duì)待。 – I 忽略非打印字符。 – M 作為月份比較:“JAN” 文件 說(shuō)明:這個(gè)命令讀取輸入文件,并比較相鄰的行。在正常情況下,第二個(gè)及以后更多個(gè)重復(fù)行將被刪去,行比較是根據(jù)所用字符集的排序序列進(jìn)行的。該命令加工后的結(jié)果寫(xiě)到輸出文件中。輸入文件和輸出文件必須不同。如果輸入文件用“- ”表示,則從標(biāo)準(zhǔn)輸入讀取。 該命令各選項(xiàng)含義如下: – c 顯示輸出中,在每行行首加上本行在文件中出現(xiàn)的次數(shù)。它可取代- u和- d選項(xiàng)。 – d 只顯示重復(fù)行。 – u 只顯示文件中不重復(fù)的各行。 – n 前n個(gè)字段與每個(gè)字段前的空白一起被忽略。一個(gè)字段是一個(gè)非空格、非制表符的字符串,彼此由制表符和空格隔開(kāi)(字段從0開(kāi)始編號(hào))。 +n 前n個(gè)字符被忽略,之前的字符被跳過(guò)(字符從0開(kāi)始編號(hào))。 – f n 與- n相同,這里n是字段數(shù)。 – s n 與+n相同,這里n是字符數(shù)。tar命令 tar可以為文件和目錄創(chuàng)建檔案。利用tar,用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來(lái)在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶可以在任何設(shè)備上創(chuàng)建檔案,如軟盤(pán)。利用tar命令,可以把一大堆的文件和目錄全部打包成一個(gè)文件,這對(duì)于備份文件或?qū)讉€(gè)文件組合成為一個(gè)文件以便于網(wǎng)絡(luò)傳輸是非常有用的。Linux上的tar是GNU版本的。 語(yǔ)法:tar 文件或者目錄 使用該命令時(shí),主選項(xiàng)是必須要有的,它告訴tar要做什么事情,輔選項(xiàng)是輔助使用的,可以選用。 主選項(xiàng): c 創(chuàng)建新的檔案文件。如果用戶想備份一個(gè)目錄或是一些文件,就要選擇這個(gè)選項(xiàng)。 r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經(jīng)作好備份文件,又發(fā)現(xiàn)還有一個(gè)目錄或是一些文件忘記備份了,這時(shí)可以使用該選項(xiàng),將忘記的目錄或文件追加到備份文件中。 t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。 u 更新文件。就是說(shuō),用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。 x 從檔案文件中釋放文件。 輔助選項(xiàng): b 該選項(xiàng)是為磁帶機(jī)設(shè)定的。其后跟一數(shù)字,用來(lái)說(shuō)明區(qū)塊的大小,系統(tǒng)預(yù)設(shè)值為20(20*512 bytes)。 f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的。 k 保存已經(jīng)存在的文件。例如我們把某個(gè)文件還原,在還原的過(guò)程中,遇到相同的文件,不會(huì)進(jìn)行覆蓋。 m 在還原文件時(shí),把所有文件的修改時(shí)間設(shè)定為現(xiàn)在。 M 創(chuàng)建多卷的檔案文件,以便在幾個(gè)磁盤(pán)中存放。 v 詳細(xì)報(bào)告tar處理的文件信息。如無(wú)此選項(xiàng),tar不報(bào)告文件信息。 w 每一步都要求確認(rèn)。 z 用gzip來(lái)壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓縮。 gzip命令 減少文件大小有兩個(gè)明顯的好處,一是可以減少存儲(chǔ)空間,二是通過(guò)網(wǎng)絡(luò)傳輸文件時(shí),可以減少傳輸?shù)臅r(shí)間。gzip是在Linux系統(tǒng)中經(jīng)常使用的一個(gè)對(duì)文件進(jìn)行壓縮和解壓縮的命令,既方便又好用。 語(yǔ)法:gzip 壓縮(解壓縮)的文件名 各選項(xiàng)的含義: -c 將輸出寫(xiě)到標(biāo)準(zhǔn)輸出上,并保留原有文件。 -d 將壓縮文件解壓。 -l 對(duì)每個(gè)壓縮文件,顯示下列字段: 壓縮文件的大小 未壓縮文件的大小 壓縮比 未壓縮文件的名字 -r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮。 -t 測(cè)試,檢查壓縮文件是否完整。 -v 對(duì)每一個(gè)壓縮和解壓的文件,顯示文件名和壓縮比。 -num 用指定的數(shù)字num調(diào)整壓縮的速度,-1或–fast表示最快壓縮方法(低壓縮比),-9或–best表示最慢壓縮方法(高壓縮比)。系統(tǒng)缺省值為6。 unzip命令 用MS Windows下的壓縮軟件winzip壓縮的文件如何在Linux系統(tǒng)下展開(kāi)呢?可以用unzip命令,該命令用于解擴(kuò)展名為.zip的壓縮文件。 語(yǔ)法:unzip 壓縮文件名.zip 各選項(xiàng)的含義分別為: -x 文件列表 解壓縮文件,但不包括指定的file文件。 -v 查看壓縮文件目錄,但不解壓。 -t 測(cè)試文件有無(wú)損壞,但不解壓。 -d 目錄 把壓縮文件解到指定目錄下。 -z 只顯示壓縮文件的注解。 -n 不覆蓋已經(jīng)存在的文件。 -o 覆蓋已存在的文件且不要求用戶確認(rèn)。 -j 不重建文檔的目錄結(jié)構(gòu),把所有文件解壓到同一目錄下。
我覺(jué)得你可以記住和嫌一些常用的命令,比如:cd cp mv rpm 什么的。一些不是特別的可以到網(wǎng)上下一個(gè)命令大全什么的,到時(shí)候查找就行了。Linux的命令很多,要是每個(gè)都記住清宏的話,那就得下功夫了,我覺(jué)得沒(méi)必要全記住,又不是考英語(yǔ)答棚冊(cè)4級(jí),天天背單詞!
linux ps查看進(jìn)程顯示的是用戶ID而不是用戶名是怎么回事?
man ps可以看到NOTES里有慎碼
If the length of the username is greater than the length of the display column, the numeric user ID is displayed instead.
你的用戶名長(zhǎng)度超過(guò)8個(gè)字符了
要配置,戚嫌就定制你的輸出格式了,man ps都有詳細(xì)解釋
要學(xué)會(huì)寬仔哪用man
ps命令UID列默認(rèn)只能顯示8位(含8位)的用戶名,超過(guò)8位宴櫻就顯示晌山叢UID
但是ps可以自定義顯示列的寬度,試一下:
ps -o ruser=useruser10 -e -o pid,ppid,c,stime,tty,time,cmd
UID列名被改為useruser10,這樣唯銷就能顯示10位的用戶名了
linux 修改進(jìn)程uid的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 修改進(jìn)程uid,Linux如何修改進(jìn)程UID,實(shí)現(xiàn)安全運(yùn)行?,Linux命令那么多,記不下來(lái),怎么破?,linux ps查看進(jìn)程顯示的是用戶ID而不是用戶名是怎么回事?的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(tái)(智算云),軟件開(kāi)發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220
網(wǎng)頁(yè)題目:Linux如何修改進(jìn)程UID,實(shí)現(xiàn)安全運(yùn)行?(linux修改進(jìn)程uid)
文章路徑:http://m.5511xx.com/article/cccjhsj.html


咨詢
建站咨詢
