马哥教育网络班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运维】–马帮高薪就业系列文章之一线资深运维

    时光荏苒,马哥linux运维在北京开校已经有一些时日了,随着大家对马哥linux的密切关注,来跟随小编走进我们马哥linux运维的北京校区 关于学员就业这点事 很多小伙伴在马哥学习一段时间后,获得了快速的成长,不少学员已经进入著名互联网公司拿到了高薪,有的在成长性公司成为技术骨干,有的已经出国等,我们回顾下最近几个月很多学员的成长,收获,自己的心得感受吧 当…

    2015-11-06
  • Linux-vim

    vim简介 vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个Vim编辑器的图形版本   打开文件 # vim [OPTION]&#8…

    2018-04-08
  • 组建RAID5重启系统,出现md127的解决办法

        我这里在组建RAID5之后重启了系统,当时/dev/md0变成了/dev/md127。出现这问题主要是我没有配置生成/etc/mdadm.conf文件,如果哪位伙伴出现类似我这种情况,而不是通过我这种方法解决的,希望能分享一下你的解决方法,谢谢。  先停止md127 [root@client3&nbs…

    Linux干货 2016-01-05
  • N25_第六周作业

    1、复制/etc/rc.d/rc.sysinit文件至tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+@#&@g(CentOS7下并未看到这个文件) 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;…

    Linux干货 2017-02-15
  • haproxy 简单实现80转后端8000

    一,安装 yum -y install gcc automake autoconf libtool make tar -xzf haproxy-1.6.8 cd haproxy-1.6.8 make TARGET=linux2628 make install 二,编辑配置文件 Haproxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择作为配…

    Linux干货 2016-09-19
  • 第一周作业

    一、描述计算机的组成及其功能 计算机是由处运算器,控制器,储存器,输入输出设备组成 运算器:执行各种计算和逻辑运算操作 控制器:完成协调和指挥整个计算机系统的操作 储存器:暂时存储或者长期存储数据 输入设备:向计算机输入数据和信息的设备 输出设备:计算机硬件系统的终端设备 二、按系列罗列Linux的发行版,并描述不同发行版之间的联系和区别 Linux发行版=…

    Linux干货 2016-12-05

评论列表(1条)

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

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