Linux基础知识(三)

 本文的主要内容是:

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

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

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

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

 5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

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

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

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

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

 10、总结描述用户和组管理类命令的使用方法以及一些具体的示例

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

     who | cut -d" " -f1 | uniq

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

     last -n 1 | cut -d" " -f1 | head -1

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

     cat /etc/passwd | cut -d":" -f7 | uniq -c | sort -n | tail -1 | awk '{print $2}'

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

     cat /etc/passwd | sort -n -k 3 -t: | tr 'a-z' 'A-Z' >/tmp/maxusers.txt

 5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

     ifconfig eth0 | egrep -o "inet addr:[^ ]*" | cut -d: -f2

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

     ls /etc/*.conf  |  tr 'a-z' 'A-Z'  > /tmp/etc.conf

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

     ls -l /var/* | wc -l

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

     cat /etc/group | sort -n -k 3 -t: | head -10 | cut -d":" -f1

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

     cat /etc/fstab /etc/issue >/tmp/etc.test

 10、总结描述用户和组管理类命令的使用方法以及一些具体的示例

  Linux是一个多用户操作系统,即同时支持多个用户同时登录到系统共同使用计算机资源,那么每个要登录到计算机系统的唯一的标识就叫做一个用户,这个唯一的标识实现了资源的隔离,使得多个用户同时登录到系统时不会导致系统的混乱,那么,当用户过多时,对每个用户的管理就会变得十分困难和繁琐,于是,用户组的作用就是实现对用户的分组管理,使得对用户的管理变得简洁。而对于计算机来说,字符串并非是其擅长处理的,数字才是,所以每个用户都有一个唯一的标识与用户相对应的数字,叫做用户或用户组的id,类似人的身份证。但是并非每个人都有使用计算机资源的权利,因此,每个用户想要登录到系统还需要使用凭证,通俗来说就是需要所谓的密码来登录系统。而用户登录系统的整个过程则是根据/etc/passwd文件来实现验证。那么对于管理 员来说,对系统上用户的管理就显得至关重要。

Linux中用户有:管理员和普通用户两类:

 管理员:也叫超级用户,用户id为0,拥有系统管理的最高权限

 普通用户:系统用户和 登录用户:

     系统用户:centos6上用户id是1-499,centos7上则是1-999;

      登录用户:centos6上用户id是500-60000,centos7则是1000-60000; 

Linux上的用户组:管理员组和普通用户组:

   管理员组:组id为0

   普通用户:分为系统用户组和登录用户组

     系统用户组:centos6上组id为1-499,centos7上组id为1-999

     登录用户组:centos6上组id是500-60000,centos7组id为1000-60000;’

常用的用户管理命令有:

(1).查看系统上有多少个用户:

    cat /etc/passwd | wc -l

(2)查看每个用户的用户id和组id信息

    id username

(3)useradd:添加用户

  语法:useradd [options] use_rname

  常用选项:

    -r:创建系统用户,所谓的系统用户就是系统刚启动时还没有用户登录时,很多服务进程需要启动时必须以某个用户的身份运行,而此类用户就是系统用户。

    -u uid:创建用户时指定用户id

    -g gid:创建用户时指定用户的基本组id

    -G Group_name:创建用户是指定附加组,多个组之间用逗号分隔

    -d  dir:创建家用户时指定其家目录

    -s shell :创建用户时指定其默认的shell

    

(4).groupadd:添加用户组

  语法:groupadd [options] group_name   

  常用选项:

    -g gid:创建组时指定用户组id,若不指定则在上一个组id的值加1

    -r :创建系统组

 

(5).usermod:修改用户属性

  语法:usermod [options] username

  常用选项:

   -u uid:修改uid为指定的id

   -g gid:修改gid为指定的id

   -G group_name:修改附加组

   -m dir:修改家目录为指定的目录

   -l login_name:修改登录名

   -s shell:修改用户的默认shell

   -L:锁定指定的用户

   -U:对指定的用户解锁

 

(6).userdel:删除用户

  语法:userdel [options] user_name

  常用选项:

   -r : 删除用户时同时删除其家目录

(7).passwd:修改用户密码

  语法:passwd [options] user_name

  常用选项:

   -d : 清除用户密码串

    -l:锁定用户

    -S:查看指定用户的密码状态信息

    -u:对指定用户解锁

    -e date:指定过期时间

    -i :非活动时间

    -n :密码的最短使用期限 

(8).gpasswd:管理用户组

  语法:gpasswd [options] group_name

  常用选项:

    -a username:将指定的用户添加到指定组中

    -d username:将指定用户从指定的组中移除

使用示例:

(1)、创建组distro,其GID为2016  

     groupadd -g 2016 distro

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

 useradd -u 1005 -g distro  mandriva

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

 useradd -u 1100 -d /home/linux mageia

(4)、给用户mageia添加密码,密码为mageedu;

   echo  "mageedu" | passwd –stdin mageia

(5)、删除mandriva,但保留其家目录;

 userdel mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

     useradd -u 2002 -g distro -G peguin slackware

(7)、修改slackware的默认shell为/bin/tcsh;

     usermod -s /bin/tcsh slackware

(8)、为用户slackware新增附加组admins;

      usermod -G admins

(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;

     passwd -n 3 -x  180 -w 3 slackware

(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;

      useradd -u 3003 -g clouds -G peguin,nova openstack

(11)、添加系统用户mysql,要求其shell为/sbin/nologin;

      useradd -r -s /sbin/nologin mysql

(12)、使用echo命令,非交互式为openstack添加密码。

     echo "openstack"  | passwd openstack

    

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

(0)
上一篇 2016-10-02 22:37
下一篇 2016-10-03 22:43

相关推荐

  • C++的std::string的“读时也拷贝”技术!

    C++的std::string的读时也拷贝技术! 嘿嘿,你没有看错,我也没有写错,是读时也拷贝技术。什么?我的错,你之前听说写过时才拷贝,嗯,不错的确有这门技术,英文是Copy On Write,简写就是COW,非常’牛’!那么我们就来看看这个’牛’技术的效果吧。 我们先编写一段程序 #include <string> #include…

    Linux干货 2015-04-03
  • NTP服务器搭建

        1、NTP(Network Time Protocol)         在计算机世界中,NTP(Network Time Protocol,网络时间协议)被广泛用于对时间的统一性和准确性要求非常高的场景,是用来使网络中的各个计算机时间同步的一种协议。…

    Linux干货 2015-11-18
  • LB Cluster 负载均衡集群 —-lvs 配置详解

    lvs : ipvs scheduler: 根据其调度时是否考虑各RS当前的负载状态,可分为静态方法和动态方法两种: 1、静态方法:仅根据算法本身进行调度; RR:roundrobin,轮询; WRR:Weighted RR,加权轮询; SH:Source Hashing,实现session sticy,源IP地址hash;将来自于同一个IP地址的请求始终发…

    Linux干货 2016-10-30
  • bash脚本编程class3

    bash脚本编程class3—函数定义与数组使用相关     一.函数的使用以及数组的定义   我们通过学习知道,当编辑一个shell脚本的时候,可以在这个shell脚本中调用其他的shell脚本来实现特定的功能。在实际工作环境中,用很多shell实现的功能是我们常常使用到的,如果一次一次的调用这些shell脚本会显得非常麻烦。…

    Linux干货 2016-08-24
  • Bash编程之条件测试

    Bash 包含强大的编程功能,其中包括丰富的可测试文件类型和属性的函数,以及在多数编程语言中可以使用的算术和字符串比较函数。理解不同的测试并认识到 shell 还能把一些操作符解释成 shell 元字符,是学好Bash编程的重要一环。 一、测试命令 Bash中一条命令退出状态码可作为测试条件,执行成功返回0,代表布尔类型true;反之执行失败返回1-255之…

    Linux干货 2016-08-21
  • 常用linux命令小计(1)

    关于linux那些事儿—常用命令小结(1) 系统相关信息 Uname –m显示处理器的架构 Uname –r显示正在使用的内核版本 cat /proc/cpuinfo显示cpu的具体信息 cat /proc/version显示内核的版本 cat /proc/swaps显示哪些分区被使用 data显示系统日期 cal –y显示当年的日历 date 021920…

    Linux干货 2017-02-19

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-10 22:18

    第五题其实如果主机有多个IP,这个地方只能取出来一个,可以尝试多配置几个都取出来。