第三周作业

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

who | cut -d' ' -f1 | sort -u

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

grep  "$(who | sort -t' ' -k3 -r | cut -d' ' -f1 | head -1)"  /etc/passwd

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

cut -d: -f7 /etc/passwd | sort | uniq -c | sed  's@^[[:space:]]\+@@' | sort -rn -t' ' -k1 | cut -d' ' -f2 | head -1

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

cat /etc/passwd | sort -t: -k3 -n | tail -10 | tr [a-z] [A-Z] > /tmp/maxusers.txt

5. 取出当前主机的IP地址

ifconfig | awk -F' ' '/inet/{print $2}'

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

for i in $(ls -d /etc/*.conf); do echo "$i"; done | cut -d/ -f3 | tr [a-z] [A-Z] > /tmp/etc.conf

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

ls /var | wc -l

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

cat /etc/group | sort -n -t: -k3 | head -10 | awk -F: '{print $1}'

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

cat /etc/passwd /etc/issue | tee /tmp/etc.test

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

  • 创建组distro,其GID为2016;

groupadd -g 2016 distro
  • 创建用户mandriva,其ID号为1005;基本组为distro;

useradd -u 1005 -g distro mandriva
  • 创建用户mageia,其ID号为1100,家目录为/home/linux;

useradd -u 1100 -d /home/linux mageia
  • 给用户mageia添加密码,密码为mageedu;

echo "mageedu" | passwd --stdin mageia
  • 删除mandriva,但保留其家目录

userdel mandriva
  • 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin

useradd -u 2002 -g distro -G distro,peguin slackware
  • 修改slackware的默认shell为/bin/tcsh;

usermod -s /bin/tcsh slackware
  • 为用户slackware新增附加组admins

gpasswd -a slackware admins
  • 为slackware添加密码,且要求密码最短使用期限为3天,最长180天,警告为3天;

passwd  -n 3 -x 180 -w 3 slackware
  • 添加用户openstack,其ID号为3003,基本组为clouds,附加组为peguin和nova;

useradd -u 3003 -g clouds -G clouds,peguin,nova openstack
  • 添加系统用户mysql,要求其shell为/sbin/nologin;

useradd -r -s /sbin/nologin mysql
  • 使用echo命令,非交互式为openstack添加密码;

echo "mageedu" | passwd --stdin openstack

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

(0)
allenallen
上一篇 2016-12-19
下一篇 2016-12-19

相关推荐

  • shell四剑客之find

    find命令详解 ### 命令格式 find pathname -options [-print -exec -ok] ### 命令参数 pathname:find命令所查找的目录路径。例如用.表示当前目录,用/来表示系统根目录 -print:find命令将会匹配的文件输出到标准输出。-e…

    Linux干货 2016-08-22
  • 无痛之ext3升ext4[原创]

    一台文件存储服务器单目录下子目录已经突破31998数限制,造成无法继续创建子目录,服务器系统环境为CentOS5.4 内核版本为2.6.18。解决方案只能是升级到ext4文件系统,首先到https://ext4.wiki.kernel.org/index.php/Ext4_Howto查了一下资料,文中的第一句便是“Ext4 was released as a…

    Linux干货 2015-03-27
  • shell脚本的一点补充

    脚本内容补充 数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 数组名和索引 索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续) 数组的使用 声明数组: declare -a ARRAY_NAME…

    Linux干货 2016-08-24
  • 自动化运维工具Puppet

        开发puppet模块,nginx负载均衡并反代动态请求至httpd,httpd用ajp连接器将反代请求至tomcat,并部署tomcat-session-memcached 架构图为 在master主机上开发的模块为: 1、chrony模块; ├── chrony│   ├── files│…

    2017-07-28
  • 运维第一步

    学友分享各自工作经历

    2018-03-26
  • Linux常用命令及bash特性(1)

    马哥教育网络班22期第二周课程练习 Linux简单使用(1) Linux常用命令介绍 linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。 linux命令在系统中有两种类型:内置Shell命令和Linux命令。可以使用help、…

    Linux干货 2016-08-29