天天看點

Python學習第四天----Linux之使用者與使用者組權限

Linux的使用者及使用者組管理

    Linux是個多使用者多任務的分時作業系統,所有一個要使用系統資源的使用者都必須先向系統管理者申請一個賬号,然後以這個賬号的身份進入系統。使用者的賬号一方面能幫助系統管理者對使用系統的使用者進行跟蹤,并控制他們對系統資源的通路;另一方面也能幫助使用者組織檔案,并為使用者提供安全性保護。每個使用者賬号都擁有一個惟一的使用者名和使用者密碼。使用者在登入時鍵入正确的使用者名和密碼後,才能進入系統和自己的主目錄。

添加使用者指令示例:useradd  test_user   即可建立使用者test_user

用法:useradd [選項] 登入

      useradd -D

      useradd -D [選項]

選項:

  -d, --home-dir HOME_DIR       新賬戶的主目錄

  -D, --defaults                顯示或更改預設的 useradd 配置

  -g, --gid GROUP               新賬戶主組的名稱或 ID

  -G, --groups GROUPS   新賬戶的附加組清單

  -h, --help                    顯示此幫助資訊并推出

  -m, --create-home     建立使用者的主目錄

  -M, --no-create-home          不建立使用者的主目錄

  -N, --no-user-group   不建立同名的組

  -p, --password PASSWORD               加密後的新賬戶密碼

  -r, --system                  建立一個系統賬戶

  -R, --root CHROOT_DIR         chroot 到的目錄

  -s, --shell SHELL             新賬戶的登入 shell

  -u, --uid UID                 新賬戶的使用者 ID

  -U, --user-group              建立與使用者同名的組

  -Z, --selinux-user SEUSER     為 SELinux 使用者映射使用指定 SEUSER

為建立使用者設定密碼:passwd test_user

添加使用者組:groupadd test_user

修改使用者資訊:usermod

修改組資訊:groupmod

删除使用者:userdel -r test_user

删除組:groupdel 組名

更改檔案或目錄所屬:chown -R 所屬主:所屬組 檔案或目錄

更改檔案或目錄權限:chmod -R 777/a+x/g-w/o=-  檔案或者目錄

作業一:

1) 建立使用者natasha,uid為1000,gid為555,備注資訊為“master”

    [root@bogon /]# useradd -u 1000 -g 555 -c master natasha

2)修改natasha使用者的家目錄為/Natasha

    [root@bogon /]# mkdir /Natasha

    [root@bogon /]# usermod -d /Natasha

    [root@bogon /]# usermod -d /Natasha natasha

3) 檢視使用者資訊配置檔案的最後一行

    [root@bogon /]# tail -1 /etc/passwd

4) 為natasha使用者設定密碼“123”

    [root@bogon /]# passwd natasha

    更改使用者 natasha 的密碼 。

    新的 密碼:

    無效的密碼: 密碼少于 8 個字元

    重新輸入新的 密碼:

    passwd:所有的身份驗證令牌已經成功更新。

    [root@bogon /]# 

5) 檢視使用者密碼配置檔案的最後一行

    [root@bogon /]# tail -1 /etc/shadow

    natasha:$6$wxwWQn0F$aR3nYxYj1KBGZh6z0zwudpCUF6sY7v45mZ7vq4Ji16ZlDBcssMNlhCpXoNzO4OZQE7aDt64Oz571xMbMJ05Tx0:17240:0:999    99:7:::

6) 将natasha使用者賬戶鎖定

    [root@bogon /]# usermod -L natasha

7) 将natasha使用者賬戶解鎖

    [root@bogon /]# usermod -U natasha

8) 建立組police,gid為999

    [root@bogon /]# groupadd -g 999 police

    注:此處gid為999的是另外一個組名,将其修改為其他後建立此組,修改檔案為/etc/group

9) 檢視組配置檔案的最後一行

    [root@bogon /]# tail -1 /etc/group

    police:x:999:

10) 将natasha使用者加入police組

    [root@bogon /]# usermod  -G police natasha

    [root@bogon /]# id natasha

    uid=1000(natasha) gid=555(natasha) 組=555(natasha),999(police)

11) 修改police組的組名為jingcha

    [root@bogon /]# groupmod -n jingcha police

12) 删除natasha使用者,連家目錄和郵箱一起删除

    [root@bogon /]# userdel -rf natasha

13) 删除jingcha組

    [root@bogon /]# groupdel jingcha

作業二:

1) 在使用者的主目錄下建立目錄test,進入test建立空檔案file1

    [root@bogon ~]# cd ~

    [root@bogon ~]# mkdir test

    [root@bogon ~]# cd test

    [root@bogon test]# touch file1

    [root@bogon test]# 

2)以長格式形式顯示檔案資訊,注意檔案的權限和所屬使用者群組

    [root@bogon test]# ls -l file1

    -rw-r--r--. 1 root root 0 3月  15 16:13 file1

3)為檔案file1設定權限,使其他使用者可以對此檔案進行寫操作。

    [root@bogon test]# chmod o+w file1

4)檢視設定結果,

    [root@bogon test]# ll

    總用量 0

    -rw-r--rw-. 1 root root 0 3月  15 16:13 file1

5)取消同組使用者對檔案file1的讀取權限,并檢視設定結果。

    [root@bogon test]# chmod g-r file1

    -rw----rw-. 1 root root 0 3月  15 16:13 file1

6)用數字表示法為檔案file設定權限,所有者可讀、可寫、可執行,所屬組使用者和其他使用者隻具有讀和執行的權限。設定完成後檢視設定結果。

    [root@bogon test]# chmod 755 file1

    -rwxr-xr-x. 1 root root 0 3月  15 16:13 file1

7)用數字形式更改檔案file1的權限,使所有者隻能讀取此檔案。其他任何使用者都沒有權限。檢視設定結果。

    [root@bogon test]# chmod 400 file1

    -r--------. 1 root root 0 3月  15 16:13 file1

8)回到上層目錄,檢視test的權限

    [root@bogon ~]# ls -dl test

    drwxr-xr-x. 2 root root 19 3月  15 16:13 test

9)為其他使用者添加對此目錄的寫權限

    [root@bogon ~]# chmod o+w test

    drwxr-xrwx. 2 root root 19 3月  15 16:13 test

    [root@bogon ~]# 

作業三:

以操作檔案的方式,建立一個使用者alex

[root@bogon ~]# mkdir /home/alex                      #建立家目錄

[root@bogon ~]# cp -r /etc/skel/.[!.]* /home/alex     #拷貝預設初始檔案

[root@bogon ~]# tail -1 /etc/passwd

oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin

[root@bogon ~]# echo "alex:x:1005:1005::/home/alex:/bin/bash" >>/etc/passwd  #以追加的方式在使用者檔案末尾增加賬号資訊

[root@bogon ~]# tail -1 /etc/passwd                        

alex:x:1005:1005::/home/alex:/bin/bash

[root@bogon ~]# vim /etc/shadow                         #修改賬号密碼檔案

檔案末尾追加alex:!!:17240:0:99999:7:::然後退出儲存

[root@bogon ~]# vim /etc/group                          #修改組檔案

檔案末尾追加alex:x:1007:然後儲存退出

[root@bogon ~]# vim /etc/gshadow                        #修改組密碼

檔案末尾追加alex:!::然後儲存退出

[root@bogon ~]# chown -R alex:alex /home/alex           #改變alex家目錄的所屬主和所屬組

[root@bogon ~]# touch /var/spool/mail/alex              #為新賬号建立郵箱

[root@bogon ~]# chown -R alex:mail /var/spool/mail/alex #修改alex的郵箱所屬主是alex組是mail

作業四:

1) 建立目錄/test/dir,屬主為tom,數組為group1,/test目錄的權限為777

    [root@bogon ~]# mkdir -p /test/dir

    [root@bogon ~]# groupadd group1

    [root@bogon ~]# useradd tom

    [root@bogon ~]# chown -R tom:group1 /test/dir

    [root@bogon ~]# ls -al /test/dir

    drwxr-xr-x. 2 tom  group1  6 3月  15 16:44 .

    drwxr-xr-x. 3 root root   17 3月  15 16:44 ..

    [root@bogon ~]# ls -al /test

    drwxr-xr-x.  3 root root    17 3月  15 16:44 .

    dr-xr-xr-x. 20 root root   277 3月  15 16:44 ..

    drwxr-xr-x.  2 tom  group1   6 3月  15 16:44 dir

    [root@bogon ~]# chmod 777 /test

    [root@bogon ~]# ls -dl /test

    drwxrwxrwx. 3 root root 17 3月  15 16:44 /test

2) 建立使用者jack,切換到jack使用者下,驗證jack使用者對dir目錄的rwx權限(開啟另外一個終端,依次修改dir目錄的others權限)

    [jack@bogon test]$ ls -dl dir

    drwxr-xr-x. 2 tom group1 6 3月  15 16:44 dir

3)将jack加入group1組,驗證jack使用者對dir目錄的rwx權限(開啟另外一個終端,依次修改dir目錄的group權限)

    [root@bogon ~]# usermod -a -G group1 jack

    [root@bogon ~]# id jack

    uid=1008(jack) gid=1008(jack) 組=1008(jack),10000(group1)

    [root@bogon ~]# su - jack

    上一次登入:三 3月 15 16:49:55 CST 2017pts/0 上

    [jack@bogon ~]$ cd /test

    [jack@bogon test]$ ls

    dir

    [jack@bogon test]$ cd dir

    [jack@bogon dir]$ ls

    [jack@bogon dir]$ 

4)切換到tom使用者,驗證tom使用者對dir目錄的rwx權限(開啟另外一個終端,依次修改dir目錄的user權限)

    [root@bogon ~]# su - tom

    Attempting to create directory /home/tom/perl5

    [tom@bogon ~]$ cd /test

    [tom@bogon test]$ ls

    [tom@bogon test]$ cd dir

    [tom@bogon dir]$ ls 

    [tom@bogon dir]$ 

5)在dir目錄内建立檔案tom.txt,屬主為tom,屬組為group1,/test目錄的權限為777

    [root@bogon ~]# cd /test/dir

    [root@bogon dir]# ls

    tom.txt

    [root@bogon dir]# ls -l

    -rw-rw-r--. 1 tom tom 0 3月  15 17:01 tom.txt

    [root@bogon dir]# chown tom:group1 tom.txt 

    -rw-rw-r--. 1 tom group1 0 3月  15 17:01 tom.txt

    [root@bogon dir]# 

6)建立使用者rose,切換到rose使用者下,驗證rose使用者對tom.txt的rwx權限(開啟另外一個終端,依次修改tom.txt的others權限來配合驗證過程)

[root@bogon /]# useradd rose

[root@bogon /]# passwd rose

更改使用者 rose 的密碼 。

新的 密碼:

無效的密碼: 密碼少于 8 個字元

重新輸入新的 密碼:

抱歉,密碼不比對。

passwd:所有的身份驗證令牌已經成功更新。

[jack@bogon dir]$ su - rose

密碼:

最後一次失敗的登入:三 3月 15 11:30:40 CST 2017tty2 上

最有一次成功登入後有 1 次失敗的登入嘗試。

Attempting to create directory /home/rose/perl5

[rose@bogon ~]$ 

[rose@bogon ~]$ cd /test/dir

[rose@bogon dir]$ ls

tom.txt

[rose@bogon dir]$ cat tom.txt 

[rose@bogon dir]$ id rose

uid=1009(rose) gid=1009(rose) 組=1009(rose)

this is tom write

[rose@bogon dir]$ 

[root@bogon /]# chmod o+w /test/dir/tom.txt 

[rose@bogon dir]$ vim tom.txt 

this is rose write

7)将rose加入group1組,在rose使用者下,驗證rose使用者對tom.txt的rwx權限(開啟另外一個終端,依次修改tom.txt的group1權限來配合驗證過程)

[root@bogon /]# usermod -a -G group1 rose

[root@bogon /]# chmod 600 /test/dir/tom.txt

cat: tom.txt: 權限不夠

8)切換到tom使用者,驗證tom使用者對tom.txt的rwx權限(開啟另外一個終端,依次修改tom.txt的user權限來配合驗證過程)

[tom@bogon ~]$ cd /test/dir

[tom@bogon dir]$ ls

[tom@bogon dir]$ cat tom.txt 

[tom@bogon dir]$ vim tom.txt 

[tom@bogon dir]$ cat t

cat: t: 沒有那個檔案或目錄

test over

[tom@bogon dir]$ 

[root@bogon /]# chmod 000 /test/dir/tom.txt

總結:至此關于檔案和目錄的權限操作步驟已經練習完成,之是以說Linux是一個安全性較高的系統,就是因為Linux對系統檔案的權限管理比較完善,在linux系統中一切皆檔案,目錄也可以看成是一個檔案,跟檔案一樣,也可以修改其所屬主和所屬組的讀寫以及執行權限。關于檔案及目錄權限的管理在今後的生産環境中會經常遇到,希望大家細心處理不要弄錯了!

本文轉自 AltBoy 51CTO部落格,原文連結:http://blog.51cto.com/altboy/1906952