管理用戶和組賬號;管理目錄和文件的屬性
二、管理目錄和文件的屬性
一、管理用戶和組賬號
1、概述
Linux中通過用戶賬戶來設置資源的訪問控制
用戶賬號類型:
超級用戶:root uid為0
普通用戶: uid從500開始
程序用戶;維護一個程序/服務的正常運行,通常不允許登錄到系統中
組賬號類型:
基本組(私有組):
附加組(公共組):
2、用戶賬號的管理
a、用戶賬號
存放在/etc/passwd中,每一行表示一個用戶賬號。
每一行有7個字段組成,每一個字段的含義是:
第一段:用戶名
第二段:密碼占位符
第三段:UID編號
第四段:GID編號
第五段:用戶備註
第六段:用戶宿主目錄
第七段:登錄的shell 若為/sbin/nologin則不能登錄
創建賬號: 格式:useradd [選項] 用戶名稱 選項: -d:指定宿主目錄,缺省默認為/home/用戶名 例如:useradd -d /ftphome/bob bob -u:指定UID標記號 -g:指定用戶的基本組名或GID號 -G:指定用戶的附加組名或GID號 -M:不為用戶建立初始化宿主目錄 -e:指定賬戶失效時間 -s:指定用戶登錄的shell
[root@CentOS6-node1 ~]# 創建用戶mike,基本組為mike,附加組為ftpuser。宿主目錄為/ftphome/mike,不允許登錄當前服器
分析:要想創建mike,則必須先創建mike組及ftpuser組同時必須保證/ftphome目錄存在
[root@CentOS6-node1 ~]# groupadd mike
[root@CentOS6-node1 ~]# groupadd ftpuser
[root@CentOS6-node1 ~]# mkdir /ftphome
[root@CentOS6-node1 ~]# useradd -u 510 -g mike -G ftpuser -d /ftphome/mike -s /sbin/nologin mike
bob:x:500:500::/home/bob:/bin/bash
mike:x:510:501::/ftphome/mike:/sbin/nologin
[root@CentOS6-node1 ~]# su - mike //驗證mike無法登陸服務器
This account is currently not available.
[root@CentOS6-node1 ~]# su - bob
[bob@CentOS6-node1 ~]$ whoami
bob
[bob@CentOS6-node1 ~]$ exit
[root@CentOS6-node1 ~]#
每一個普通用戶的宿主目錄下都會有一些隱藏文件(初始配置文件),這些文件都來自於/etc/skel
~/.bash_profile: 用戶登錄時執行
~/.bashrc:用戶切換shell時執行
~/.bash_logout:用戶退出時執行
b、用戶賬號的密碼
存放在/etc/shadow中,每一行表示一個用戶賬號的密碼。
每一行有9個字段組成,每一個字段的含義是:
第一段:
第二段:
第三段:
……
第九段:
創建賬號:
格式:passwd [選項] 用戶名稱
選項:
-d:清空用戶密碼
例如:useradd -d bob
-l:鎖定用戶賬戶
-u:解鎖用戶賬戶
-S:查看用戶狀態
======================================================創建用戶並設置密碼==============================================================================
[root@CentOS6-node1 ~]# useradd tom
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:!!:17290:0:99999:7:::
[root@CentOS6-node1 ~]# passwd tom
更改用戶 tom 的密碼 。
新的 密碼:
無效的密碼: 過於簡單化/系統化
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7:::
[root@CentOS6-node1 ~]#
====================================================鎖定用戶tom=======================================================================================
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7:::
[root@CentOS6-node1 ~]# passwd -l tom
鎖定用戶 tom 的密碼 。
passwd: 操作成功
[root@CentOS6-node1 ~]# passwd -S tom
tom LK 2017-05-04 0 99999 7 -1 (密碼已被鎖定。)
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:!!$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7::: //密碼字段前加有兩個!則為密碼鎖定
====================================================解鎖用戶tom=======================================================================================
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:!!$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7:::
[root@CentOS6-node1 ~]# passwd -S tom
tom LK 2017-05-04 0 99999 7 -1 (密碼已被鎖定。)
[root@CentOS6-node1 ~]# passwd -u tom
解鎖用戶 tom 的密碼 。
passwd: 操作成功
[root@CentOS6-node1 ~]# passwd -S tom
tom PS 2017-05-04 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7:::
====================================================清空用戶tom的密碼===================================================================================
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$EwXMoNdu$cmZR2/jhqtV3MfetcYJt7S1vKBe05O5Wtw49Su/lQ02U/0olG7wZi3.JBe.cCnRjuI8MLTqEwcTB.80UFKIAb/:17290:0:99999:7:::
[root@CentOS6-node1 ~]# passwd -d tom
清除用戶的密碼 tom。
passwd: 操作成功
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom::17290:0:99999:7:::
c、修改用戶賬號的屬性
格式:usermod [選項] 用戶賬戶名稱
選項:
-l:更改用戶賬戶的登錄名字
-L:鎖定用戶賬戶
-U:解鎖用戶賬戶
-d:
-e:
-g、-G、-s、-u
修改賬戶tom的屬性,使其不可以登錄服務器;賬戶有效到2017-07-01,密碼最少使用3天,密碼最長使用30天,密碼提5天警告
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/bin/bash
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom::17290:0:99999:7:::
[root@CentOS6-node1 ~]# usermo
usermod usermount
[root@CentOS6-node1 ~]# usermod -s /sbin/nologin tom //修改tom的登錄shell
[root@CentOS6-node1 ~]# tail -1 /etc/passwd
tom:x:512:512::/home/tom:/sbin/nologin
[root@CentOS6-node1 ~]# su - tom
This account is currently not available.
[root@CentOS6-node1 ~]# usermod -e 2017-07-01 tom //修改tom的失效時間
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom::17290:0:99999:7::17348:
[root@CentOS6-node1 ~]# chage -m 3 -M 30 -W 5 tom //-m 指定密碼最少使用天數 -M 指定密碼最長使用天數 -W 提前多少天發出密碼過期警告
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom::17290:3:30:5::17348:
[root@CentOS6-node1 ~]#
=======================================================鎖定、解鎖tom=================================================================================================
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$x7rdnfHv$W4nPwBYnt1rZfMEPFDTaAP0091LztxD7HJeGMPp9nvkd/3YcLyw5CfMAVFSQRNgmn.matyuYO44l3NJCzDNqu.:17290:3:30:5::17348:
[root@CentOS6-node1 ~]# usermod -L tom
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:!$6$x7rdnfHv$W4nPwBYnt1rZfMEPFDTaAP0091LztxD7HJeGMPp9nvkd/3YcLyw5CfMAVFSQRNgmn.matyuYO44l3NJCzDNqu.:17290:3:30:5::17348: //在密碼字段前有一個!則為密碼鎖定
[root@CentOS6-node1 ~]# usermod -U tom
[root@CentOS6-node1 ~]# tail -1 /etc/shadow
tom:$6$x7rdnfHv$W4nPwBYnt1rZfMEPFDTaAP0091LztxD7HJeGMPp9nvkd/3YcLyw5CfMAVFSQRNgmn.matyuYO44l3NJCzDNqu.:17290:3:30:5::17348:
d、刪除用戶:
格式:userdel [-r] 用戶賬號名稱
userdel bob:刪除用戶賬戶
userdel -r bob:刪除用戶的同時刪除用戶的宿主目錄
[root@CentOS6-node1 ~]# tail -2 /etc/passwd
jerry:x:511:511::/home/jerry:/bin/bash
tom:x:512:512::/home/tom:/sbin/nologin
[root@CentOS6-node1 ~]# ls /home/
bob jerry tom
[root@CentOS6-node1 ~]# userdel tom
[root@CentOS6-node1 ~]# tail -2 /etc/passwd
mike:x:510:501::/ftphome/mike:/sbin/nologin
jerry:x:511:511::/home/jerry:/bin/bash
[root@CentOS6-node1 ~]# ls /home/
bob jerry tom
[root@CentOS6-node1 ~]# userdel -r jerry
[root@CentOS6-node1 ~]# tail -2 /etc/passwd
bob:x:500:500::/home/bob:/bin/bash
mike:x:510:501::/ftphome/mike:/sbin/nologin
[root@CentOS6-node1 ~]# ls /home/
bob tom
[root@CentOS6-node1 ~]#
e、passwd與usermod鎖定及解鎖有何區別?
3、組賬號的管理
組賬戶存放於/etc/group,每一行表示一個組的信息:
組賬號密碼存放於/etc/gshadow 中。
a、創建組
格式:groupadd [-g GID] 組名稱
groupadd -g 510 test(含義)
創建組TEST並指明id為1200
[root@CentOS6-node1 ~]# groupadd -g 1200 TEST
[root@CentOS6-node1 ~]# tail -1 /etc/group
TEST:x:1200:
b、向組中添加、刪除成員
格式:gpasswd [選項] 組名稱
選項:
-a:向組內添加一個用戶
例如:gpass -a bob test:(含義)
-d:從組內刪除一個用戶成員
-M:定義組成員列表(添加多個用戶),以逗號隔開
創建用戶test1、test2、test3,並將這幾個用戶添加到TEST組中
[root@CentOS6-node1 ~]# useradd test1
[root@CentOS6-node1 ~]# useradd test2
[root@CentOS6-node1 ~]# useradd test3
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:
[root@CentOS6-node1 ~]# gpasswd -a test1 TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:test1
[root@CentOS6-node1 ~]# gpasswd -a test2 TEST
Adding user test2 to group TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:test1,test2
[root@CentOS6-node1 ~]# gpasswd -d test1 TEST
Removing user test1 from group TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:test2
[root@CentOS6-node1 ~]# gpasswd -M test1,test3 TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:test1,test3
[root@CentOS6-node1 ~]# gpasswd -a test2 TEST
Adding user test2 to group TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
TEST:x:1200:test1,test3,test2
[root@CentOS6-node1 ~]#
c、刪除組
groupdel 組名稱
例如:groupdel test (含義)
[root@CentOS6-node1 ~]# groupdel TEST
[root@CentOS6-node1 ~]# grep "TEST" /etc/group
4、查看用戶賬號信息
id:查詢用戶標識
groups:查詢客戶所屬的組
finger:查詢賬戶的詳細信息
w:查詢已經登錄到主機的用戶信息
users:
who:查詢已經登錄到主機的用戶
[root@CentOS6-node1 ~]# id test1
uid=511(test1) gid=511(test1) 組=511(test1)
[root@CentOS6-node1 ~]# groups bob
bob : bob
[root@CentOS6-node1 ~]# groups mike
mike : mike ftpuser
[root@CentOS6-node1 ~]# finger
-bash: finger: command not found
[root@CentOS6-node1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_centos6node1-lv_root 38776280 5757136 31049380 16% /
tmpfs 506176 76 506100 1% /dev/shm
/dev/sda1 495844 34897 435347 8% /boot
/dev/sr0 4363088 4363088 0 100% /media/CentOS_6.5_Final
[root@CentOS6-node1 ~]# rpm -ivh /media/CentOS_6.5_Final/Packages/fin
findutils-4.4.2-6.el6.x86_64.rpm finger-server-0.17-39.el6.x86_64.rpm
finger-0.17-39.el6.x86_64.rpm
[root@CentOS6-node1 ~]# rpm -ivh /media/CentOS_6.5_Final/Packages/finger-0.17-39.el6.x86_64.rpm
warning: /media/CentOS_6.5_Final/Packages/finger-0.17-39.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:finger ########################################### [100%]
[root@CentOS6-node1 ~]# finger mike
Login: mike Name:
Directory: /ftphome/mike Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.
[root@CentOS6-node1 ~]#
[root@CentOS6-node1 ~]# users
root root root root root
[root@CentOS6-node1 ~]# who
root tty1 2017-05-04 08:22
root pts/0 2017-05-04 08:47 (192.168.100.15)
root pts/1 2017-05-04 08:47 (192.168.100.15)
root tty7 2017-05-04 11:04 (:0)
root pts/2 2017-05-04 11:04 (:0.0)
[root@CentOS6-node1 ~]# w
11:06:53 up 2:45, 5 users, load average: 0.19, 0.21, 0.09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 08:22 3:04 0.06s 0.06s -bash
root pts/0 192.168.100.15 08:47 0.00s 0.31s 0.05s w
root pts/1 192.168.100.15 08:47 13:13 0.02s 0.02s -bash
root tty7 :0 11:04 2:44m 2.24s 2.24s /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /v
root pts/2 :0.0 11:04 2:25 0.00s 0.00s /bin/bash
二、管理目錄和文件的屬性
1、文件或目錄的屬性
a、權限
r:可讀
w:可寫
x:可執行
b、歸屬
屬主:默認為文件或目錄的創建者(所屬者)
屬組:所屬組
其他:除屬組和屬主外的用戶(其他人)
2、設置文件或目錄的歸屬及權限
a、設置權限
格式1: chmod [ugoa][+-=][rwx] 文件或目錄
格式2: chmod nnn 文件或目錄 (最常用)
例如:
chmod u+w /root/test.txt
chmod g-w /root/test.txt
chmod 754 /root/test.txt
格式一:
[root@CentOS6-node1 ~]# echo "aaaaaaaaaaaaaaaa" >> aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-r--r--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# root用戶及root組的成員對aa.txt都有讀寫執行權限^C
[root@CentOS6-node1 ~]# chmod u+x aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rwxr--r--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chmod g=rwx aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rwxrwxr--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chmod g-x aa.txt
[root@CentOS6-node1 ~]# chmod u-x aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-rw-r--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]#
格式二:
[root@CentOS6-node1 ~]# chmod 644 aa.txt
[root@CentOS6-node1 ~]#
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-r--r--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chmod 777 aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rwxrwxrwx. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chmod 654 aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-r-xr--. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chmod 600 aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-------. 1 root root 17 5月 4 11:24 aa.txt
b、設置歸屬
格式:
chown 屬主:屬組 文件或目錄
chown 屬主 文件或目錄
chown :屬組 文件或目錄
例如:
……
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-------. 1 root root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# 將aa.txt文件的所有者改為mike,屬組改為ftpuser^C
[root@CentOS6-node1 ~]# chown mike aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-------. 1 mike root 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chown :ftpuser aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-------. 1 mike ftpuser 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]# chown mike:ftpuser aa.txt
[root@CentOS6-node1 ~]# ls -l aa.txt
-rw-------. 1 mike ftpuser 17 5月 4 11:24 aa.txt
[root@CentOS6-node1 ~]#
管理用戶和組賬號;管理目錄和文件的屬性