上一節,將的那內容有些復雜,如果是新手,又不想一下子對用戶管理了解的那么深入,歡迎閱讀本節內容。
ps:其實,對前面兩節內容做了大的調整,在方便自己查閱的同時,也希望方便別人的閱讀。呵呵!
用戶組權限實例
先直接拋一個需求出來吧!先步驟完成了,后面再分析。
授權用戶 chongshi 和 bugmaster 對目錄/cnblogs有寫權限
創建目錄
[root@localhost hzh]# mkdir /cnblogs 創建目錄
[root@bogon hzh]# ls -ld /cnblogs 查看目錄
drwxr-xr-x 2 root root 4096 5月 10 23:20 /cnblogs
添加兩個用戶並設置密碼
[root@bogon hzh]# useradd chongshi 創建用戶
[root@bogon hzh]# passwd chongshi 設置密碼
Changing password for user chongshi.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@bogon hzh]# useradd bugmaster
[root@bogon hzh]# passwd bugmaster
Changing password for user bugmaster.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
添加一個組
[root@bogon hzh]# groupadd testing 創建組
[root@bogon hzh]# grep testing /etc/group 查看組信息
testing:x:506:
將用戶添加到組中
[root@bogon hzh]# usermod -G testing chongshi 用戶chongshi添加到組testing
[root@bogon hzh]# gpasswd -a bugmaster testing 用戶bugmaster添加到組testing
Adding user bugmaster to group testing
注意:上面兩種方式不同,但作用是一樣的,都是將用戶添加到組中。
[root@bogon hzh]# grep testing /etc/group 查看組中成員
testing:x:506:chongshi,bugmaster
我們知道,組有什么樣的權限,組中成員也有什么樣的權限。
設置cnblogs目錄的所屬組為testing
[root@bogon hzh]# chgrp testing /cnblogs 將/cnblogs目錄的所屬組改為testing
[root@bogon hzh]# ls -ld /cnblogs 查看目錄所屬組
drwxr-xr-x 2 root testing 4096 5月 10 23:20 /cnblogs
對組加寫權限
[root@bogon hzh]# chmod g+w /cnblogs 對組加寫權限
[root@bogon hzh]# ls -ld /cnblogs 查看組對目錄的權限
drwxrwxr-x 2 root testing 4096 5月 10 23:20 /cnblogs
現在用戶chongshi和bugmaster已經對/cnbogs已經有寫權限
[root@bogon hzh]# su -- chongshi 切換用戶
[chongshi@bogon hzh]$ touch /cnblogs/abc 創建文件,(可以成功在目錄下創建文件,說明對本目錄具有寫權限)
用戶常用操作命令
添加一個用戶
添加用戶稍微復雜一些,我們先來看一下,添加用戶都有那些選項
root@fnngj-virtual-machine:/# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
參數詳解:
-u:UID
-g:缺省所屬用戶組GID
-G:指定所屬多個組
-d:宿目錄
-s:命令解釋器Shell
-c:描述信息
-e:指定用戶失效時間
例子:
root@fnngj-virtual-machine:/# useradd -u 1888 -g webadmin -G sys,root -s /bin/bash -c "market lisi" -e 2012-12-12 jack
添加用戶到組
usermod -G [組名] [用戶名]
root@fnngj-virtual-machine:/# usermod -G webadmin tom
root@fnngj-virtual-machine:/# grep webadmin /etc/group
webadmin:x:1001:tom
修改用戶名
usermod -l [新用戶名] [舊用戶名]
修改用戶與添加用戶時的內容基本相同,但多了一個修改用戶的選項。
root@fnngj-virtual-machine:/# usermod -l tom jack 把jack改為tom
刪除用戶
userdel -r [用戶名]
-r:刪除用戶組
手工刪除:
使用find命令查找屬於某個用戶或用戶組的文件
find選項 -user、-uid、-group、-gid、
1、對需要保留的文件進行移動和備份
2、對不需要的文件進行刪除
3、清除用戶文件中的相關表項
4、清除用戶宿主目錄
[root@bogon /]# find /home -user fnngj
/home/fnngj
/home/fnngj/.bashrc
/home/fnngj/.bash_profile
/home/fnngj/.gtkrc
/home/fnngj/.bash_history
/home/fnngj/.bash_logout
可以對查找出來的用戶信息判斷需要干掉哪些。
用戶信息查看命令
pwck 檢測/etc/passwd文件
檢測用戶的設置文件是否正常。直接輸入命令,后面不用帶參數
vipw 編輯/etc/passwd文件
這個命令與vi最大的區別就是編輯的時候鎖定文件。如果多人對passwd文件
都有編輯權限,那么多人同時編輯就會造成混亂。使用vipw編輯passwd文件時,別
人就無法打開passwd文件。
id 查看用戶ID和組信息,直接輸入命令,后面不用帶參數
[root@bogon fnngj]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6
(disk),10(wheel) context=root:system_r:unconfined_t
finger 查看當前用戶的登錄信息
finger [用戶名] 查看某個用戶的詳細信息。
[root@bogon fnngj]# finger
Login Name Tty Idle Login Time Office Office Phone
root root pts/1 May 13 14:57 (192.168.203.1)
[root@bogon fnngj]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 日 5月 13 14:57 (CST) on pts/1 from 192.168.203.1
New mail received 日 5月 6 11:00 2012 (CST)
Unread since 三 2月 22 20:40 2012 (CST)
No Plan.
su [用戶名] 切換用戶(su- 環境變量切換)
su - [用戶名] 切換的時候也會把環境的時候也會切換環境變量
[root@bogon /]# su fnngj
[fnngj@bogon /]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
[fnngj@bogon /]$ su root
Password:
[root@bogon /]# su - fnngj
[fnngj@bogon ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/fnngj/bin
passwd -S [用戶名] 查看用戶密碼狀態
[root@bogon fnngj]# passwd -S fnngj
Password set, MD5 crypt.
who、w 查看當前登錄用戶信息
[fnngj@bogon ~]$ who
root pts/1 May 13 14:57 (192.168.203.1)
[fnngj@bogon ~]$ w
15:11:29 up 54 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.203.1 14:57 0.00s 0.84s 0.01s w
用戶禁用與恢復
禁用和恢復用戶
當一個用戶在操作的時候經常有違規操作或近期一段時間不用,我們可以對這
個用戶進行鎖定。就像你的游戲賬號發生異常被禁用一樣。
-----------------------------------
禁用
#usermod -L username
#passwd -l username
恢復
#usermod -U username
#passwd -u username
------------------------------------
[root@bogon /]# passwd -l fnngj 禁用fnngj用戶
Locking password for user fnngj.
passwd: Success
[root@bogon /]# passwd -S fnngj
Password locked. 提示被禁用
[root@bogon /]# passwd -u fnngj 密碼解鎖
Unlocking password for user fnngj.
passwd: Success.
[root@bogon /]# passwd -S fnngj
Password set, MD5 crypt.
禁用原理:
[root@bogon /]# grep fnngj /etc/shadow
fnngj:$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
[root@bogon /]# passwd -l fnngj
Locking password for user fnngj.
passwd: Success
[root@bogon /]# grep fnngj /etc/shadow
fnngj:!!$1$EudBseaZ$kw1S8ZS2dsvnJ83phhvQF0:15456:0:99999:7:::
看到上面的操作,相信你已經明白了,當我禁用你的密碼后,密碼在shadwo文件中依然存在,只是前面多了兩個嘆號(!!),這樣你肯定登錄不了了,因為驗證端改變了密碼。當然,解鎖之后,密碼前面的兩個嘆號會去掉。
其實,我們知道了原理以后,完全可以不用通過命令,通過vi編輯文件,一樣可以禁用用戶。
用戶組常用操作命令
先看一下組配置文件里都存放了哪些內容
[root@bogon /]# more /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
.................
dialout:x:20:fnngj
dialout 組名 用戶登錄時所在的組
x 組密碼 一般不用
20 GID 組標識號
fnngj 組內用戶列表 屬於該組的所有用戶列表
添加用戶組
groupadd [用戶組名]
root@fnngj-virtual-machine:/# groupadd webadmin 添加一個組webadmin
root@fnngj-virtual-machine:/# grep webadmin /etc/group 查看組信息
webadmin:x:1001:
我們在添加組的時候也可以指定好組的id
root@fnngj-virtual-machine:/# groupadd -g 8888 webadmin
root@fnngj-virtual-machine:/# grep webadmin /etc/group
webadmin:x:8888:
刪除用戶組:
groupdel [用戶組名]
[root@bogon /]# groupdel webadmin 刪除組webadmin
修改用戶組信息
groupmod -n [新組名] [舊組名]
[root@bogon /]# groupmod -n apache webadmin 修改組名webadmin為apache
用戶組信息查看命令
groups 查看用戶隸屬於哪些用戶組
[root@bogon /]# groups fnngj
fnngj : fnngj
newgrp 切換用戶組
[root@bogon /]# newgrp fnngj 不是組成員,知道組密碼(如果有密碼)一樣可
以切換。
grpck 用戶組配置文件檢測
chgrp 修改文件所屬組
vigr 編輯/etc/group文件(鎖定文件)
與vipw用法一樣,在編輯group文件時,禁止其他人編輯。防止多人寫操作,造成寫混亂。
用戶組管理命令
gpasswd命令
這個事所有linux都有的一個命令。先看一下都有哪些參數。
root@fnngj-virtual-machine:/# gpasswd
Usage: gpasswd [option] GROUP
Options:
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-h, --help display this help message and exit
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
上面的參數信息雖然事英文的,不解釋了,相信你懂的。
用法非常簡單:
root@fnngj-virtual-machine:/# gpasswd -a tom webadmin 添加用戶到組
root@fnngj-virtual-machine:/# gpasswd -d tom webadmin 把用戶從組中刪除
root@fnngj-virtual-machine:/# gpasswd webadmin 給用戶組設置密碼
root@fnngj-virtual-machine:/# gpasswd -A tom webadmin 將tom提升為組管理員
root@fnngj-virtual-machine:/# gpasswd -r webadmin 刪除組密碼
root@fnngj-virtual-machine:/# gpasswd -R webadmin 禁止其他用戶切換到該組