引言:Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
大家知道,root賬號是Linux系統(tǒng)中的超級管理員用戶帳戶,該賬號擁有一切操作權(quán)力,用戶能通過它對所有對象進行操作。請問在特殊情況下,如何為普通用戶賬號,例如“aaa”賬號,授予root權(quán)限?
首先在Linux系統(tǒng)的“#”狀態(tài)下,依次執(zhí)行“adduser aaa ”、“passwd aaa”命令,新創(chuàng)建好普通用戶賬號“aaa”,同時為該賬號設(shè)置好登錄密碼。接著執(zhí)行“vi /etc/sudoers ”命令,從中找到關(guān)鍵字“root ALL=(ALL) ALL”,在 這一行下面手工添加上“aaa ALL=(ALL) ALL”,修改成功后,就能用“aaa”賬號進行登錄操作,之后使用“su”命令,就能獲得root賬號權(quán)限。
從“/etc/group”文件中可以查看到Linux系統(tǒng)的所有用戶組信息,該文件中的每條記錄包含四個字段,請問每個字段各代表什么含義?
第一個字段表示用戶組名稱,第二字段表示用戶組密碼,第三字段表示GID,第四字段表示用戶列表,每個用戶之間用逗號分割開來,該字段可以為空,要是字段為空就說明用戶組為GID的用戶名。
請問Linux系統(tǒng)下用戶和組的管理原理是什么?
Linux系統(tǒng)下每個文件和程序都屬于一個特定用戶,每個用戶都有一個唯一的身份ID,而且每個用戶至少屬于一個用戶組,這個組中包含若干系統(tǒng)用戶。同樣地,每個用戶組也有一個唯一的組ID,用戶可以分屬于多個不同的用戶組。將用戶分組是Linux 系統(tǒng)中對用戶進行管理及控制訪問權(quán)限的一種手段,通過定義用戶組,在很大程度上簡化了管理工作。對特定程序或文件的訪問,是以它的用戶ID和組ID為基礎(chǔ)的。一個執(zhí)行中的程序繼承了調(diào)用它的用戶權(quán)利和訪問權(quán)限,每位用戶權(quán)限可以被賦予普通權(quán)限或超級權(quán)限,普通權(quán)限只能訪問其擁有的或者有權(quán)限執(zhí)行的文件或程序,超級權(quán)限可以訪問系統(tǒng)所有文件或程序。
請問對Linux系統(tǒng)中的用戶和組賬號進行管理有什么作用?
用戶和組賬號是Linux系統(tǒng)中進行資源使用、文件管理、文件操作的主體,它們以不同角色存在于操作系統(tǒng)中。在常見的安全威脅中,惡意用戶往往會悄悄在系統(tǒng)中創(chuàng)建一些隱藏用戶賬號,來竊取超級用戶權(quán)限,從而實現(xiàn)對Linux系統(tǒng)資源或數(shù)據(jù)的非法攻擊、破壞。所以,加強對Linux系統(tǒng)中的用戶和組賬號進行管理,可以保護操作系統(tǒng)運行安全。
按照缺省設(shè)置,正確安裝好Ubuntu9.10 Linux系統(tǒng)系統(tǒng)后,筆者發(fā)現(xiàn)系統(tǒng)默認沒有為root賬號設(shè)置訪問密碼。為了保護系統(tǒng)安全,請問怎樣為root賬號設(shè)置訪問密碼?
大家知道,普通權(quán)限用戶是不能利用su命令獲得root賬號權(quán)限的,同樣也不能以root方式登錄系統(tǒng)圖形界面或控制臺。當在進行特殊權(quán)限任務(wù)時,可以嘗試使用sudo命令,輸入合適的登錄密碼后才能操作。在為root賬號設(shè)置訪問密碼時,只要執(zhí)行“sudo passwd root”命令,之后依照提示輸入“xxx”,這里的“xxx”為具體密碼內(nèi)容。日后,當需要以root賬號權(quán)限登錄系統(tǒng)進行特殊操作時,只要利用su命令,再輸入root賬號的訪問密碼就可以了,而不需要每次都使用“sudo”命令了。
當然,為安全起見,即使我們已經(jīng)為root賬號設(shè)置了訪問密碼,建議大家在平時也不要使用root賬號登錄系統(tǒng),而應(yīng)該使用普通用戶賬號登錄系統(tǒng)。
在Linux系統(tǒng)中,根據(jù)擁有的權(quán)限和擔任的角色不同,用戶賬號可以分為哪幾種類型?
用戶賬號可以分為三種類型:一是超級用戶賬號,該賬號是操作系統(tǒng)中默認的系統(tǒng)管理員賬號,對本主機擁有至高無上的完全權(quán)限,權(quán)限與Windows系統(tǒng)中的Administrator用戶賬號類似。二是程序用戶賬號,該賬號是在安裝Linux系統(tǒng)及部分應(yīng)用程序時創(chuàng)建的,它一般只用于維持系統(tǒng)或某個程序正常運行,不允許被登錄系統(tǒng)。三是普通用戶賬號,該賬號要由超級用戶或其他管理員用戶創(chuàng)建,擁有的權(quán)限受到一定限制,一般只在用戶自己的宿主目錄中有完全權(quán)限。
某用戶計算機中安裝的是Ubuntu 10.10 Linux系統(tǒng),嘗試執(zhí)行“su root”命令,無法進入root權(quán)限登錄狀態(tài),不知道是什么原因?
之所以會出現(xiàn)這種現(xiàn)象,主要是Ubuntu 10.10 Linux系統(tǒng)默認狀態(tài)下,已經(jīng)禁用了root賬號。如果不開啟該賬號的話,我們根本就沒法登錄進入root權(quán)限狀態(tài),自然執(zhí)行“sudo root”命令,再輸入密碼無法成功登錄了。
當然,建議大家盡量不要以root賬號直接登錄Linux系統(tǒng),因為它會給系統(tǒng)安全運行帶來很大的隱患,同時能訪問在普通用戶賬號登錄狀態(tài)下通常不會訪問的系統(tǒng)和子系統(tǒng)。為了安全起見,最好是通過經(jīng)常使用的普通帳戶登錄系統(tǒng),之后使用su命令,這樣比利用root賬號登錄更合理。
請問Linux系統(tǒng)下的用戶和組對應(yīng)關(guān)系主要有哪些?
主要有一對一、一對多、多對一和多對多等對應(yīng)關(guān)系,其中一對一對應(yīng)關(guān)系表示一個用戶可以存在一個組中,也可以是組中的唯一成員;一對多對應(yīng)關(guān)系表示一個用戶可以存在多個用戶組中,那么這個用戶具有多個組的共同權(quán)限;多對一對應(yīng)關(guān)系表示多個用戶可以存在一個組中,這些用戶具有和組相同的權(quán)限;多對多對應(yīng)關(guān)系表示多個用戶可以存在多個組中,實際上就是上面三個對應(yīng)關(guān)系的擴展。
大家知道,在Linux系統(tǒng)環(huán)境下,新創(chuàng)建好一個用戶時,系統(tǒng)也會同時創(chuàng)建一個與該用戶名稱相同的新組,而這個新創(chuàng)建的用戶就是該組的成員。請問如何讓新創(chuàng)建用戶歸屬于另外一個已經(jīng)存在的用戶組?
很簡單!只要在“#”命令提示符狀態(tài)下,通過“useradd-g”命令就能將指定用戶名稱歸屬到特定組賬號下。例如,要將“aaa”用戶歸屬到“usergroup1”用戶組中時,可以使用“useradd-g usergroup1 aaa”命令,就能成功達到目的。
有的用戶在Linux系統(tǒng)中完成特權(quán)管理操作任務(wù)后,經(jīng)常會忘記將root登錄賬號注銷掉,這容易給其他非法用戶帶來可趁之機。為了保證系統(tǒng)安全,請問有沒有辦法讓Linux系統(tǒng)自動注銷root登錄賬號?
答案是肯定的!只要編輯“/etc/profile”文件中的“TMOUT”參數(shù),為root賬號設(shè)置合適的自動注銷時間即可,該參數(shù)以秒鐘為單位。比方說,如果想將自動注銷時間調(diào)整為1分鐘時,可以執(zhí)行“vi /etc/profile”命令,在“HISTFILESIZE=”下面添加“TMOUT=60”這行內(nèi)容,這樣當root賬號在1分鐘內(nèi)沒有對Linux系統(tǒng)執(zhí)行任何操作時,root賬號就會被系統(tǒng)強行注銷掉。值得注意的是,這項設(shè)置操作必須先注銷掉root賬號,再重新使用該賬號登錄,才能正式生效。
現(xiàn)在,筆者想在Linux系統(tǒng)中創(chuàng)建一個考試測試用的用戶賬號“aaa01”,希望該賬號歸屬于“users”用戶組,并于2015-04-30失效,請問如何創(chuàng)建該賬號呢?
只要執(zhí)行“useradd -g users -e 2015-04-30 aa a01”字符串命令即可,其中“g”參數(shù)用來指定用戶的基本組名,“e”參數(shù)用來指定用戶的賬戶失效時間,時間格式可以使用YYYY-MM-DD的形式。
請問Linux系統(tǒng)中的用戶標識號有什么作用?
用戶標識號其實就是用戶的UID,每位用戶都有自己的唯一UID,它的取值范圍一般是0~65535,其中0代表超級用戶的標識號,1~99這段范圍的數(shù)值由系統(tǒng)保留,作為管理賬號,普通用戶的標識號從100開始。而在Linux系統(tǒng)下,普通用戶默認的UID數(shù)值從500開始。UID是linux下確認用戶權(quán)限的標志,用戶的角色和權(quán)限都是通過UID來實現(xiàn)的,所以若干個用戶共用一個UID是十分危險的,會造成系統(tǒng)權(quán)限和管理的混亂,比方說將普通用戶的UID設(shè)置為0后,該用戶將會獲得root用戶操作權(quán)限,這對系統(tǒng)來說是相當危險的。
善 于 使 用“usermod”命令自帶的各種功能參數(shù),可以靈活地對Linux系統(tǒng)中已經(jīng)存在的用戶屬性進行按需修改,請問該命令常用的功能參數(shù)有哪些,它們各表示什么含義?
常用的功能參數(shù)有u、d、e、g、G、M、L、U、l、s等,其中u參數(shù)表示修改用戶的UID號,d參數(shù)表示修改用戶的宿主目錄位置,e參數(shù)表示修改用戶的賬戶失效時間,g參數(shù)表示修改用戶的基本組名,G參數(shù)表示修改用戶的附加組名,M參數(shù)表示不為用戶建立并初始化宿主目錄,s參數(shù)表示指定用戶的登錄Shell,l參數(shù)表示更改用戶賬號的登錄名稱,L參數(shù)表示鎖定用戶賬戶,U參數(shù)表示解鎖用戶賬戶。
“/etc/passwd”文件和“/etc/shadow”文件中都保存有用戶的密碼信息,請問這兩個文件有什么區(qū)別嗎?
這兩個文件都屬于用戶配置文件,記錄了Linux系統(tǒng)中每個用戶的一些基本屬性,不過“/etc/passwd”文件對所有用戶可讀,保存在該文件口令字段中的內(nèi)容是一個特殊的字符,例如“x”或者“*”。而“/etc/shadow”文件只有root用戶擁有讀權(quán)限,從而保證了用戶密碼的安全性,該文件保存的是加密后的用戶口令字串,要是密碼字段是“*”、“!”、“x”等字符,那么對應(yīng)的用戶無法成功登錄操作系統(tǒng)。
最近在登錄Ubuntu 10.10 Linux系統(tǒng)時,筆者發(fā)現(xiàn)即使使用正確的用戶名和密碼,也不能登錄系統(tǒng),請問這是什么原因?
很可能是系統(tǒng)環(huán)境變量設(shè)置錯誤,造成無法登錄系統(tǒng),所以我們需要修改系統(tǒng)環(huán)境變量。當然,這項操作需要使用sudo命令獲得系統(tǒng)超級用戶權(quán)限,不過由于系統(tǒng)環(huán)境變量損壞,所以在使用時要加上完整路徑:輸入如下格式:/usr/bin/sudo /usr/bin/vi/etc/profile,然后輸入超級用戶密碼即可打開環(huán)境變量文件,連續(xù)按兩次d鍵,刪除錯誤的行(上一次使用時添加的行),之后按下shift功能鍵輸入冒號,同時在冒號后直接輸入“wq”命令并回車,重新啟動計算機系統(tǒng)即可。
當在Linux系統(tǒng)中成功創(chuàng)建好用戶賬號后,“user add”命令會在對應(yīng)用戶的宿主目錄下面,自動生成一些初始配置文件,請問它們各有什么作用?
系統(tǒng)會自動生成“.bash_logout”、“.bash_profile”、“.bashrc”等配置文件,這些文件都處于隱藏顯示狀態(tài)。其 中,“.bashrc_profile”文件中的命令將在該用戶每次登陸時被執(zhí)行,“.bashrc”文件中的命令會在每次加載“/bin/Bash”程序時被執(zhí)行,“.bash_logout”文件中的命令將在用戶每次退出登陸時被執(zhí)行。
請問Linux系統(tǒng)的偽用戶賬號有什么作用?
偽用戶與系統(tǒng)和程序服務(wù)相關(guān),任何Linux系統(tǒng)默認 都 有 bin、daemon、shu tdown、halt等偽用戶,偽用戶不需要或無法登錄系統(tǒng),該賬號可以沒有宿主目錄。
“/etc/passwd”文件每一行內(nèi)容中,都包括用冒號分隔開的七個配置字段,請問從左到右每個配置字段的含義分別代表什么?
第一字段表示用戶賬號的名稱;第二字段表示經(jīng)過加密的用戶密碼字串,或者密碼占位符“x”;第三字段表示用戶賬號的UID號;第四字段表示所屬基本組賬號的GID號;第五字段表示用戶全名,可填寫與用戶相關(guān)的說明信息;第六字段表示宿主目錄,即該用戶登錄后所在的默認工作目錄;第七字段表示登錄Shell等信息,用戶完成登錄后使用的Shell。
“/etc/shadow”文件每一行內(nèi)容中,默認包含九個配置字段,請問每個字段的含義各表示什么?
第一字段表示用戶賬號名稱;第二字段表示使用MD5加密的密碼字串信息,當為“*”或“!!”時代表該用戶無法登錄到系統(tǒng),要是這個字段內(nèi)容為空,那么該用戶無需密碼即可登錄系統(tǒng);第三字段表示上次修改密碼的時間;第四字段表示密碼的最短有效天數(shù),自本次修改密碼后,必須至少經(jīng)過該天數(shù)才能再次修改密碼,默認值為0,表示不進行限制;第五字段表示密碼的最長有效天數(shù),自本次修改密碼后,經(jīng)過該天數(shù)以后必須再次修改密碼,默認值為99999,表示不進行限制;第六字段表示提前多少天警告用戶口令將過期,默認值為7;第七字段表示在密碼過期之后多少天內(nèi)禁用此用戶;第八字段表示賬號失效時間,此字段指定了用戶作廢的天數(shù),默認值為空,表示賬號永久可用;第九字段是保留字段,目前沒有特定用途。
當有人嘗試修改自己賬號的登錄密碼時,要是其他用戶正對“/etc/shadow”文件執(zhí)行編輯操作,這可能會引起修改的用戶賬號密碼失效。請問如何避免這種現(xiàn)象發(fā)生?
用戶可以嘗試使用vipw命令來編輯“/etc/shadow”文件,這樣可以自動對該文件加鎖,編輯結(jié)束自動解鎖,從而確保數(shù)據(jù)的一致性。
我們知道,在一些低版本Linux系統(tǒng)中,用戶賬號的登錄密碼往往保存在“/etc/passwd”文件中,惡意用戶利用專業(yè)查找方法,很容易發(fā)現(xiàn)并破解重要用戶的登錄密碼。請問如何才能避免惡意用戶發(fā)現(xiàn)并破解重要用戶的登錄密碼呢?
很簡單!我們可以通過“/usr/sbin/grpconv”、“/u sr/sbin/pwconv”命令,來創(chuàng)建“/etc/gshadow”文件或“/etc/shadow”文件,將所有加密的密碼都轉(zhuǎn)移存儲到“/etc/shadow”文件中,日后只有root權(quán)限的用戶才能訪問它,普通權(quán)限的用戶是訪問不到它,那么就能成功避免惡意用戶發(fā)現(xiàn)并破解重要用戶的登錄密碼了。
最近,小張在學習Linux系統(tǒng)的操作,遇到一個小問題,就是在超級用戶狀態(tài)下創(chuàng)建了一個普通用戶賬號,但是該賬號沒有權(quán)限,只能登錄,查看一部分信息,就是無法進行增、刪、修等操作,還有組也添加不上權(quán)限,請問為什么會出現(xiàn)這種現(xiàn)象,該怎樣給組或用戶添加權(quán)限?
Linux系統(tǒng)中所有的權(quán)限都是針對文件的,目錄也是一種文件,所以普通用戶賬號自然沒有權(quán)限刪除別人的建立的文件了,要想讓他們能刪除、添加、編輯該文件,就要把這個文件的權(quán)限給他們才行。用戶可以通過“chgrp 用戶組 文件或文件夾”之類的命令,將特定文件的權(quán)限賦予一個用戶組。當然,文件所有者也可以使用“chmod u=rwx”命令,將文件的所有操作權(quán)限賦予當前用戶。
請問Linux系統(tǒng)對用戶賬號的登錄驗證究竟是通過“/etc/passwd”文件還是“/etc/shadow”文件進行的?
這項登錄驗證操作與上述兩個文件都有關(guān)系,先是通過“/etc/passwd”文件來驗證用戶名是否存在,之后使用“/etc/shadow”文件來驗證用戶名對應(yīng)的密碼是否正確。
請問Linux系統(tǒng)的組賬號文件有什么作用,該怎樣對其進行編輯修改呢?
基于某種特定聯(lián)系將多個用戶集合在一起,即構(gòu)成一個用戶組,用于表示該組內(nèi)所有用戶的賬號稱為組賬號。該賬號文件的作用主要是加強組口令的安全性,避免惡意用戶對其實行暴力攻擊。組賬號文件一般包含用戶組名、加密的組口令、組成員列表等信息,以組mail文件為例,其組成員包括exim、postfix、mail等,加密的組口令處于隱藏顯示狀態(tài),其他的以“::”結(jié)尾的組表明沒有組成員,不過用戶可以自行添加。
在Linux系統(tǒng)中,要是強制每個用戶選擇使用不易猜出的登錄密碼,那么就能有效提高系統(tǒng)的運行安全性。不過要是passwd程序不能強迫每個登錄系統(tǒng)的用戶使用合適的密碼,要保證密碼的安全度,就只能依靠密碼破解程序了。請問如何借助密碼破解程序,幫助用戶設(shè)置安全的Linux系統(tǒng)登錄密碼?
首先自己運行密碼破解程序,并將破解結(jié)果與Linux系統(tǒng)的/etc/passwd密碼文件或/etc/shadow影子文件相比較,從中找出容易被黑客破解的密碼,其次對比較容易破解的密碼進行修改,讓其符合密碼復(fù)雜性原則,以增強黑客暴力破解的難度。
請問如何查看Linux系統(tǒng)下所有用戶以及它們的操作權(quán)限屬于哪個用戶組?
只要使用“cat /etc/pass wd |cut -f 1 -d :”字符串命令即可。
作為系統(tǒng)管理員,我們或許會在特定時候查看系統(tǒng)中當前有哪些用戶賬號正在活動,甚至想查詢特定用戶正在做什么,這該如何實現(xiàn)呢?
要想查看已經(jīng)登錄系統(tǒng)的用戶賬號名稱,以及每個用戶正在做什么事時,可以使用“W”命令來進行,該命令所使用的信息來源于“/var/run/utmp”文件,它輸出的內(nèi)容包括用戶名稱、用戶的機器名稱或tty號、遠程主機地址、用戶登錄系統(tǒng)的時間、空閑時間(作用不大)、附加到tty(終端)的進程所用的時間、當前進程所用時間、用戶當前正在使用的命令等。
如果想查看登錄用戶名稱及所啟動的進程信息時,可以使用“who”命令,該命令輸出的內(nèi)容有用戶名、tty號、時間日期、主機地址等。要是只想查看我們自己所使用的登錄名稱時,可以使用“whoami”命令來進行,該命令可以顯示當前登入的用戶名稱,以及當前所使用的tty信息。
某用戶在Linux系統(tǒng)中創(chuàng)建了一個用戶賬號“ccc”,對應(yīng)賬號的主目錄位于/home目錄下,后來該用戶刪除了“ccc”用戶賬號后,對應(yīng)賬號的目錄在home目錄下為什么仍然存在呀?
這可能是該用戶先前刪除“ccc”用戶賬號的時候,是沒有刪除完全,還留有原來用戶賬號的一些痕跡。要想徹底刪除一個用戶賬號的話,必須要使用“userdel -r