马哥教育网络20期+第三周练习博客

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.178linux.com/19557

(0)
AnacondaAnaconda
上一篇 2016-06-22 18:16
下一篇 2016-06-23 10:53

相关推荐

  • 马哥教育网络班21期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器 集线器:集线器的英文称为“Hub”.集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"…

    Linux干货 2016-08-29
  • Linux系统中硬链接和软链接

    使用对象:linux初学者。   一、硬链接和软链接的概念 硬链接是给已经存在的数据文件另外创建一个名字,通过该名字也可以访问该数据文件。就好像给张三起个绰号叫“小二黑”,通过“张三”这个名字能找到这个人,通过“小二黑”这个名字也能找到这个人。        软链接是给文件名在其…

    Linux干货 2016-10-20
  • 文件查找命令(find、locate)

    在文件系统上查找符合条件的文件: 实现工具:locate, find locate: 依赖于事先构建好的索引库; 系统自动实现(周期性任务); 手动更新数据库(updatedb); 工作特性: 查找速度快; 模糊查找; 非实时查找; locate [OPTION]… PATTERN… -b:只匹配路径中的基名; -c:统计出共有多少个符合条件的文件;…

    Linux干货 2016-11-06
  • iptables实验2

    IPTABLES   实验2       实验大体结构图       相关概念及公式 源地址转换:    SNAT   POSTROUTING 目标地址转换:DNAT  PREROUTING   每次重启网络后…

    Linux干货 2016-10-24
  • N25第四周 chmod chown以及 grep命令的常用示例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1   &n…

    Linux干货 2016-12-22
  • SSH端口转发

      SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够…

    2017-09-10

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-23 13:46

    写的很棒,排版也很好,也使用的一些案例,但是取ip地址好像没有取出来吧,在仔细想一下正则应该怎么写