1、列出當前系統上所有已經登錄的用戶的用戶名。注意:同一個用戶登錄多次,則只顯示一次即可
[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq
[root@localhost ~]# who
(unknown) :0 2016-08-29 08:28 (:0)
root pts/0 2016-08-29 08:36 (192.168.12.1)
root pts/1 2016-08-29 09:12 (192.168.12.1)
[root@localhost ~]# who | cut -d ' ' -f1
(unknown)
root
root
[root@localhost ~]# who | cut -d ' ' -f1 | sort
root
root
(unknown)
[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq
root
(unknown)
[root@localhost ~]#
2、取出最后登錄到當前系統的用戶的相關信息
[root@localhost ~]# id $(who | tail -1 | cut -d ' ' -f1)
uid=1000(ttxsjh) gid=1000(ttxsjh) 組=1000(ttxsjh),10(wheel)
[root@localhost ~]#
3、取出當前系統上被用戶當作其默認shell的最多的那個shell
[root@localhost ~]# cat /etc/passwd | cut -d':' -f7 | tail -1
/bin/bash
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改寫為大寫后保存至/tmp/maxusers.txt
[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3n | tail -10 | tr a-z A-Z > /tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt
USER2:X:2019:2019::/HOME/USER2:/BIN/BASH
USER9:X:2020:2020::/HOME/USER9:/BIN/BASH
USER10:X:2021:2021::/HOME/USER10:/BIN/BASH
USER112:X:2022:2022::/HOME/USER112:/BIN/BASH
USER14:X:2023:2023::/HOME/USER14:/BIN/BASH
USER15:X:2024:2024::/HOME/USER15:/BIN/BASH
USER20:X:2025:2025::/HOME/USER20:/BIN/BASH
USER18:X:2026:2026::/HOME/USER18:/BIN/BASH
USER19:X:2027:2027::/HOME/USER19:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
[root@localhost ~]#
5、取出當前主機的ip地址,提示:對ifconfig命令的結果進行切分
[root@localhost ~]# ifconfig | cut -d ' ' -f10 | grep "[.]"
192.168.12.11
127.0.0.1
[root@localhost ~]#
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中
[root@localhost ~]# ls -a /etc/*.conf | tr a-z A-Z > /tmp/etc.conf
7、顯示/var目錄下一級子目錄或文件總個數
[root@localhost ~]# ls -l /var | wc -l
31
[root@localhost ~]#
8、取出 /etc/group文件中第三個字段數值最小的10個組的名字
[root@localhost ~]# cat /etc/group | sort -t ':' -k 3n | head -10 | cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
[root@localhost ~]#
9、將 /etc/fstab 和/etc/issue文件的內容合并為同一個內容后保存至 /tmp/etc.test文件中
[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
10、用戶和組命令描述
用戶和組文件描述
/etc/passwd 用戶信息庫
name:password:UID:GID:GECOS:directory:shell
name:用戶名、password:密碼占位符、UID、GID:用戶基本組ID、GECOS:用戶描述信息、directory:用戶的家目錄、shell:用戶默認shell
/etc/shadow 用戶密碼文件
centos:$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym.:16974:0:99999:7:::
centos:登錄名、$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym:加密了的密碼、16974:最后一次更改密碼的日期、0:密碼的最小年齡、99999:最大密碼年齡、7:密碼警告時間段、密碼禁用期、賬戶過期日期、保留字段
/etc/group 組的信息庫
group_name:password:GID:user_list
group_name:組名、password:組密碼:GID、user_list:該組的用戶成員,以此組為附加組的用戶的用戶的列表
/etc/gshadow:組的密碼文件
user3:!::
user3:組名、!:密碼占位符、管理員、成員
用戶和組命令描述
useradd 添加用戶
-u, –uidUID 指定UID
-g, –gidGROUP 指定GID,組名必須事先存在
-G, –groupsGROUP1[,GROUP2,…[,GROUPN]]] 指定附加組,默認用戶只屬于初始組,
-a 和-G聯合使用 追加新的附加組
-a, –append 將用戶添加到附加組。只能和 -G 選項一起使用
-d, –home HOME_DIR 修改家目錄和,默認不復制原有家目錄類容和-m聯合使用用于將原有文件移動到新的家目錄
-s, –shell SHELL 指定SHELL
-L, –lock 鎖定用戶密碼;-U –unlock 解鎖用戶的密碼
-c, –comment COMMENT 修改注釋信息
-r, –system 創建系統賬號
-f, –inactiveINACTIVE 密碼過期后,賬戶被徹底禁用之前的天數。0 表示立即禁用,-1 表示禁用這個功能
userdel – 刪除用戶賬戶和相關文件
-f, –force 強制刪除用戶賬戶
-r, –remove 刪除用戶的家目錄,默認不刪除
usermod – 修改一個用戶賬戶
-a, –append 將用戶添加到附加組。只能和 -G 選項一起使用
-u, –uidUID 修改UID
-g, –gidGROUP 修改GID
-f, –inactiveINACTIV 密碼過期之后,賬戶被徹底禁用之前的天數,0 表示密碼過期時,立即禁用賬戶;-1 表示不使用這個功能
-d, –homeHOME_DIR 修改家目錄
-m, –move-home 將用戶的主目錄移動到新位置。 這個選項只有和 -d (或 –home) 選項組合使用時才有效
-s, –shellSHELL 用戶的新登錄 shell 的名稱
-U, –unlock 解鎖用戶的密碼
-L, –lock 鎖定用戶的密碼
groupadd 添加組
-g GID 指定GID 默認是上一個組的GID+1
-r 創建系統組,每一個進程在運行的時候都是以一個用戶的身份在運行。開機就運行的程序以系統用戶的身份在運行,為了能夠讓那些后臺進程或服務類進程以非管理員的身份運行,通常還需要為此創建多個普通用戶,這類用戶從不用登陸系統。
groupdel 刪除組
groupdel [選項] GROUP
groupmod 修改組屬性
groupmod [選項] GROUP
-g GID 修改GID
-n new_name 修改組名
passwd 修改用戶密碼
passwd 不帶任何參數 修改自己的密碼
passwd USERNAME 修改指定用戶的密碼;只有管理員root有此權限
-l ,-u 鎖定和解鎖用戶密碼
-d 清除用戶密碼串
-e DATE 過期期限,日期
-i DAYS 非活動期限
-n DAYS 密碼的最短使用期限
-x DAYS 密碼最長使用期限
-w DAYS 警告時間
–stdin echo"PASSWORD" | passwd –stdin USERNAME
gpasswd 給組添加密碼 不帶參數默認給自己添加密碼
-a USERNAME 向組中添加用戶
-d USERNAME 向組中刪除密碼
id 顯示用戶的實際和有效ID
id [OPTION]… [USER]
不帶任何參數表示顯示自己
-u 顯示UID
-g 僅顯示用戶基本組ID
-G 顯示用戶所屬組的所有組ID
-n 顯示名稱
su switch user 切換用戶
登錄式切換 會通過讀取目標用戶的配置文件來重新初始化
su – USERNAME
su -l USERNAME
非登錄式切換 不會通過讀取目標用戶的配置文件來重新初始化
su USERNAME
注意:管理員切換到任何用戶時無需密碼。
(1) 創建組distro,其GID為2016
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | grep "2016"
distro:x:2016:
(2) 創建用戶mandriva,其ID為1005 基本組為distro
[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 組=2016(distro)
[root@localhost ~]#
(3) 創建用戶magedia 其ID為1100 家目錄為/home/linux
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# cat /etc/passwd | grep "mageia"
mageia:x:1100:1100::/home/linux:/bin/bash
(4)給用戶mageia添加密碼,密碼為mageedu
[root@localhost ~]# passwd mageia
更改用戶 mageia 的密碼 。
新的 密碼:
無效的密碼: 密碼少于 8 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
[ttxsjh@localhost ~]$ su – mageia
密碼:
上一次登錄:一 8月 29 21:21:10 CST 2016pts/0 上
[mageia@localhost ~]$
(5)刪除用戶mandriva,但保留其加目錄
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home/ | grep "mandriva"
mandriva
[root@localhost ~]#
(6) 創建用戶slackware 其ID為2002,基本組為ditro,附件組peguin
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/bash
[root@localhost ~]# cat /etc/group | grep "peguin"
peguin:x:3006:slackware
[root@localhost ~]# cat /etc/group | grep "slackware"
peguin:x:3006:slackware
(7) 修改slackware的默認shell為/bin/tcsh
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
(8) 為用戶slackware新增附加組admins
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# cat /etc/group | grep "slackware"
peguin:x:3006:slackware
admins:x:3007:slackware
(9)為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
[root@localhost ~]# chage slackware
正在為 slackware 修改年齡信息
請輸入新值,或直接敲回車鍵以使用默認值
最小密碼年齡 [0]: 3
最大密碼年齡 [99999]: 180
最近一次密碼修改時間 (YYYY-MM-DD) [2016-08-29]:
密碼過期警告 [7]: 3
密碼失效 [-1]:
帳戶過期時間 (YYYY-MM-DD) [-1]:
[root@localhost ~]# cat /etc/shadow | grep "slackware"
slackware:!!:17042:3:180:3:::
(10)添加用戶openstack,其ID號為3003,基本組為clouds,附加組為peguin和nova
[root@localhost ~]# useradd -u 3003 -g clouds -G peguid,nova openstack
[root@localhost ~]# id openstack
uid=3003(openstack) gid=3010(clouds) 組=3010(clouds),3008(peguid),3009(nova)
(11)添加系統用戶mysql,要求其shell為/sbin/nologin
[root@localhost ~]# useradd -r mysql -s /bin/nologin
[root@localhost ~]# id mysql
uid=991(mysql) gid=989(mysql) 組=989(mysql)
[root@localhost ~]# cat /etc/passwd | grep "mysql"
mysql:x:991:989::/home/mysql:/bin/nologin
(12)使用echo命令,非交互式為openstack添加密碼
[root@localhost ~]# echo "openstack" | passwd –stdin openstack
更改用戶 openstack 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@localhost ~]#
原創文章,作者:ttxsjh,如若轉載,請注明出處:http://www.www58058.com/41686
點一下第5題,可以使用精確的正則表達式來匹配IP,使用這種方法最佳哈。
另外,排版上面需要再改善下。加油~