13 用戶組和權限管理3

用戶組和權限管理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:所有的身份驗證令牌已經成功更新。


三、課後鏈接及作業

見下篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章