马哥教育网络21期+第三周练习博客
一.回顾第二周的学习内容
1,Linux上的文件管理类的命令: mkdir:创建目录: [root@localhost ~]# mkdir /tmp/fstab2222 [root@localhost ~]# ls -l /tmp/ total 64 drwxr-xr-x. 2 root root 4096 Jul 10 19:32 aaa -rw-r--r--. 1 root root 0 Jul 10 21:19 aaaa drwxr-xr-x. 3 root root 4096 Jul 10 19:37 ccc drwxr-xr-x. 2 root root 4096 Jul 10 19:37 ddd -rw-r--r--. 1 root root 0 Jul 12 09:51 +%F-%H-%M-%S -rw-r--r--. 1 root root 884 Jul 10 19:24 fstab111 drwxr-xr-x. 2 root root 4096 Jul 12 14:30 fstab2222 - cp [OPTION]... [-T] SOURCE DEST - cp [OPTION]... SOURCE... DIRECTORY - cp [OPTION]... -t DIRECTORY SOURCE... 以上注意几点: 例如:cp src DEST.... src是文本文件:如果DEST不存在,则复制到目标文件中,并将src内容覆盖至DEST上: src是文本文件:如果DEST存在,则复制到目标文件中,则将目标文件内容覆盖: 如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中; 如果SRC是目录: 如果DEST不存在:创建目标目录,复制SRC目录中所有文件至DEST中; 如果DEST存在: 如果DEST是文件:报错 如果DEST是目录:复制到此目录中 ☆★☆★这里的其实已经使用alias命名别名的方法进行了命令别名了: [root@localhost ~]# alias alias cp='cp -i' [root@localhost ~]# cat ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias grep='grep --color' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi 此上是对当前用用户永久生效,如想对全局生效则需要修改/etc/profile.d/*.sh rmdir:删除目录命令 如要删除含有内容的目录:建议使用rm -rf强制删除命令:此条命令慎用! mv:移动或剪切 mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 常用选项: -i:交互式 -f:强制 rm:删除命令 rm [OPTION]... FILE... 常用选项: -i: 交互式 -f: 强制删除 -r: 递归 glob文件通配符: *:任意长度字符: ?:任意单个字符: []:匹配内的任意单个字符: [^]:匹配内以外的任意字符: [:space;]:表示空白字符: [:digit:]:任意数字-->[0-9]: [:lower:]任意小写字母: [:upper:]任意大写字母; [:alpha:]任意大小写字母; [:alnum:]任意数字或字母; [:punct:]标点符号; stat查看数据源文件: [root@localhost tmp]# stat /etc/ File: `/etc/' Size: 12288 Blocks: 24 IO Block: 4096 directory Device: 802h/2050d Inode: 1179649 Links: 114 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-12 09:54:41.916999187 -0400 Modify: 2016-07-10 20:55:06.585989155 -0400 Change: 2016-07-10 20:55:06.585989155 -0400
二.第三周博客及其作业:
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[root@localhost tmp]# who | cut -d' ' -f1 | sort -u root wostop
取出最后登录到当前系统的用户的相关信息。
[root@localhost tmp]# w | tail -n1 wostop pts/4 192.168.1.3 14:45 1:11m 0.01s 0.01s -bash
取出当前系统上被用户当作其默认shell的最多的那个shell。
[root@localhost ~]# cat /etc/passwd | cut -d':' -f7 |sort| uniq -c | sort -n | tail -n1 29 /sbin/nologin
将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
[root@localhost ~]# sort -t':' -k3 -n /etc/passwd | tail -n1 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
ifconfig |grep '^[[:space:]]\{1,\}inet' | cut -d':' -f3 | cut -d' ' -f1 ☆★☆★此上为如果当前主机有多个地址,包括loopback地址都能抓出来!!!!☆★☆★ [root@localhost ~]# ifconfig |grep '^[[:space:]]\{1,\}inet' | head -n1 | cut -d':' -f3 | cut -d' ' -f1 192.168.1.255
列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
ls /etc/*.conf | tr 'a-z' 'A-Z' >> /tmp/etc.conf1 ls /etc/*.conf | tr 'a-z' 'A-Z' | tee /tmp/etc.conf
显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# ls -l /var/ |wc -l 22
取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# cat /etc/group | sort -t':' -k3 -n | tail -n10 | cut -d':' -f1 abrt fuse pulse-access pulse rtkit desktop_user_r desktop_admin_r wostop user1 nfsnobody
将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
cat /etc/fstab /etc/issue >> /tmp/etc.test cat /etc/fstab /etc/issue &>> /tmp/etc.test
找出ifconfig命令结果中1-255之间的数值;
[root@localhost ~]# ifconfig | grep '[0-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}' inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 inet addr:127.0.0.1 Mask:255.0.0.0
找出ifconfig命令结果中的IP地址;
[root@localhost ~]# ifconfig | grep 'inet addr:[1-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][1-9]\{1,\}' inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 inet addr:127.0.0.1 Mask:255.0.0.0 ifconfig | grep -o 'inet addr:[1-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][1-9]\{1,\}' **inet addr:192.168.1.5** **inet addr:127.0.0.1** ☆★☆★此处请老师帮忙看一下,我是否匹配对!!
请总结描述用户和组管理类命令的使用方法并完成以下练习:
用户和组管理 Linux用户:USERNAME/UID 管理员:root,0 普通用户:1-65535 系统用户:1-499 Linux组:Gropuname/GID 管理员组:root 0 普通组: 系统组:1-499(CentOS6),1-999(CentOS7) 普通组:500+(CentOS6),1000+(CentOS7) Linux安全上下文: 运行中的程序:进程 (process) 以进程发起者的身份运行: root:cat tom:cat 进程所能够访问的所有资源的权限取决于进程的发起者的身份; Linux组的类别: 用户的基本组(主组): 此外用户也可以拥有额外组: Linux用户和组相关的配置文件: /etc/passwd:用户及其属性信息(名称,UID,基本组ID等等) /etc/group:组及其属性信息: /etc/shadow:用户密码及其相关属性: /etc/gshadow:组密码及其相关属性:在用户完成基本组切换时使用 [root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash [root@localhost ~]# cat /etc/group root:x:0: [root@localhost ~]# cat /etc/shadow root:$6$FcyUxvmkdOBFwgZe$hiQvqaZUBrya755brzKaSPaFXh0.3oKlsOo2UvcAr8UIZPsZocBda2y10qPADitakgpQYe0jP3DfReWVRl [root@localhost ~]# cat /etc/gshadow root::: /etc/passwd: name:password:UID:GID:GECOS:directory:shell 用户名:密码:UID:GID:GECOS:主目录:默认shell /etc/group: group_name:password:GID:user_list 组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号) /etc/shadow 用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
相关命令
**用户创建:useradd** useradd [options] LOGIN -u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs -g GID:指明用户所属基本组,可为组名,也可以GID; -c "COMMENT":用户的注释信息; -d /PATH/TO/HOME_DIR: 以指定的路径为家目录; -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中; -G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在; -r: 创建系统用户 CentOS 6: ID<500 CentOS 7: ID<1000 默认值设定:/etc/default/useradd文件中 练习:创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为"Gentoo Distribution"; useradd gentoo -G distro,linux -s /bin/csh -c "Gentoo Distribution" **组创建:groupadd** groupadd [OPTION]... group_name -g GID: 指明GID号;[GID_MIN, GID_MAX] -r: 创建系统组; CentOS 6: ID<500 CentOS 7: ID<1000 查看用户相关的ID信息:id id [OPTION]... [USER] -u: UID -g: GID -G: Groups -n: Name 切换用户或以其他用户身份执行命令:su su [options...] [-] [user [args...]] **切换用户的方式:** su UserName:非登录式切换,即不会读取目标用户的配置文件; su - UserName:登录式切换,会读取目标用户的配置文件;完全切换; ☆★☆★Note:root su至其他用户无须密码;非root用户切换时需要密码;☆★☆★ **用户属性修改:usermod** usermod [OPTION] login -u UID: 新UID -g GID: 新基本组 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append; -s SHELL:新的默认SHELL; -c 'COMMENT':新的注释信息; -d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项; -l login_name: 新的名字; -L: lock指定用户 -U: unlock指定用户 -e YYYY-MM-DD: 指明用户账号过期日期; -f INACTIVE: 设定非活动期限; **给用户添加密码:passwd** passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限 passwd: 修改自己的密码; 常用选项: -l: 锁定指定用户 -u: 解锁指定用户 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天开始警告 -i inactivedays:非活动期限; --stdin:从标准输入接收用户密码; echo "PASSWORD" | passwd --stdin USERNAME Note: /dev/null, bit buckets /dev/zero, **删除用户:userdel** userdel [OPTION]... login -r: 删除用户家目录; **组属性修改:groupmod** groupmod [OPTION]... group -n group_name: 新名字 -g GID: 新的GID; **组删除:groupdel** groupdel GROUP **组密码:gpasswd** gpasswd [OPTION] GROUP -a user: 将user添加至指定组中; -d user: 删除用户user的以当前组为组名的附加组 -A user1,user2,...: 设置有管理权限的用户列表 **newgrp命令:临时切换基本组;** 如果用户本不属于此组,则需要组密码; **修改用户属性:chage** chage [OPTION]... LOGIN -d LAST_DAY -E, --expiredate EXPIRE_DATE -I, --inactive INACTIVE -m, --mindays MIN_DAYS -M, --maxdays MAX_DAYS -W, --warndays WARN_DAYS
请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2016;
[root@localhost ~]# groupadd -g 2016 distro [root@localhost ~]# cat /etc/group | grep "^distro" distro:x:2016:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@localhost ~]#useradd -u 1005 -g distro mandriva [root@localhost ~]# cat /etc/passwd /etc/group | grep "2016" mandriva:x:1005:2016::/home/mandriva:/bin/bash distro:x:2016:
#### (3)、创建用户mageia,其ID号为1100,家目录为/home/linux; #### [root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# cat /etc/passwd | grep "^mageia" mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu;
[root@localhost ~]# useradd mageia ||echo "mageedu" | passwd --stdin mageia useradd: user 'mageia' already exists Changing password for user mageia. passwd: all authentication tokens updated successfully.
(5)、删除mandriva,但保留其家目录;
[root@localhost ~]# cd /home/ [root@localhost home]# ls gentoo linux lost+found mandriva user1 wostop [root@localhost home]# userdel mandriva [root@localhost home]# ls gentoo linux lost+found mandriva user1 wostop
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@localhost ~]# useradd -u 2002 -g distro -G peguin shackware root@localhost ~]# cat /etc/passwd /etc/group | grep "shackware" shackware:x:2002:2016::/home/shackware:/bin/bash peguin:x:2017:shackware
(7)、修改slackware的默认shell为/bin/tcsh;
[root@localhost ~]# usermod -s /bin/tcsh shackware [root@localhost ~]# cat /etc/passwd | grep "^shackware" shackware:x:2002:2016::/home/shackware:/bin/tcsh
(8)、为用户slackware新增附加组admins;
[root@localhost ~]# usermod -a -G admins shackware [root@localhost ~]# id shackware uid=2002(shackware) gid=2016(distro) groups=2016(distro),2018(admins)
(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
[root@localhost ~]# echo 'mageedu' | passwd --stdin shackware Changing password for user shackware. passwd: all authentication tokens updated successfully. [root@localhost ~]# passwd -n 3 -x 180 -w 3 shackware Adjusting aging data for user shackware. passwd: Success
(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
[root@localhost ~]# useradd -u 3003 -g clouds -G peguin,nova openstack [root@localhost ~]# id openstack uid=3003(openstack) gid=2019(clouds) 组=2019(clouds),2017(peguin),2020(nova)
(11)、添加系统用户mysql,要求其shell为/sbin/nologin;
[root@localhost ~]# useradd -s /sbin/nologin mysql [root@localhost ~]# cat /etc/passwd | grep "^mysql" mysql:x:3004:3004::/home/mysql:/sbin/nologin
(12)、使用echo命令,非交互式为openstack添加密码。
[root@localhost ~]# echo 'mageedu' | passwd --stdin openstack<--更改用户 openstack 的密码 。 Changing password for user openstack. passwd: all authentication tokens updated successfully.
原创文章,作者:wostop,如若转载,请注明出处:http://www.178linux.com/24102
评论列表(1条)
写的很好,排版也很漂亮,在仔细看看ip地址匹配的问题,加油