Linux基础之用户及组管理

grep扩展应用,用户管理,组管理,用户及组管理命令

grep扩展应用

  1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    who | grep -o “^[^[:space:]]\+” | uniq
  2. 取出最后登录到当前系统的用户的相关信息。
    grep “$(last | grep -o “^[^[:space:]]\+” | uniq -1)” /etc/passwd
  3. 取出当前系统上被用户当作其默认shell的最多的那个shell。
    echo $(cut -f7 -d’:’ /etc/passwd | sort | uniq -c | sort -rn | head -1) | cut -d ” ” -f2
  4. 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    sort –t : -nk /etc/passwd | tail -10 | tr a-z A-Z &> /tmp/maxusers.txt
  5. 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    ifconfig | grep -o “[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}”
  6. 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    ls -l /etc | grep -o “[[:alnum:]]\+.conf” | tr a-z A-Z &> /tmp/etc.conf
  7. 显示/var目录下一级子目录或文件的总个数。
    ls -l /var | wc -l
  8. 取出/etc/group文件中第三个字段数值最小的10个组的名字。
    cat /etc/group | sort -rnk 3 -t: | tail | cut -d”:” -f1
  9. 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    cat /etc/fstab /etc/issue > /tmp/etc.test

 

用户及组管理命令

useradd命令:添加用户
规则:useradd [OPTION] USERNAME
示例:useradd –u 1000 testuser
常用选项:
-u:定义UID
-g:定义用户的基本组
-c “”:添加用户的注释信息,comment
-d:指定用户的家目录
-s SHELL:定义用户的默认shell
-G:定义用户的一个或多个附加组,用逗号隔开,并且这些组必须已存在
-D:修改用户的默认信息(其实是间接修改了/etc/default/useradd文件)
-s:修改用户的默认shell信息

groupadd命令:创建组
规则:groupadd [OPTION] GROUPNAME
示例:groupadd –g 1000 testgroup1
常用选项:
-g GID:设定组的ID
-r:将此次创建的组设定为系统组

id命令:查看用户信息
规则:id [OPTION] [USERNAME]
示例:id(输出当前登录用户的各种信息,包括组,附加组,注释等等信息)
常用选项:
-u:只显示UID
-g:只显示基本GID
-G:只显示附加组ID
-n:显示用户的name(必须和以上三个参数一起配合用,不能单独使用)

su命令:切换用户或以另外用户的身份运行命令
规则:su [OPTION] [-| l] [user]
示例:su – root(切换到root用户,需要输入root’密码)
常用用法:
su USERNAME:非登录式切换,不会读取目标用户的配置文件
su – USERNAME 或者su –l USERNAME:登录式切换,重新以目标用户的身份登录
注意:root切换到其他用户无需输入密码,其他用户则需要输入密码,非登录式切换也需要的哟

usermod命令:修改用户的属性
规则:usermod [OPTION] USERNAEM
示例:usermod –u 666 test01(将test01的UID修改为666)
常用选项:
-u UID:修改用户UID
-g GID:修改用户的基本组ID
-G group1,group2:为用户修改或添加附加组
-s SHELL:修改用户的shell
-c“comment”:修改用户的注释信息
-d /path/to/newhome:修改用户的家目录(原来的家目录文件不会移至新目录,除非加上-m选项)
-l newname:修改用户的名称为newname
-L:锁定用户
-U:解锁已锁定的用户
-e +时间:设置用户的过期时间
-f inactive:指定用户的非活动期限

passwd命令:修改用户的密码
注意:root可以随意修改任意用户的密码,普通用户只能修改自己的密码
规则:passwd [OPTION] UserName
示例:~]#:passwd test01(echo “string” | passwd –stdin test01)
常用选项:
-l:锁定用户
-u:解锁用户
-n mindays:指定最短的使用期限
-x maxdays:使用最大期限
-w warndays:提前多少天开始告警
-i inactive-days:非活动期限
–stdin:从标准输入接收用户密码
echo “string” | passwd –stdin test01
注意:
/dev/null能够接收任何内容,并将其丢弃
/dev/zero能够连续不断的输出0信息

userdel命令:删除用户
规则:userdel [OPTION] USERNAME
示例:userdel test01
常用选项:
-r:删除用户的家目录

groupmod命令:修改组属性
规则:groupmod [OPTION] GROUPNAME
示例:groupmod –n mygrp yougrp
常用选项:
-n newname:修改组名
-g GID:修改组的GID

groupdel命令:删除组,用法类似于userdel

gpasswd命令:用于用户切换基本组
规则:gpasswd [OPTION] group
示例:gpasswd –a test01 mygrp
常用选项:
-a user:将user添加至指定组中
-d user:将user从组中删除
-A user:将user设置为拥有组权限的组管理员

 

 

相关练习:

  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(在root用户模式下)
  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 slackware

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91391

(3)
~~
上一篇 2018-01-31
下一篇 2018-02-01

相关推荐

  • 计算机构成与Linux基础知识之一

    简述计算机构成,Linux如何诞生及主流发行版;简单命令介绍;如何获取帮助及Linux目录命名及功用简介绍。

    2018-02-26
  • LAMP及nfs、samba的综合练习

    练习一: 配置第一台主机:服务端共享目录: [root@localhost /]# yum install nfs-utils [root@localhost /]# systemctl start rpcbind [root@localhost /]# sy…

    Linux干货 2016-10-24
  • vim

    VIM常用操作命令 模式转换 1、ESC键:编辑模式 --> 一般模式;2、从一般模式 --> 编辑模式 i:在光标所在处的前方转换为编辑模式 a:在光标所在处的后方转换为编辑模式 o:在光标所在行的下方新建一个空行并转换为编辑模式 I:在光标所在行的行首输入 A:在光标所在行的行尾输入 O:在光标所在行的上方新建一个空白行 3、一般模式 --> 末行模式:…

    Linux干货 2017-04-06
  • bash小脚本

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 [root@centos6 scripts]# cat systeminfo.sh #!/bin/bash HostName=`uname -n` Ipv…

    Linux干货 2016-08-15
  • 推荐-LAMP的编译安装

    首先解释一下LAMP,L:Linux;A:apache;M:MariaDB;P:php。Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件。 本文就是介绍编译安装apache2.4,MariaDB5.5,以及php(基于模块化和fpm的这两种方式来配合php提供服务)。 因为php是…

    Linux干货 2016-04-11
  • DNS服务器之配置

    一、安装DNS服务器     DNS服务的安装包为bind,使用yum直接安装即可:     安装完成后,查看DNS服务相关的文件: 二、配置正向区域     1、在配置正向区域之前,先来看下主配置文件中的内容:    &nbsp…

    Linux干货 2015-05-03

评论列表(1条)

  • 马哥教育
    马哥教育 2018-02-07 10:18

    练习基本上没有什么问题,能熟练应用到日常的工作中最好~加油~