1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
[root@localhost ~]# who | cut -d" " -f1 | uniq jobs root
2、取出最后登錄到當前系統的用戶的相關信息。
[root@localhost ~]# who | cut -d" " -f1 | uniq | tail -1 root
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 21 /sbin/nologin
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
[root@localhost ~]# cat /etc/passwd | sort -t: -k3 -n | tail -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt [root@localhost ~]# cat /tmp/maxusers.txt ODS:X:999:998:SOFTHSM PRIVATE KEYS OWNER://VAR/LIB/SOFTHSM:/SBIN/NOLOGIN JOBS:X:1000:1000:JOBS:/HOME/JOBS:/BIN/BASH TOM:X:1001:1001::/HOME/TOM:/BIN/BASH BASH:X:1002:1003::/HOME/BASH:/BIN/BASH BASHER:X:1003:1004::/HOME/BASHER:/BIN/BASH TESTBASH:X:1004:1005::/HOME/TESTBASH:/BIN/BASH NOLOGIN:X:1005:1006::/HOME/NOLOGIN:/SBIN/NOLOGIN USER1:X:1006:1007::/HOME/USER1:/BIN/BASH JERRY:X:65533:1002::/HOME/JERRY:/BIN/BASH NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN [root@localhost ~]#
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
[root@localhost ~]# ifconfig | egrep '((\<[1-9]\.)|([1-9][0-9]\.)|(1[0-9][0-9]\.)|(2[0-4][0-9]\.)|(25[0-5]\.)\>)\1*' inet 192.168.2.99 netmask 255.255.255.0 broadcast 192.168.2.255 RX packets 72860 bytes 22883954 (21.8 MiB) TX packets 29823 bytes 4663870 (4.4 MiB) inet 127.0.0.1 netmask 255.0.0.0 RX packets 16 bytes 1224 (1.1 KiB) TX packets 16 bytes 1224 (1.1 KiB) inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
[root@localhost ~]# ls -R /etc/ | grep ".*.conf$" | tr 'a-z' 'A-Z' > /tmp/etc.conf
7、顯示/var目錄下一級子目錄或文件的總個數。
[root@localhost ~]# echo $[$[$(ll /var | grep "^d.*" | wc -l)]+$[$(ll /var | grep "^-.*" | wc -l)]] 23
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
[root@localhost ~]# cat /etc/group | sort -t: -k3 -n | head -10 | cut -d: -f1 root bin daemon sys adm tty disk lp mem kmem
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test [root@localhost ~]# cat /tmp/etc.test # # /etc/fstab # Created by anaconda on Fri Mar 11 22:14:07 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=73822afe-bc00-431b-8851-0151d8054a67 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 Red Hat Linux 9 Kernel 1.2.3.4
10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:
用戶管理命令總結:
useradd:添加用戶
命令格式:
useradd [options] LOGIN
選項:
-u UID: [UID_MIN, UID_MAX], 定義在/etc/login.defs -g GID:指明用戶所屬基本組,可為組名,也可以GID; -c "COMMENT":用戶的注釋信息; -d /PATH/TO/HOME_DIR: 以指定的路徑為家目錄; -s SHELL: 指明用戶的默認shell程序,可用列表在/etc/shells文件中; -G GROUP1[,GROUP2,...[,GROUPN]]]:為用戶指明附加組;組必須事先存在; -r: 創建系統用戶
usermod:修改用戶屬性
命令格式:
usermod [options] LOGIN
選項:
-u UID: 新UID -g GID: 新基本組 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append; -s SHELL:新的默認SHELL; -c 'COMMENT':新的注釋信息; -d HOME: 新的家目錄;原有家目錄中的文件不會同時移動至新的家目錄;若要移動,則同時使用-m選項; -l login_name: 新的名字; -L: lock指定用戶 -U: unlock指定用戶 -e YYYY-MM-DD: 指明用戶賬號過期日期; -f INACTIVE: 設定非活動期限;
chsh:修改用戶登錄shell
命令格式:
chsh [-s shell] [-l] [-u] [-v] [username]
選項:
-s:指定登錄shell -l:打印出/etc/shells下的shell列表并退出
chfn:改變指紋信息
命令格式:
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username]
選項:
-f, 指定真實名稱 -o, 指定辦公室號碼 -p, 指定辦公電話 -h, 指定家庭電話
chage:修改用戶密碼過期信息
命令格式:
chage [options] LOGIN
選項:
-d, LAST_DAY:設置1970年1月1日起最后一次更改密碼的時間,如果設置為0則下次登錄必須修改密碼 -E, --expiredate EXPIRE_DATE:設置自1970年1月1日起,經過多長時間后賬號將不能使用 -I, --inactive INACTIVE:設置賬號被鎖定前,密碼過期的天數 -m, --mindays MIN_DAYS:設置修改密碼的最小天數 -M, --maxdays MAX_DAYS:設置密碼修改的最大天數 -W, --warndays WARN_DAYS:設置密碼修改前的告警天數
userdel:刪除用戶賬戶與相關文件
命令格式:
userdel [options] LOGIN
選項:
-f,強制 -r,刪除用戶家目錄
組管理命令總結:
groupadd:添加用戶組
命令格式:
groupadd [options] group
選項:
-g GID: 指明GID號;[GID_MIN, GID_MAX] -r: 創建系統組;
groupmod:修改組屬性
命令格式:
groupmod [options] GROUP
選項:
-n group_name: 新名字 -g GID: 新的GID;
groupdel:刪除用戶組
命令格式:
groupdel [options] GROUP
選項:
-R:改變CHROOT_DIR的目錄并使用CHROOT_DIR的配置文件
passwd:給用戶添加密碼
命令格式:
passwd [OPTIONS] UserName passwd
選項:
-l 鎖定指定用戶 -u 解鎖指定用戶 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天開始警告 -i inactivedays:非活動期限; --stdin:從標準輸入接收用戶密碼; echo "PASSWORD" | passwd --stdin USERNAME
gpasswd:組密碼
命令格式:
gpasswd [OPTION] GROUP
選項:
-a user: 將user添加至指定組中; -d user: 刪除用戶user的以當前組為組名的附加組 -A user1,user2,...: 設置有管理權限的用戶列表
pwck:驗證密碼文件的完整性
命令格式;
pwck [options] [passwd [ shadow ]]
選項:
-q,僅顯示錯誤信息,來自用戶任何操作的告警信息則不會顯示 -r,在只讀模式下運行pwck命令 -R:改變CHROOT_DIR的目錄并使用CHROOT_DIR的配置文件 -s,在/etc/passwd,/etc/shadow文件中以UID為標準進行排序
退出值:
0 success 成功 1 invalid command syntax 參數錯誤 2 one or more bad password entries 輸入了一個或多個錯誤密碼 3 can't open password files 不能打開密碼文件 4 can't lock password files 不能鎖定密碼文件 5 can't update password files 不能更新密碼文件 6 can't sort password files 不能對密碼文件排序
id:打印真實有效的用戶和組ID
命令格式:
id [OPTION]... [USER]
選項:
-u: UID -g: GID -G: Groups -n: Name
who:顯示誰登陸系統
命令格式:
who [OPTION]... [ FILE | ARG1 ARG2 ]
選項:
-b:系統最近一次啟動的時間 -d:顯示死亡的進程 -l:顯示系統登陸進程 -m:只有主機名和用戶相關的標準輸入 -q:所有登錄的用戶名和登錄的用戶數 -r:顯示當前運行等級 -t:顯示最后一次系統時鐘的變化 -u:列出登陸的用戶
whoami:顯示有效的用戶ID
命令格式:
whoami [OPTION]...
w:顯示誰登陸了系統并且在做什么
命令格式:
w [options] user [...]
選項:
-h:不顯示頭部信息 -u:忽略在當前進程和CPU時間指明的用戶名 -s:使用短格式,不顯示登錄時間、JCPU時間和PCPU時間
su:使用替代用戶和組ID運行一個命令
命令格式:
su [options...] [-] [user [args...]]
選項:
-c:使用-c選項傳遞一個命令到shell --session-command=command:與-c一樣,但不會創建新的會話 -g:指定基本組,這個命令只允許root用戶使用 -G:指定附加組,這個命令只允許root用戶使
退出值:
1 Generic error before executing the requested command 126 The requested command could not be executed 127 The requested command could was not found
(1)、創建組distro,其GID為2016;
[root@localhost ~]# groupadd -g 2016 distro [root@localhost ~]# cat /etc/group | tail -1 distro:x:2016:
(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
[root@localhost ~]# useradd -u 1005 -G distro mandriva
(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
[root@localhost ~]# useradd -u 1100 -d /home/linux/ mageia
(4)、給用戶mageia添加密碼,密碼為mageedu;
[root@localhost ~]# echo "mageedu" | passwd --stdin mageia Changing password for user mageia. passwd: all authentication tokens updated successfully.
(5)、刪除mandriva,但保留其家目錄;
[root@localhost ~]# userdel mandriva [root@localhost ~]# ls /home/ | grep man mandriva
(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
[root@localhost ~]# groupadd peguin [root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware [root@localhost ~]# id slackware uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin)
(7)、修改slackware的默認shell為/bin/tcsh;
[root@localhost ~]# usermod -s tcsh slackware [root@localhost ~]# cat /etc/passwd | grep tcsh slackware:x:2002:2016::/home/slackware:tcsh
(8)、為用戶slackware新增附加組admins;
[root@localhost ~]# groupadd admins [root@localhost ~]# usermod -G admins slackware [root@localhost ~]# id slackware uid=2002(slackware) gid=2016(distro) groups=2016(distro),2018(admins)
(9)、為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
[root@localhost ~]# echo "obama" | passwd -n 3 -x 180 -w 3 --stdin slackware Adjusting aging data for user slackware. passwd: Success [root@localhost ~]# cat /etc/shadow | grep slackware slackware:!!:16974:3:180:3:::
(10)、添加用戶openstack,其ID號為3003, 基本組為clouds,附加組為peguin和nova;
[root@localhost ~]# useradd -u 3003 -G peguin,nova openstack [root@localhost ~]# id openstack uid=3003(openstack) gid=3003(openstack) groups=3003(openstack),2017(peguin),2020(nova)
(11)、添加系統用戶mysql,要求其shell為/sbin/nologin;
[root@localhost ~]# useradd -r -s /sbin/nologin mysql [root@localhost ~]# cat /etc/passwd | grep mysql mysql:x:982:977::/home/mysql:/sbin/nologin
(12)、使用echo命令,非交互式為openstack添加密碼。
[root@localhost ~]# echo "obama" | passwd --stdin openstack Changing password for user openstack. passwd: all authentication tokens updated successfully.
原創文章,作者:Anaconda,如若轉載,請注明出處:http://www.www58058.com/19557
寫的很棒,排版也很好,也使用的一些案例,但是取ip地址好像沒有取出來吧,在仔細想一下正則應該怎么寫