您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是Linux賬戶以及怎么確保信息安全”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
GNU/Linux 通過用戶和用戶組進行訪問控制,Linux 默認的訪問控制機制相對簡單直接。
用戶一般指使用計算機的人。計算機給每個用戶分配了用戶名,用戶使用這些名稱訪問計算機。除了人之外,一些系統服務也會建立賬戶,用于管理服務進程。
Linux默認會存在root用戶,root用戶擁有系統的最高權限,可以進行一切操作,而其他賬號只能擁有部分權限。
Linux有組的概念,使用者可以通過修改組的權限對更多成員進行訪問控制,每個用戶必須是一個組的成員,這個組成為主屬組,每個用戶只能擁有一個主屬組,但可以擁有多個從屬組。
Linux通過useradd命令新增用戶,通過userdel刪除用戶。UNIX中一切皆文件,所以最后所有的修改最終都會以文件的形式展示。你可以通過命令pwck –s檢查用戶配置文件(數據庫)的完整性。
Linux通過訪問權限控制用戶可以查看的內容,使用ls –l命令可以看到如下內容:
里面標識了每個文件的所屬用戶,所屬組,用戶訪問權限,組訪問權限,非所屬用戶和所屬組訪問權限,文件大小,最后修改時間的信息。訪問權限包括文件的讀(r)寫(w)執行(x)權限。控制好文件的訪問權限可以有效防止數據泄露。
有時候安裝一個新的軟件都會自動創建一個用戶和同名的組,這些軟件一般是為用戶提供服務的或者為網絡上的用戶提供Web服務、郵件服務等,這些軟件就運行在它的組里,這樣即便是軟件受到了外界的攻擊,也無法破壞非軟件所屬用戶之外用戶的文件。同樣它也會建立一個只屬于這個賬戶的目錄,防止別的用戶篡改。這些用戶一般都是不可登錄,并且不能使用密碼,杜絕了通過爆破密碼進入計算機。下表是一些用戶組和其影響文件的信息。
組 | 影響文件 | 作用 |
Adm | 類似 wheel 的管理器群組 | |
ftp | /srv/ftp/ | 訪問 FTP 服務器 |
Games | /var/games | 訪問一些游戲。 |
Log | 訪問 syslog-ng 創建的 /var/log/ 日志文件 | |
http | /srv/http/ | 訪問 HTTP 服務器文件 |
Sys | Right to administer printers in CUPS | |
systemd-journal | /var/log/journal/\* | 以只讀方式訪問系統日志,和 adm 和 wheel 不同 [1]. 不在此組中的用戶僅能訪問自己生成的信息。 |
Users | 標準用戶組 | |
Uucp | /dev/ttyS[0-9]+, /dev/tts/[0-9]+, /dev/ttyUSB[0-9]+, /dev/ttyACM[0-9]+ | 串口和 USB 設備,例如貓、手柄 RS-232/串口。 |
Wheel | 管理組,通常用于 sudo 和 su 命令權限。systemd 會允許非 root 的 wheel 組用戶啟動服務。 |
下面這些文件不建議手動編輯。用相關工具編輯更好,這樣可以避免文件錯誤。
文件 | 作用 |
/etc/shadow | 保存用戶安全信息 |
/etc/passwd | 用戶賬戶信息 |
/etc/gshadow | 保存組賬號的安全信息 |
/etc/group | 定義用戶所屬的組 |
/etc/sudoers | 可以運行 sudo 的用戶 |
/home/* | 主目錄 |
賬號的基本信息存儲在/etc/passwd。在這個文件中每個用戶的帳號信息存儲一行,帳號信息由七個字段組成,字段之間用冒號(":")分隔,從左至右分別表示為:帳號,密碼,用戶ID,組ID,用戶介紹, home目錄,默認shell。
1. name:password:UID:GID:GECOS:directory:shell
字段的詳細描述如下:
· 賬號:用戶名,不能為空,不能包含大寫字母,而且要符合標準的UNIX命名規則;
· 密碼:加密的用戶密碼,或者星號,但實際上這個位置通常為"x",這里有所特殊,后面會詳細介紹
· 用戶ID:每個用戶和組有一個對應的UID和GID(用戶ID和組ID)。一般情況,第一個非root用戶的默認UID是1000,后續創建的用戶UID也應大于1000,特定用戶的GID應該屬于指定的首要組,組的ID數值列在/etc/group文件里。
· 組ID:用戶的主要組ID
· 用戶介紹:可為空,通常為賬號使用者的信息,如使用者姓名,Email等,使用英文逗號(",")分割
· home目錄:用于登錄命令設置$HOME環境變量。某些服務的用戶主目錄設置為"/"是安全的,但不建議普通用戶設置為此目錄。
· 默認shell:登錄時運行的程序(如果為空,則使用 /bin/sh作為默認shell)。 如果設為不存在的執行(程序),用戶不能通過login登錄。
在新版Linux中使用shadow文件存儲密碼。passwd文件對所有人可讀,在里面存儲密碼(無論是否加密過)是很不安全的。在password字段,通常使用一個占位字符(x)代替。加密過的密碼儲存在/etc/shadow文件,該文件對普通用戶限制訪問。
示例:
1. jack:x:1001:100:Jack Smith,some comment here,,:/home/jack:/bin/bash
分解說明:用戶登錄名為jack,密碼保存在/etc/shadow,UID為1001,首要組的ID是100 (users組),全名Jack Smith并加了一些注釋,主目錄是/home/jack,使用Bash作為默認shell。
/etc/shadow是用戶存儲賬號安全信息的文件,其中包括密碼、賬號過期時間等設置,此文件是普通用戶無法進行任何操作,在一定程度上保證了安全。
/etc/shadow文件每行包含9個字段,同樣使用冒號(":")分隔,分別為登錄名,加密密碼,上次密碼更改時間,密碼不得更改天數,最長密碼使用天數,密碼警告期,密碼閑置期,賬戶到期時間,保留字段。下面詳細介紹每個字段的意義:
· 登錄名:與/etc/passwd的賬號相同,用于登錄使用;
· 加密密碼:經過crypt加密后的密碼;
· 上次密碼更改時間:最后一次修改密碼的時間,表示自1970年1月1日以來的天數。值0具有特殊含義,即用戶下次登錄系統時應更改其密碼。空字段表示密碼老化功能已禁用。
· 密碼不得更改天數:此字段表示在此天數之前不能修改密碼,是與上次密碼更改時間的間隔天數。空字段和值為0表示沒有任何時間都可以修改。
· 最長密碼使用天數:用戶經過此天數必須修改密碼。經過此天數后,密碼可能仍然有效。需要用戶在下次登錄時更改其密碼。空字段表示沒有最長密碼使用期限,沒有密碼警告期和密碼閑置期(請參閱下文)。如果最大密碼使用期限小于最小密碼使用期限,則用戶無法更改其密碼。
· 密碼警告期:在此期間提醒用戶修改密碼,空字段和值為0表示沒有密碼警告期。
· 密碼閑置期:密碼過期后的天數(請參見上面的最長密碼使用期限),在此期間仍應接受密碼(用戶應在下次登錄時更新其密碼)。密碼過期且經過了此過期時間后,將無法使用當前用戶的密碼登錄。用戶應聯系管理員。
· 賬戶到期時間:此字段表示自1970年1月1日以來的天數。請注意,賬戶有效期與密碼有效期不同。如果賬戶到期,則不允許用戶登錄。如果密碼到期,則不允許用戶使用其密碼登錄。空字段表示該賬戶永不過期。不應使用值0,因為它將被解釋為賬戶于1970年1月1日到期。
· 保留字段:該字段保留供將來使用,現在暫未啟用。
示例:
1. jack:$6$atIauuQ5$mh7ombrRsUxHxJ8uZGerdSUXSuBiOAzkfRgn2wrR69K5IbOANpHlBeY43BqmNkPy7Ho3XrGKu6CGIxc9nqjiS/:18303:1:10:7:7::
分解說明:登錄名為jack,加密后的密碼為$6$atIauuQ5$mh7ombrRsUxHxJ8uZGerdSUXSuBiOAzkfRgn2wrR69K5IbOANpHlBeY43BqmNkPy7Ho3XrGKu6CGIxc9nqjiS/,最后一次修改密碼時間為2020年02月11日,2020年02月12日前不能修改密碼,2020年02月21日后必須要修改密碼,從2020年02月14日起登錄系統會要求必須修改密碼,在2020年02月28日前密碼仍能使用,但登錄系統后必須修改密碼,否則在2020年02月28日后賬戶再也不能登錄,未設置賬戶到期時間。
Linux中每個用戶都必須有一個所屬組,并且只能有一個,但可以有多個從屬組。所屬組在passwd文件中的第四個字段設置,從屬組在group文件中設置。
與其他文件類似,group文件同樣是每個組占用一行,并使用冒號分割為4個字段。分別為組名,密碼,組ID,組中用戶。下面詳細介紹每個字段的意義:
· 組名:組名
· 密碼:與passwd文件類似,加密的組用戶密碼,或者星號,但實際這個位置通常為"x"有所特殊。
· 組ID:組的數字標識。
· 組中用戶:組內所有成員的用戶名,以逗號分隔。
Gshadow文件同樣是每個組占用一行,并使用冒號分割為4個字段。分別為組名,加密密碼,管理員,成員。
· 組名:必須是系統中已經存在的有效組;
· 加密密碼:經過crypt加密后的密碼;
· 管理員:必須是一個逗號分隔的用戶名列表。管理員可以更改組密碼和成員。管理員也有成員一樣的權限
· 成員:必須是一個逗號分隔的用戶名列表。成員可以免密碼訪問組。
每個用戶的登錄信息都會被記錄,無論是成功還是失敗,可以通過命令last命令查看登錄歷史,lastb命令查看登錄失敗的記錄。它們最終是通過讀取/var/log/wtmp和/var/log/btmp文件獲得的,這兩個文件都是二進制文件,里面存儲的是utmp(在Linux C頭文件<utmp.h>中)結構體。
下圖是部分通過lastb命令查到的嘗試登錄服務器的部分失敗記錄,其中發現一臺IP為39.105.202.21的主機在3月7日12點到14點之間多次次嘗試登錄主機,通過命令sudo lastb | grep "39.105.202.21" | wc -l可以查看其一共進行了2213次嘗試,可以推測其在嘗試暴力破解登錄密碼。
也可以同last命令查看這個IP是否成功登錄,如果有則說明用戶密碼一定被成功破解了,如果沒有不排除文件被篡改過。
在登錄輸入密碼時比較容易出現密碼泄露,傳統的加密方法,通過彩虹表可以很容易猜解密碼,即使是SHA256/SHA512也可以在互聯網上搜索到在線解密網站進行解密,這類加密方式只要密碼一樣加密結果必然雷同,所以密碼被計算一次,想要破解的時候再查表就可以了。如今,MD5/SHA1 哈希算法已經被攻破,即使在加密密碼前加上鹽以后也不再保險 。
而在Linux中使用crypt算法對密碼進行加密,這種加密方式即使每次都使用相同的密碼,最后加密的結果都是不同的。salt是[a-zA-Z0-9./]中隨機挑選的最多16位字符串,總共4096種的干擾方式,這就使得通過字典破解密碼變得比較困難,每次破解一個密碼都需要重新計算一遍。
Linux中的密碼按固定的格式保存:
$id$salt$encrypted
id是一個數字,表示以何種方式對密碼和salt生成隨機數
ID | Method |
---|---|
1 | MD5 |
2a | Blowfish (不在主線glibc中;在某些Linux發行版中添加) |
5 | SHA-256 (從glibc 2.7起) |
6 | SHA-512 (從glibc 2.7起) |
salt是由大小寫字母、數字、英文句號(.)和“/”組成的不超過16字節的隨機字符串。
encrypted:是由明文密碼和隨機salt通過組合,再通過散列函數后生成的密文,不同散列算法的密文長度如下:
算法 | 長度 |
---|---|
MD5 | 22字符 |
SHA-256 | 43字符 |
SHA-512 | 86字符 |
“什么是Linux賬戶以及怎么確保信息安全”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。