Python學習day003
linux許可權管理
useradd解析
useradd <新用戶名>,命令首先在/etc/passwd中添加一條記錄,在/etc/shadow中添加記錄,在/etc/group和/etc/gshadow里添加記錄,並在home里添加用戶文件,用戶文件里是一堆隱藏的配置文件,如:.bash_history, .bash_logout, .bash_profile。最後每個用戶進來都會新建一個郵箱,在/var/spool/mail/里新建一個用戶名的文件
老師最後演示添加相應的記錄和文件確實建了一個用戶
less命令
less命令的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less命令允許用戶向前或向後瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。
-e:文件內容顯示完畢後,自動退出;-f:強制顯示文件;-g:不加亮顯示搜索到的所有關鍵詞,僅顯示當前顯示的關鍵字,以提高顯示速度;-l:搜索時忽略大小寫的差異;-N:每一行行首顯示行號;-s:將連續多個空行壓縮成一行顯示;-S:在單行顯示較長的內容,而不換行顯示;-x<數字>:將TAB字元顯示為指定個數的空格字元。
less /etc/passwd
/etc/passwd
在linux操作系統中, /etc/passwd文件中的每個用戶都有一個對應的記錄行,記錄著這個用戶的一下基本屬性。該文件對所有用戶可讀。
而/etc/shadow文件正如他的名字一樣,他是passwd文件的一個影子,/etc/shadow文件中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生。但是/etc/shadow文件只有系統管理員才能夠進行修改和查看。
/etc/passwd文件介紹
首先,我們通過命令行cat /etc/passwd
進行查看/etc/passwd文件內容:來源: https://blog.csdn.net/y
aofeino1/article/details/54616440
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinlibuuid:x:100:101::/var/lib/libuuid:syslog:x:101:104::/home/syslog:/bin/falsemessagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/falsednsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/falseavahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/falsekernoops:x:106:65534:Kernel Oops Tracking Daemon,,,:/:/bin/falsertkit:x:107:114:RealtimeKit,,,:/proc:/bin/falsesaned:x:108:115::/home/saned:/bin/falsewhoopsie:x:109:116::/nonexistent:/bin/falsespeech-dispatcher:x:110:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/shavahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/falselightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/false
colord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/falsehplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/falsepulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/falseyaofei:x:1000:1000:ubuntu14.04,,,:/home/yaofei:/bin/bashsshd:x:116:65534::/var/run/sshd:/usr/sbin/nologinmysql:x:117:125:MySQL Server,,,:/nonexistent:/bin/false從文件中我們可以看到,/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為7個欄位,其格式和具體含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell- 用戶名(login_name):是代表用戶賬號的字元串。通常長度不超過8個字元,並且由大小寫字母和/或數字組成。登錄名中不能有冒號(:),因為冒號在這裡是分隔符。為了兼容起見,登錄名中最好不要包含點字元(.),並且不使用連字元(-)和加號(+)打頭。
- 口令(passwd):一些系統中,存放著加密後的用戶口令字。雖然這個欄位存放的只是用戶口令的加密串,不是明文,但是由於/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現在許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密後的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令欄位中只存放一個特殊的字元,例如「x」或者「*」作為密碼佔位符,表示設置了密碼。如果將密碼佔位符刪除,則無需登錄密碼即可登錄。
- 用戶標識號(UID):是一個整數,系統內部用它來標識用戶。一般情況下它與用戶名是一一對應的。如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。取值範圍是0-65535。0是超級用戶root的標識號,1-99由系統保留,作為管理賬號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。
- 組標識號(GID):欄位記錄的是用戶所屬的用戶組。它對應著/etc/group文件中的一條記錄。
- 注釋性描述(users):欄位記錄著用戶的一些個人情況,例如用戶的真實姓名、電話、地址等,這個欄位並沒有什麼實際的用途。在不同的Linux系統中,這個欄位的格式並沒有統一。在許多Linux系統中,這個欄位存放的是一段任意的注釋性描述文字,用做finger命令的輸出。
- 主目錄(home_directory):也就是用戶的起始工作目錄,它是用戶在登錄到系統之後所處的目錄。在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執行(搜索)許可權,其他用戶對此目錄的訪問許可權則根據具體情況設置。
- 登錄Shell(Shell):用戶登錄後,要啟動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登錄到系統後運行的命令解釋器或某個特定的程序,即Shell。Shell是用戶與Linux系統之間的介面。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系統管理員可以根據系統情況和用戶習慣為用戶指定某個Shell。如果不指定Shell,那麼系統使用sh為默認的登錄Shell,即這個欄位的值為/bin/sh。
普通用戶的ID是從500開始的。這個文件控制了賬戶的許可權,如果將普通用戶的ID改為0,就會獲得超級用戶的許可權。那如果改成別的數字會怎麼樣,比如1,2?
登錄時系統會讀/etc/passwd文件
為什麼linux里bin也是用戶?
/etc/shadow文件介紹
加密保存著每個用戶的密碼
/etc/group組文件
/etc/gshadow組密碼文件
tail -1 /etc/passwd查看文件最後一條記錄
id test
vim編輯器
了解useradd命令的常用選項:
a) –u:指定用戶的UID
b) –g:指定用戶所屬的群組
c) –d:指定用戶的家目錄
d) –c:指定用戶的備註信息
e) –s:指定用戶所用的shell
3) 靈活應用useradd命令的舉例:
a) 例如:在系統中新增一個fox(狐狸)用戶的命令:useradd fox
b) 例如:在系統中新增一個用戶user01,屬組為police以及uid為600的命令:
useradd –u 600 –g police user01
useradd -u 1000 -g lw -d /home/sb -c bigSB -s /bin/bash alex
結果
tail -1 /etc/passwd
alex:x:1000:503:bigSB:/home/sb: /bin/bash
usermod--------------user modify
usermod -d /home/sb alex只改變/etc/passwd里的內容,沒有在home新建文件
需要再自己建文件夾
ls -l(可簡寫為ll)
1.使用 ls -l 命令 執行結果如下(/var/log) :
第一列 : 「drwxr-x---」 表識文件的類型 和文件許可權 第二列: 「2」是純數字 ,表示 文件鏈接個數 第三列 : 「root」 表示文件的所有者 第四列:「adm」 表示為文件的所在群組 第五列:「4096」,表示為文件長度(大小) 第六列:「2013-08-07 11:03」,表示文件最後更新(修改)時間 第七列:「apache2」 表示文件的名稱
d :目錄(簡單來說就是文件夾) - :普通文件 l :鏈接(相當於windows里的超鏈接)s :socket p :named pipe b :block device 設備文件系統級別往硬碟里寫文件都是以塊為單位c :character device
r :含義為 「可讀」,用數字 4 表示 w:含義為 「可寫」用數字 2 表示 X(小X):含義為「可執行」用數字 1 表示 -:含義為「無許可權」用數字0 表示X (大X):含義為只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。 s:含義為 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式「u+s」設置文件的用 戶ID位,「g+s」設置組ID位。 t :含義為保存程序的文本到交換設備上
chmod a+x auth.log #含義為 給 auth.log 文件賦予所有用戶可執行許可權 chmod a-x auth.log #含義為 給 auth.log 文件去除所有用戶可執行許可權 chmod a=rwx auth.log #含義為 給 auth.log 文件賦予所有用戶讀寫執行許可權 chmod u=rwx auth.log #含義為 給 auth.log 文件賦予所屬用戶讀寫執行許可權 chmod u=--- auth.log
- chown 屬主.屬組 參數
- 只改屬主 chown 屬主 參數
- 只改屬組 chown .屬組 參數
遞歸修改 修改目錄下包含所有文件
- chown -R 屬主.屬組 參數
echo回顯命令,相當於print
執行文件的四種方式
- sh 文件路徑
- bash 文件路徑
- . 文件路徑
- ./文件名
文件的許可權可讀可寫可執行是怎麼樣的?正常理解,讀寫執行,但只作用與文件的內容
目錄的許可權可讀可寫可執行是怎麼樣的?作用於目錄的內容
- 可讀就是可以看到目錄裡面的內容,可以運行ls命令
- 可寫許可權就是其他人可以在文件夾內創建、刪除、重命名文件和目錄
- 目錄的可執行許可權就是進入,cd命令,重命名也需要執行許可權,因為需要進入
注意:下級目錄的新建許可權需要上級目錄的執行許可權
自身如果缺少對自己文件的可寫許可權,可以強制寫
推薦閱讀: