Python學習day003

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/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

backup:x:34:34:backup:/var/backups:/usr/sbin/nologin

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin

gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

libuuid:x:100:101::/var/lib/libuuid:

syslog:x:101:104::/home/syslog:/bin/false

messagebus:x:102:106::/var/run/dbus:/bin/false

usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false

dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false

avahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false

kernoops:x:106:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false

rtkit:x:107:114:RealtimeKit,,,:/proc:/bin/false

saned:x:108:115::/home/saned:/bin/false

whoopsie:x:109:116::/nonexistent:/bin/false

speech-dispatcher:x:110:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh

avahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false

lightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/false

colord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/false

hplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/false

pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false

yaofei:x:1000:1000:ubuntu14.04,,,:/home/yaofei:/bin/bash

sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin

mysql: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

drwxr-xr-x 2 root root 4096 2013-08-07 09:43 apparmor

drwxr-xr-x 2 root root 4096 2013-08-07 09:44 apt

-rw-r----- 1 syslog adm 16802 2013-08-07 14:30 auth.log

-rw-r--r-- 1 root root 642 2013-08-07 11:03 boot.log

drwxr-xr-x 2 root root 4096 2013-08-06 18:34 ConsoleKit

drwxr-xr-x 2 root root 4096 2013-08-07 09:44 cups

-rw-r----- 1 syslog adm 10824 2013-08-07 11:08 daemon.log

drwxr-xr-x 2 root root 4096 2013-08-07 09:45 dbconfig-common

-rw-r----- 1 syslog adm 21582 2013-08-07 11:03 debug

drwxr-xr-x 2 root root 4096 2013-08-07 09:45 dist-upgrade

-rw-r--r-- 1 root adm 59891 2013-08-07 11:03 dmesg

展示結果大體分為七列(部分) :

以第一條記錄為例

第一列 : 「drwxr-x---」 表識文件的類型 和文件許可權 第二列: 「2」是純數字 ,表示 文件鏈接個數 第三列 : 「root」 表示文件的所有者 第四列:「adm」 表示為文件的所在群組 第五列:「4096」,表示為文件長度(大小) 第六列:「2013-08-07 11:03」,表示文件最後更新(修改)時間 第七列:「apache2」 表示文件的名稱

詳見下圖:

2.文件類型和文件許可權 ,即為列表第一列內容:(以第一條記錄為例 )

1|234|567|8910

1:文件類型

2-4:所有者許可權

5-7:組許可權

8-10:其他人許可權

「drwxr-x---」 含義:有兩部分組成 ,一部分是第一列即為「d」 ,表示文件類型(目錄或文件夾),另一部分是「rwxr-x---」 表示文件許可權,許可權有分為三段:即為 「 rwx 」,「 r-x 」和 「 --- 」分別表示 ,文件所有者的許可權,文件所屬組的許可權 和其他用戶對文件的許可權。

有趣的是root用戶擁有所有許可權,不在限制範圍內

(1)文件類型,大體分為如下幾類 :

d :目錄(簡單來說就是文件夾) - :普通文件 l :鏈接(相當於windows里的超鏈接)s :socket p :named pipe b :block device 設備文件系統級別往硬碟里寫文件都是以塊為單位c :character device

(2)文件許可權 :

r :含義為 「可讀」,用數字 4 表示 w:含義為 「可寫」用數字 2 表示 X(小X):含義為「可執行」用數字 1 表示 -:含義為「無許可權」用數字0 表示X (大X):含義為只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。 s:含義為 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式「u+s」設置文件的用 戶ID位,「g+s」設置組ID位。 t :含義為保存程序的文本到交換設備上

3.文件許可權的更改 :

使用命令 :chmod 文件許可權 文件名稱 [-R]

命令兩種用法 :

(1)直接給文件賦相應的許可權即為 :

所屬用戶u,組用戶g,其他用戶o,所有用戶a

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

(2)使用數字方式代替許可權 :

例如 :0

chmod 777 auth.log #含義為給auth.log文件賦予任何可讀,可寫,可執行許可權

數字含義詳見如下列表:

4.文件所有者的更改 :

修改所屬,修改屬組

chown

  • chown 屬主.屬組 參數

  • 只改屬主 chown 屬主 參數

  • 只改屬組 chown .屬組 參數

遞歸修改 修改目錄下包含所有文件

  • chown -R 屬主.屬組 參數

命令 chown 用戶名 文件,例如 :

chmod mysql auth.log #含義為 把 文件 auth.log 的所有者更改為 mysql

5.文件所在組的更改

命令 chgrp [-R] 群組名稱 文件名稱

例如 :

chgrp -R mysql apache2 #含義為 ,把 目錄apache2 的所在組更改為mysql

來源: blog.csdn.net/jenminzha

touch命令新建文件

echo回顯命令,相當於print

執行文件的四種方式

  • sh 文件路徑

  • bash 文件路徑

  • . 文件路徑

  • ./文件名

文件的許可權可讀可寫可執行是怎麼樣的?正常理解,讀寫執行,但只作用與文件的內容

目錄的許可權可讀可寫可執行是怎麼樣的?作用於目錄的內容

  • 可讀就是可以看到目錄裡面的內容,可以運行ls命令

  • 可寫許可權就是其他人可以在文件夾內創建、刪除、重命名文件和目錄

  • 目錄的可執行許可權就是進入,cd命令,重命名也需要執行許可權,因為需要進入

注意:下級目錄的新建許可權需要上級目錄的執行許可權

自身如果缺少對自己文件的可寫許可權,可以強制寫


推薦閱讀:

TAG:Python | Python編程 | Python入門 |