马哥教育网络班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

相关推荐

  • 第二周

    3、(1)、  :  ~]# mkdir -p /tmp/{a_c,a_d,b_c,b_d}                  or     ~]# …

    Linux干货 2016-08-22
  • man帮助

                                        正确使用 man帮助      在生产过程中,我们会遇到不同的技术故…

    2017-05-30
  • Linux 第一周总结

    一、描述计算机的组成及其功能。 计算机组成是由软件和硬件组成的。 硬件部分由cpu、主板、存储器、输入输出设备组成 Cpu:主要是解释计算机指令以及处理计算机软件中的数据。 主板:是微机最基本的也是最重要的部件之一,一般有BIOS芯片、I/O控制芯片、键和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。 存储器:是存储程序和各…

    2017-07-02
  • 磁盘管理之LVM

    1、什么是LVM     LVM(Logical Volume Manager)逻辑卷管理,是linux环境下将一种将一个或多个硬盘的分区在逻辑上集合来呈现给上层应用,对磁盘实现动态管理的机制。相对于普通的磁盘分区有很大的灵活性,使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。 2、专业术语     &nbsp…

    Linux干货 2016-09-02
  • PXE原理详解及实践

    一、PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol…

    Linux干货 2017-01-10
  • 一键搭建mysql集群系列二

    mysql 5.7  主从复制 本节是在上一节的基础之上做的操作,上节我们通过脚本实现了一键自动化安装mysql5.7,这次我们要在三台机器上部署msyql5.7,并实现主从复制,实现的宗旨是,能自动化,就尽量自动化,实在不能自动化,那就手工化 用的脚本和文件说明1.install_mysql.sh 自动化安装mysql脚本2.ntpdate.sh 时间同步…

    2017-05-21

评论列表(1条)

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

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