马哥教育网络班20期+第3周课程练习

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。

# who | cut -d' ' -f1 | sort | uniq
huazi2
root

2、取出最后登录到当前系统的用户的相关信息。

# finger $(last | head -1 | cut -d' ' -f1)
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since 五 6月 17 09:07 (CST) on pts/1 from 172.16.100.1
   28 minutes 27 seconds idle
On since 五 6月 17 09:15 (CST) on pts/2 from 172.16.100.1
   3 seconds idle
Mail last read 二 5月 31 01:53 2016 (CST)
No Plan.

# id $(last | head -1 | cut -d' ' -f1)         
uid=0(root) gid=0(root) 组=0(root)

3、取出当前系统上被用户当作其默认shell的最多的那个shell。

# cut -d':' -f7 /etc/passwd | sort | uniq -c | sort -nr | head -1 | tr -d '[0-9 ]'
/sbin/nologin

4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。

# sort -t':' -k3nr /etc/passwd | head -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
# 
# cat /tmp/maxusers.txt 
OPENSTACK:X:3003:5922::/HOME/OPENSTACK:/SBIN/NOLOGIN
SLACKWARE:X:2002:2016::/HOME/SLACKWARE:/BIN/TCSH
HUAZI2:X:1241:1241::/HOME/HUAZI2:/BIN/BASH
HUAZI1:X:1237:1237::/HOME/HUAZI1:/BIN/BASH
TEST1:X:1236:1236::/HOME/TEST1:/BIN/BASH
ARCHLINUX:X:1235:1235::/USERS/ARCHLINUX:/BIN/BASH
IAMKILLER:X:1234:1234::/OPT/.PRIVATE/IAMKILLER:/SBIN/NOLOGIN

5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

# ifconfig | egrep '(inet addr:|inet )(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' -o   
inet 172.16.100.11
inet 127.0.0.1

6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。

# ls -A  /etc/ | grep .conf$ | tr 'a-z' 'A-Z' > /tmp/etc.conf
[root@c7-1 ~]# 
[root@c7-1 ~]# cat /tmp/etc.conf
.123.CONF
ASOUND.CONF
DNSMASQ.CONF
DRACUT.CONF
E2FSCK.CONF
ELINKS.CONF
HOST.CONF
KDUMP.CONF
KRB5.CONF
LD.SO.CONF
LIBAUDIT.CONF
LIBUSER.CONF
LOCALE.CONF
LOGROTATE.CONF
MAN_DB.CONF
MKE2FS.CONF
NSSWITCH.CONF
NTP.CONF
REDIS.CONF
REDIS-SENTINEL.CONF
RESOLV.CONF
RSYSLOG.CONF
SESTATUS.CONF
SUDO.CONF
SUDO-LDAP.CONF
SYSCTL.CONF
TCSD.CONF
VCONSOLE.CONF
YUM.CONF

7、显示/var目录下一级子目录或文件的总个数。

# ls -A /var/ | wc -l   
21

8、取出/etc/group文件中第三个字段数值最小的10个组的名字。

# sort -t':' -k3n /etc/group | head -10 | cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。

# cat /etc/{fstab,issue} > /tmp/etc.test
# 
# cat /tmp/etc.test

#
# /etc/fstab
# Created by anaconda on Mon May 23 18:04:04 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=9edd08de-e432-4196-8a06-2363c167f3e5 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
\S
Kernel \r on an \m

10、请总结描述用户和组管理类命令的使用方法并完成以下练习:

useradd 命令:
	创建用户
	格式 - useradd [options] LOGIN
		-u uid: 指定用户id [UID_MIN,UID_MAX] 定义在 /etc/login.defs
		-g gid: 指定组id or 组名, name or number  
		-c "" : 用的描述 comment
		-d : 创建时指定家目录
		-s : 指定shell
		-G : 指定用户的附加组 GROUP1[,GROUP2,...[,GROUPN]]]
		-r : 创建的是系统用户
		-M : 不创建家目录 

usermod 命令:
	用户属性修改
	格式 - usermod [options] LOGIN
		-u : 新uid
		-g : 新gid
		-s : 新shell
		-G : 新附加组,原来的附加组会覆盖,如果想追加新的附加组 要用 -a选项
		-l : 新的名字
		-d : 修改家目录,同时用 -m 选项 
		-m : 修改家目录时 复制原家目录的内容到新家目录里
		-L : 锁定指定用户,在/etc/shadow 密码字段前加!叹号
		-U : 解锁
		-e : YYYY-MM-DD 指明用户帐号过期日期

userdel 命令:
	格式 - userdel [option] login
		-r 删除用户家目录和邮件目录
	# userdel -r xiaoming 删除xiaoming用户以及家目录和邮件目录

passwd 命令:
	修改当前用户或其他用户的密码(管理员才有修改他人密码的权限)
	格式 - passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
		-l : 锁定指定用户,在/etc/shadow 密码字段前加!叹号
		-u : 解锁
		-n mindays: 指定最短使用期限
		-x maxdays:最大使用期限
		-w warndays:提前多少天开始警告
		-i inactivedays:非活动期限;
		-S 查看用户信息

		--stdin:从标准输入接收用户密码;
			echo "PASSWORD" | passwd --stdin USERNAME

groupadd 命令:
	创建组
	格式 - groupadd [options] group
		-g gid 指定gid
		-r 创建系统组
	# groupadd -r test 添加test系统组

groupmod :
	修改组属性
	groupmod [options] GROUP
	-g 指定新gid
	-n 修改组名 

groupdel 命令:
	删除组
	# groupdel test 删除 test组 此命令比较简单


gpasswd 命令:
	给组添加密码
	- 格式 gpasswd [option] group
	-a , 指定用户到某组 -a 用户名 要加入的组
	-d , 删除用户附加组 -d 用户名 要删除的组
	-A , 设置有管理权限的用户列表
	# gpasswd test  给 test 组加密码
	# gpasswd test -a openstack   将test组添加到 openstack用户的附加组
	# gpasswd test -d openstack	  删除 openstack 的附加组 test

finger 命令:
	查看用户信息
		# finger root
		Login: root                             Name: root
		Directory: /root                        Shell: /bin/bash
		On since Fri Jun 17 09:07 (CST) on pts/1 from 172.16.100.1
		   5 seconds idle
		On since Fri Jun 17 09:15 (CST) on pts/2 from 172.16.100.1
		   3 minutes 41 seconds idle
		Mail last read Tue May 31 01:53 2016 (CST)
		No Plan.

chage 命令:
	修改用户密码过期信息
	- 格式 chage [options] LOGIN
		-E 帐号到期的日期
		-I 停滞时期 如果一个密码已过期这些天,那么此帐号将不可用
		-m 密码可更改的最小天数
		-M 密码有效的最大天数
		-W 用户密码到期前,提前收到警告信息的天数
		-l 查看账户年龄信息

chsh 命令:
	修改用户 shell
	- 格式 chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]
		-s 要修改的shell
		-l 列出当前系统的shell
		# chsh -s /sbin/nologin  openstack
		# chsh openstack 交互式
		# chsh 修改当前用户shell

id 命令:
	id [OPTION]... [USERNAME]
	查看用户的相关信息
	-u 显示用户id
	-g 显示组id
	-G 显示所有组 附加组
	-n 显示组或用户名
	# id -g openstack  显示 openstack 用户的 基本组id
	# id -g -n openstack 显示 openstack 用户的 基本组名
	# id -G -n openstack 显示 openstack 用户的 附加组名


(1)、创建组distro,其GID为2016;
	groupadd distro -g 2016

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
	useradd mandriva -u 1005 -g distro

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
	useradd mageia -u 1100 -d /home/linux

(4)、给用户mageia添加密码,密码为mageedu;
	echo mageedu | passwd --stdin mageia

(5)、删除mandriva,但保留其家目录;
	userdel mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
	useradd slackware -u 2002 -g distro -G peguin

(7)、修改slackware的默认shell为/bin/tcsh;
	usermod slackware -s /bin/tcsh
	
(8)、为用户slackware新增附加组admins;
	gpasswd admins -a slackware

(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
	echo 123 | passwd --stdin slackware
	passwd -n 3 -x 180 -w 3 slackware

(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
	useradd openstack -u 3003 -g clouds -G peguin,nova

(11)、添加系统用户mysql,要求其shell为/sbin/nologin;
	useradd mysql -s /sbin/nologin 

(12)、使用echo命令,非交互式为openstack添加密码。"
	echo 123 | passwd --stdin openstack

原创文章,作者:banbula,如若转载,请注明出处:http://www.178linux.com/20695

(0)
banbulabanbula
上一篇 2016-06-29
下一篇 2016-06-29

相关推荐

  • 计算机组成原理

                                 计算机组成原理 Linux 操作系统是UNIX 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于…

    Linux干货 2016-10-27
  • 马哥教育网络班21期-第八周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 设备 使用场景 功能 区别 集线器 局域网 共享同一网络 不能分隔冲突域 网桥 局域网 连接不同网段,拓展局域网 端口少,可以分隔冲突域 二层交换机 局域网 连接不同局域网段,数据交换 端口更多,可以分隔冲突域,速率更快 三层交换机 局域网,广域网 路由,高速数据交换,分隔广播域…

    Linux干货 2016-09-08
  • 实现cobbler自动安装(基于网络)

    本节索引: 一、cobbler简介 二、实验:模拟搭建cobbler服务器,实现cobbler自动化安装系统 三、实验:实现基于web的cobbler   一、cobbler简介: cobbler 功能:用来快速建立 Linux 网络安装环境 特性: 1.基于PXE的二次封装,将多种安装参数封装到一个菜单,更加方便,自动化 2.Python编写 3…

    Linux笔记 2018-05-27
  • htop与vmstat的使用

    htop一般情况下需要安装,vmstat一般都是系统默认安装的,先说一下htop的安装 首先要安装C库 yum groupinstall development tools 然后下载htop wget http://sourceforge.net/projects/htop/files/latest/download 然后解压 tar -zxf downlo…

    2018-04-15
  • Linux文件管理及bash特性

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 mkdir,rmdir,pwd,cd,cp,touch,mv 1.mkdir:创建目录 -p:递归创建多个目录 2.rmdir:删除空目录 3.pwd:显示当前工作目录 4.cd:切换当前目录 5.cp:复制文件 单源复制:cp [OPTION]…[T] SOURCE DEST   …

    2018-06-29
  • linux系统修复报错的方法 . 3

    stage1如果丢失怎么办
    stage1.5如果丢失怎么办
    后有centos6的启动流程

    2018-05-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-29 15:14

    写的很好,排版很漂亮,加油