用戶組和權限管理3
一、雜項知識整理
1、硬鏈接:寫源文件可以是相對地址,相對于鏈接文件。例如
[root@localhost testdir]# ln ../etc/fstab aaa ln: 無法創建硬鏈接"aaa" => "../etc/fstab": 無效的跨設備連接 [root@localhost testdir]# ln ../etc/fstab /tmp/aaa
2、cp -r /etc/skel/. /testdir/user1 復制文件夾內的所有文件而不復制..。如果用[root@localhost user]# cp -r /testdir/user.dir/.[^.]* /tmp/user1,其目標只能是存在的并且只能復制隱藏文件。
3、adduser是useradd的軟鏈接:
[root@localhost default]# ll `which useradd` -rwxr-x---. 1 root root 114056 3月 6 2015 /usr/sbin/useradd [root@localhost default]# ll `which adduser` lrwxrwxrwx. 1 root root 7 7月 19 04:58 /usr/sbin/adduser -> useradd
4、組中有其它用戶時刪除無法刪除組;
5、whoami查看的是當前用戶是誰,而who am i查看的是誰在終端登錄,即不管用su還是su -登錄,只要root登錄終端,who am i都顯示root。
6、userdel命令:可以在/etc/login.defs文件中更改配置變量。
-f 強制刪除用戶賬號,即使用戶仍然在登錄,包括主目錄和郵箱和同名的組
-r 刪除主目錄和郵箱
7、id命令:查看用戶相關信息:
-u 查看UID
-g 查看GID
-G groups
-n name
[root@localhost testdir]# id uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@localhost testdir]# id -G 0 [root@localhost testdir]# id -u 0
8、換個身份執行命令:su – user -c COMMAND
[root@localhost testdir]# su - user1 -c date 2016年 08月 03日 星期三 10:37:13 CST
9、chfn;chsh指定個人信息和指定shell:
[root@localhost ~]# chfn Changing finger information for root. 名稱 [root]: ^C [root@localhost ~]# chsh Changing shell for root. New shell [/bin/bash]: ^C
10、groupadd
-g 指定GID號
-r 創建系統組
centos7:ID<1000
[root@localhost ~]# groupadd -r -g 589 servicetest [root@localhost ~]# tail /etc/group harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223:user1 user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228: servicetest:x:589:
11、groupmod命令:-n 指定新名字 -g GID;
groupdel刪除組
gpasswd 更改組密碼
-a USER 將user添加至指定組中
-d USER 從指定組中移除用戶user
-A user1,user2….設置有管理權限的用戶列表
newgrp命令:臨時切換基本組:如果用戶本不屬于此組,則需要組密碼;如果沒有設置密碼則只有本組用戶可以切換。
[user1@localhost ~]$ newgrp user3 密碼: 無效的密碼。 [user1@localhost ~]$ exit 登出 [root@localhost ~]# gpasswd user3 正在修改 user3 組的密碼 新密碼: 請重新輸入新密碼: [root@localhost ~]# su - user1 上一次登錄:三 8月 3 11:20:41 CST 2016pts/0 上 [user1@localhost ~]$ newgrp user3 密碼: [user1@localhost ~]$ groups user3 user1
二、命令詳解及事例
1、當需要同時創建多個用戶時,useradd不能實現,其對象只能是一個,所以需要批量建立用戶和創建密碼:命令newusers和chpasswd,單獨給一個用戶設置密碼也可以用echo user:PASSWD | chpasswd:
按格式新建一user個文件:格式為:用戶:x:UID:GID:(注釋或描述):/家目錄(不存在目錄):bash
[root@localhost testdir]# !cat cat user user1:x:2223:2223::/home/user1:/bin/bash user2:x:2224:2224::/home/user2:/bin/bash user3:x:2225:2225::/home/user3:/bin/bash user4:x:2226:2226::/home/user4:/bin/bash user5:x:2227:2227::/home/user5:/bin/bash user6:x:2228:2228::/home/user6:/bin/bash [root@localhost testdir]# newusers user
按格式創建一個passwd文件,內容一一對應:格式為:用戶:密碼
[root@localhost user1]# cat /testdir/userpasswd user1:123456 user2:123456 user3:123456 user4:123456 user5:123456 user6:123456 [root@localhost user1]# cat /testdir/userpasswd | chpasswd
完成后,將/etc/skel的隱藏文件復制到用戶家目錄并更改其權限,因為已經做過因此提示覆蓋,最后便完成了創建批量用戶,無家目錄也可以登錄但是無配置文件,郵件文件會在收到文件后自動生成,系統用戶無家目錄和郵箱:
[root@localhost user1]# cp -rf /etc/skel/.[^.]* /home/user3 cp:是否覆蓋"/home/user3/.bash_logout"? y "/etc/skel/.bash_logout" -> "/home/user3/.bash_logout" cp:是否覆蓋"/home/user3/.bash_profile"? y "/etc/skel/.bash_profile" -> "/home/user3/.bash_profile" cp:是否覆蓋"/home/user3/.bashrc"? y "/etc/skel/.bashrc" -> "/home/user3/.bashrc" cp:是否覆蓋"/home/user3/.zshrc"? y "/etc/skel/.zshrc" -> "/home/user3/.zshrc" [root@localhost user1]# chown -R user4:user4 /home/user4 [root@localhost user1]# ll -a /home/user4 總用量 20 drwx------. 2 user4 user4 72 8月 2 01:41 . drwxr-xr-x. 18 root root 4096 8月 2 02:26 .. -rw-r--r--. 1 user4 user4 18 8月 3 08:30 .bash_logout -rw-r--r--. 1 user4 user4 193 8月 3 08:30 .bash_profile -rw-r--r--. 1 user4 user4 231 8月 3 08:30 .bashrc -rw-r--r--. 1 user4 user4 658 8月 3 08:30 .zshrc
2、chmod命令:見下篇
3、usermod命令:用戶屬性修改:
-u UID 新UID
-g GID 新基本組
-a 添加附加組,只能和-G使用
-G GROUP 新附加組,可以多個
直接添加,原來的附加組將會被覆蓋;若保留原有,則需要同時使用-a選項表示append;
因此刪除一個用戶所有附加組有兩種方法:直接使用-G覆蓋;或者-G “”,但是兩者還是有一些區別的。例如:
[root@localhost testdir]# usermod -aG user2,user3,user4 user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223: user2:x:2224:user1 user3:x:2225:user1 user4:x:2226:user1 [root@localhost testdir]# usermod -G "" user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223: user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228: [root@localhost testdir]# usermod -G user1 user1 [root@localhost testdir]# tail /etc/group natasha:x:1008: harry:x:1009: sarah:x:1010: sales:x:3000: user1:x:2223:user1 user2:x:2224: user3:x:2225: user4:x:2226: user5:x:2227: user6:x:2228:
-s SHELL 新的默認shell
-c “” 新的默認注釋信息
-d HOME 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;若要創建新家目錄并移動原家目錄數據,同時使用-m選項。
-l login_name 新的名字
-L 鎖定用戶,在/etc/shadow密碼欄增加!
一次只能設定一個!,解鎖也解一個,而passwd鎖定及解鎖一次兩個
-U 解鎖
-e YYYY-MM-DD 指定用戶賬號過期日期
-f INACTIVE 設定非活動期限
4、chown命令:見下篇
5、passwd命令:修改指定用戶的密碼,僅root用戶權限;或修改自己的密碼:
-l 鎖定指定用戶
-u 解鎖指定用戶
-e 強制用戶下次登錄修改密碼:
[root@localhost ~]# passwd -e user3 正在終止用戶 user3 的密碼。 passwd: 操作成功
-n # 指定最短使用期限
-x # 最大使用期限
-w # 提前多少天開始警告
-i # 非活動期限
–stdin 從標準輸入接收用戶密碼
[root@localhost ~]# echo "123456789" | passwd --stdin user5 更改用戶 user5 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/27622