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