N26-第三周

1、列出当前系统上所有已经登录的用户的用户名,注意;同一个用户登录多次,则只显示一次即可。
[root@localhost ~]# who
root     tty1         2017-03-03 19:28
root     pts/0        2017-03-03 19:26 (10.1.1.1)
centos   pts/1        2017-03-03 19:37 (10.1.1.1)
user1    pts/2        2017-03-03 19:36 (10.1.1.1)
root     pts/3        2017-03-03 19:38 (10.1.1.1)
[root@localhost ~]# who | cut -d’ ‘ -f1 | sort -u
centos
root
user1

2、取出最后登录到当前系统的用户的相关信息。
[root@localhost ~]# who
root     tty1         2017-03-03 19:28
root     pts/0        2017-03-03 19:26 (10.1.1.1)
centos   pts/1        2017-03-03 19:37 (10.1.1.1)
user1    pts/2        2017-03-03 19:36 (10.1.1.1)
root     pts/3        2017-03-03 19:38 (10.1.1.1)
[root@localhost ~]# id $(who | sort -t’:’ -k2 -n |tail -1|cut -d’ ‘ -f1)
uid=0(root) gid=0(root) 组=0(root)

3、取出当前系统上被用户当做其默认shell的最多的那个shell。
[root@localhost ~]# cat /etc/passwd | cut -d’:’ -f7 | uniq -c | sort -t’ ‘ -k2 -n
      1 /bin/bash
      1 /bin/bash
      1 /bin/sync
      1 /bin/tcsh
      1 /sbin/halt
      1 /sbin/shutdown
      1 /usr/sbin/nologin
      4 /sbin/nologin
      6 /bin/bash
      13 /sbin/nologin
[root@localhost ~]# cat /etc/passwd | cut -d’:’ -f7 | uniq -c | sort -t’ ‘ -k2 -n |
tail -1 | cut -d’ ‘ -f7
/sbin/nologin

4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt中。
[root@localhost ~]# cat /etc/passwd | cut -d’:’ -f1,3 | sort -t’:’ -k2 -n| tail -10| cut -d’:’ -f1|tr [a-z] [A-Z] > /tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt 
SYSTEMD-BUS-PROXY
GENTOO
FEDORA
ABC
CENTOS
USER1
BASH
TESTBASH
BASHER
NOLOGIN

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

[root@localhost ~]# ifconfig | grep “inet\b” 
        inet 192.168.1.35  netmask 255.255.255.0  broadcast 192.168.1.255
        inet 10.1.1.2  netmask 255.255.255.0  broadcast 10.1.1.255
        inet 127.0.0.1  netmask 255.0.0.0
[root@localhost ~]# ifconfig | grep “inet\b” |cut -d’ ‘ -f10
192.168.1.35
10.1.1.2
127.0.0.1

6、取出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
YUM.CONF
[root@localhost ~]# ls /etc/ | grep “.conf\b$” | tr [a-z] [A-Z] > /tmp/etc.conf
[root@localhost ~]# cat /tmp/etc.conf 
ASOUND.CONF
DNSMASQ.CONF
DRACUT.CONF
E2FSCK.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
RESOLV.CONF
RSYSLOG.CONF
SESTATUS.CONF
SUDO.CONF
SUDO-LDAP.CONF
SYSCTL.CONF
TCSD.CONF
VCONSOLE.CONF
YUM.CONF
7、显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# ls -A /var/ 
adm    crash  empty  gopher    lib    lock  mail  opt       run    tmp       yp
cache  db     games  kerberos  local  log   nis   preserve  spool  .updated
[root@localhost ~]# ls -A /var/ |wc -l
21

8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# cat /etc/group | sort -t’:’ -k3 -n |head -10
root:x:0:abc
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
[root@localhost ~]# cat /etc/group | sort -t’:’ -k3 -n | head -10 | cut -d’:’ -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
[root@localhost ~]# cat /etc/issue /etc/fstab > /tmp/etc.test
[root@localhost ~]# cat /tmp/etc.test 
\S
Kernel \r on an \m

/etc/fstab

Created by anaconda on Fri Dec 30 03:07:19 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=25d15155-5eb2-4df2-b31e-cf9d79916eeb /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

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

    (1)groupadd:添加组;
-g GID:指定GID;默认是上一个组的GID+1;
-r:创建系统组;
    (2)useradd:创建用户

-u, –uid UID:指定UID;
-g,–gid GROUP:指定基本组ID,此组要事先存在;
-G, –groups GROUP1[,GROUP2,…[,GROUPN]]];指明用户所属的附加组,多个组之间用逗号分割
-c,–comment COMMENT:指明注释信息;
-d,–home HOME_DIR;创建以指定路径为用户的家目录;通过复制/etc/skel此目录并重命名实现,指定的家目录如果事先存在,则不会为用户复制环境配置文件;
-s,–shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件;
-r,–system:创建系统用户;
-M:不为用户创建主目录;
-f,–inactivate INACTIVE:密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能;
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
useradd -D:显示创建用户的默认配置;
useradd -D 选项:修改默认选项的值;修改的结果保存于/etc/default/useradd

    (3)passwd:密码命令
      passwd:修改用户自己的密码;
               passwd USERNAME :修改指定用户的密码,但默认仅root用户有此权限;
        -l,-u:锁定和解锁用户密码;
        -d:清除用户密码;
      –stdin:
         echo “PASSWORD” | passwd –stdin USERNAME

    (4)userdel:删除用户
userdel [选项] 登录名
-r:删除用户时一并删除家目录

    (5)usermod:修改用户属性
usermod [选项] 登录名
-u, –uid UID:指定UID,修改用户的ID为此处指定的新ID
-g,–gid GROUP:修改用户所属的基本组;
-G, –groups GROUP1[,GROUP2,…[,GROUPN]]];修改用户所属的附加组,原来的附加组会被覆盖;
-a,–append;与-G一同使用,用于为用户追加新的附加组;
-c,–comment COMMENT:修改注释信息;
-d,–home HOME_DIR;修改以指定路径为用户的家目录;用户原有的文件不会被转移至新位置;
-m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;原文件会保留
-l,–login NEW_LOGIN:修改用户名;
-s,–shell SHELL:修改用户的默认shell;
-L,–lock:锁定用户密码;即在用户原来的密码字符串之前添加一个叹号;
-U,–unlock;解锁用户密码;

    1、创建组distro,其GID为2016;

[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:

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

[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# tail -1 /etc/passwd
mandriva:x:1005:2016::/home/mandriva:/bin/bash
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 组=2016(distro)

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

[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash

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

[root@localhost ~]# echo ‘mageedu’ | passwd –stdin mageia
更改用户 mageia 的密码 。
passwd:所有的身份验证令牌已经成功更新。

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

[root@localhost ~]# tail -2 /etc/passwd
mandriva:x:1005:2016::/home/mandriva:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ll /home/ | grep mandriva
drwx——. 2     1005 distro   59 3月   4 11:03 mandriva

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

[root@localhost ~]# useradd slackware -u 2002 -g distro -G peguin
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),5001(peguin)

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

[root@localhost ~]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/bash
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# tail -1 /etc/passwd           
slackware:x:2002:2016::/home/slackware:/bin/tcsh

    8、为用户slackware新增附加组admins;
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),5001(peguin),5004(admins)

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

(0)
徐 琦徐 琦
上一篇 2017-03-04
下一篇 2017-03-04

相关推荐

  • Linux进程管理之“四大名捕”

    一、四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”、内功卓越的高手“铁手”、腿功惊人的“追命”和剑法一流的“冷血”本文四大名捕由linux命令所出演      无情:ps     出演      铁…

    Linux干货 2016-04-25
  • 磁盘及文件系统管理应用实例

    磁盘及文件系统管理应用实例 1.创建一个10G的分区,并格式化为ext4文件系统 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 [root@master ~]# fdisk /dev/sdb Command (m for…

    Linux干货 2017-08-14
  • 07程序包管理器简介

    源代码命名方式,name-version.tar.gz|bz2|xz,    –>version:major.minor.release 要将一个源代码程序安装到Linux系统上,一般有两个方法。 1、找到源代码,手动编译安装。解压,./configure  –> make –&g…

    Linux干货 2016-11-03
  • M20-1 8月3号 ACL访问控制列表

    一、acl简介:   access control list,用于实现灵活的权限管理,除了文件的所有者,所属组和其他人,可以对更多的用户设置权限,而acl生效的顺序是所有者,自定义用户组,自定义组,其他人。 二、ACL的设置技巧:   getfacl:取得某个文件/目录的ACL设置项目   setfacl:设置某个目录/文件的A…

    Linux干货 2016-08-08
  • 第二次作业

    一、只显示某目录下隐藏文件    答案1:#ls -d /tmp/*/    但是此答案是我在同学知道下完成,但是原理没明白 如果单独执行        #ls -d  &nbsp…

    Linux干货 2016-08-03
  • 基于rsync+inotify实现数据实时同步传输

    前言 与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但随着文件数量的增大和实时同步的要求,rsync已不能满足需求,随之rsync+inotify便应运而生。本文将讲解rsync的基础知识和如何基于rsync+inotify实现数据实时同步传输。 rsync相关介…

    Linux干货 2015-04-27

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-07 15:06

    完成的很好,希望能熟练灵活使用这些基础命令,加油!