1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[root@localhost ~]# who
root :0 2016-12-25 16:28 (:0)
root tty2 2016-12-25 16:31
root pts/0 2016-12-25 16:32 (192.168.1.13)
[root@localhost ~]# who | cut -d' ' -f1 | sort -u
root
2、取出当前系统上被用户当作其默认shell的最多的那个shell。
[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | sort | uniq -c | sort | tail -1
39 /sbin/nologin
3、将/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
LIBSTORAGEMGMT:X:992:990:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN
SASLAUTH:X:993:76:SASLAUTHD USER:/RUN/SASLAUTHD:/SBIN/NOLOGIN
GEOCLUE:X:994:991:USER FOR GEOCLUE:/VAR/LIB/GEOCLUE:/SBIN/NOLOGIN
COLORD:X:995:993:USER FOR COLORD:/VAR/LIB/COLORD:/SBIN/NOLOGIN
UNBOUND:X:996:994:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN
POLKITD:X:997:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
SYSTEMD-NETWORK:X:998:997:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
SYSTEMD-BUS-PROXY:X:999:998:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
WZL:X:1000:1000:WZL:/HOME/WZL:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
4、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
[root@localhost ~]# ifconfig | grep inet | cut -d' ' -f10 | head -1
192.168.1.15
5、显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# echo '/var下一级子目录或文件的总个数:' $(ls /var/ | wc -l)
/var下一级子目录或文件的总个数: 22
6、取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# sort -t: -k3 -n /etc/group | head -10 | cut -d: -f 1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
7、将/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 Dec 2 14:41:15 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=26a94fd6-0d7a-4538-8a44-62acd74c4890 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
\S
Kernel \r on an \m
8、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2016;
[root@localhost ~]# groupadd -g 2016 distro | tail -1 /etc/group
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)
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu;
[root@localhost ~]# echo "mageedu" | passwd --stdin mageia
(5)、删除mandriva,但保留其家目录;
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home/
linux mandriva wzl
[root@localhost ~]# id mandriva
id: mandriva: no such user
(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) 缁2016(distro),2017(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# grep "slackware" /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh
(8)、为用户slackware新增附加组admins;
[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -a -G admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 缁2016(distro),2017(peguin),2018(admins)
(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
[root@localhost ~]# echo "wzl" | passwd --stdin slackware
[root@localhost ~]# passwd -n 3 -x 180 -w 3 slackware
[root@localhost ~]# chage -l slackware
(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
[root@localhost ~]# groupadd clouds
[root@localhost ~]# groupadd nova
[root@localhost ~]# useradd -u 3003 -g clouds -G peguin,nova openstack
[root@localhost ~]# id openstack
uid=3003(openstack) gid=2019(clouds) 缁2019(clouds),2017(peguin),2020(nova)
(11)、添加系统用户mysql,要求其shell为/sbin/nologin;
[root@localhost ~]# useradd mysql -s /sbin/nologin
[root@localhost ~]# grep "mysql" /etc/passwd
mysql:x:3004:3004::/home/mysql:/sbin/nologin
(12)、使用echo命令,非交互式为openstack添加密码。
[root@localhost ~]# echo 'openstack' | passwd --stdin openstack
???
9、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
[root@localhost ~]# cp -r /etc/skel/ /home/tuser1
[root@localhost ~]# ls -ld /home/tuser1/
drwxr-xr-x. 4 root root 85 12鏈25 19:14 /home/tuser1/
[root@localhost ~]# ll -a /home/tuser1/
鎬荤敤閲12
drwxr-xr-x. 4 root root 85 12鏈25 19:14 .
drwxr-xr-x. 9 root root 100 12鏈25 19:14 ..
-rw-r--r--. 1 root root 18 12鏈25 19:14 .bash_logout
-rw-r--r--. 1 root root 193 12鏈25 19:14 .bash_profile
-rw-r--r--. 1 root root 231 12鏈25 19:14 .bashrc
drwxr-xr-x. 4 root root 37 12鏈25 19:14 .mozilla
drwxr-xr-x. 3 root root 74 12鏈25 19:14 skel
10、使用两种方式显示/proc/meminfo文件中以大写或小写S开头的行;
方法一:
[root@localhost ~]# grep '^[Ss]' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9768 kB
Slab: 109296 kB
SReclaimable: 59356 kB
SUnreclaim: 49940 kB
方法二:
[root@localhost ~]# grep -i '^s' /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 9768 kB
Slab: 109296 kB
SReclaimable: 59356 kB
SUnreclaim: 49940 kB
11、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
[root@localhost ~]# grep -v “/sbin/nologin$” /etc/passwd | cut -d: -f1
root
bin
daemon
adm
......
12、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
[root@localhost ~]# grep "/bin/bash$" /etc/passwd | cut -d: -f1
root
wzl
mageia
13、找出/etc/passwd文件中的一位数或两位数;
[root@localhost ~]# grep -o "[0-9]\{1,2\}" /etc/passwd
0
0
1
1
......
14、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
[root@localhost ~]# grep '^#[[:space:]]\+[^[:space:]]\+' /etc/rc.d/rc.sysinit
15、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
[root@localhost ~]# netstat -tan | grep 'LISTEN[[:space:]]*'
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
16、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;
[root@localhost ~]# useradd bash
[root@localhost ~]# useradd testbash
[root@localhost ~]# useradd basher
[root@localhost ~]# useradd -s /sbin/nologin nologin
[root@localhost ~]# grep "^\([[:alnum:]]\+\>\).*\1$" /etc/passwd ???
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:3005:3005::/home/bash:/bin/bash
nologin:x:3008:3008::/home/nologin:/sbin/nologin