linux那點事兒(五)----用戶管理常用命令


     上一節,將的那內容有些復雜,如果是新手,又不想一下子對用戶管理了解的那么深入,歡迎閱讀本節內容。

     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    組名            用戶登錄時所在的組
          組密碼         一般不用
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       禁止其他用戶切換到該組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM