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

相关推荐

  • 软件包管理详解

      软件包管理器 1、功能: (1)将软件包打包成一个文件,其中包括: ①二进制程序 ②库文件 ③配置文件 ④帮助文件 (2)生成数据库,追中所安装的每一个文件。 2、软件包管理器的核心功能: (1)制作软件包 (2)安装、卸载、升级、查询、校验 3、不同发行版的不同的…

    2017-08-11
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件 不管是普通的文件、目录,还是跟硬件相关的字符设备、块设备、套接字等在Linux中都被当作文件来进行统一的操作管理。 单个程序完成简单的功能,复杂的功能由多个程序组合而成 单个程序只实现简单功能,保证了其高效运行,而复杂功能由多个简单程序组合而成,也能保证一定的高效性。 尽量避免与用户交互 程序从启动开始到结束不需要用户参与,…

    Linux干货 2017-07-02
  • N22-第五周作业-冥界之王

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;    [root@CentOS6 ~]# cat /boot/grub/grub.conf | grep -E  "^[[:space:]]{1,}"…

    Linux干货 2016-09-19
  • linux终端类型

    人机交互界面:GUI、CLI GUI: gnome:c,gtk kde:c++,qt CLI: bash,zsh,sh,csh,ksh 不同CLI间跳转:alt+f1\f2\f3\f4   终端类型: 物理终端、控制台终端:/dev/console,控制台console 计算机显示器通常被称为控制台终端(Console) 虚拟终端:/dev/tty…

    Linux干货 2016-10-14
  • 笔记整理-软件包管理

      管理包工具: rpm  集包与工具于一身的管理器 获取途径: https://www.centos.org/download/ http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com   常见包的文件名组成: zlib -3.0-11.e17.x…

    Linux笔记 2018-04-22
  • 马哥教育网络班21期+第1周课程练习

    计算机的组成及其功能 CPU:运算器、控制器,内存:存储器,输入设备、输出设备,IO:磁盘、网卡 Linux的发行版 slckware: suse debian:ubuntu redhat:rhel、centos、fedora Linux的哲学思想 一切皆文件;由众多单一目的小程序组成;尽量避免跟用户交互;使用纯文本文件保存配置信息。 命令的使用格式 命令+…

    2016-06-26

评论列表(1条)

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

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