• Linux用户与组管理命令


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

    1 who | cut -d" " -f1 | sort -u
    2 3 who | cut -d" " -f1 | uniq

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

    1 w | tail -1
    2 3 last -1

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

    1 cat /etc/passwd | cut -d":" -f7 | sort | uniq -c | sort -n | tail -1

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

    1 sort -t':' -k3 -n /etc/passwd | tail -10 | tr 'a-z' 'A-Z' | tee /tmp/maxusers.txt
    2 3 sort -t':' -k3 -n /etc/passwd | tail -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt

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

    1 ifconfig | cut -d' ' -f10 | head -2 | tr -d '
    '
    2 3 ifconfig | cut -d' ' -f10 | head -2 | tail -1
    4 5 ip addr | cut -d' ' -f6 | head -9 | tail -1

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

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

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

    1 find /var | wc -l

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

    1 sort -t":" -k3 -n /etc/group | head -10 | cut -d":" -f1

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

    1 cat /etc/{fstab,issue} > /tmp/etc.test

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

      用户管理命令:

    (1)useradd:创建用户,useradd [选项] 用户名

     1 -u:指定UID(默认是上一个用户的 UID+1)
     2 -g:指定基本组(此组 事先必须存在)
     3 -G:指定附加组,多个组之间用 逗号 分隔(组 事先必须存在)
     4 -c:添加注释信息
     5 -d:以指定的目录为用户的家目录(通过复制  /etc/skel 此目录并重命名来实现用户家目录,如果 指定的目录 事先存在,则不会复制)
     6 -s:指定用户的默认shell(可用的所有shell 存储在 /etc/shells 文件中)
     7 -r:创建系统用户
     8 -p:设置密码(明文保存密码,不用)
     9 -M:不为用户创建家目录
    10 -D:显示创建用户的默认配置
    11 -D [选项]:修改创建用户的默认配置(修改的结果保存在 /etc/default/useradd 文件中)

    (2)usermod:修改用户属性,usermod [选项] 用户名

     1 -u:修改用户的UID
     2 -g:修改用户的基本组(此组 事先必须存在)
     3 -G:修改用户的附加组,原有的附加组会给覆盖(组 事先必须存在)
     4 -a:与-G 一同使用,用于为用户添加新的附加组
     5 -c:修改注释信息
     6 -d:修改用户的家目录,用户家目录原有的文件不会被移动
     7 -m:与-d 一同使用,用于将原有的家目录文件移动到新的家目录
     8 -l:修改用户名
     9 -s:修改用户的默认shell
    10 -L:锁定用户密码(通过在用户原来的密码字符串前添加一个“!”来达到禁止用户登录)
    11 -U:解锁用户密码

    (3)userdel:删除用户,userdel [选项] 用户名

    1 -r:删除用户时一并删除用户的家目录和邮箱(默认不删除)

    (4)passwd:

     1 passwd:修改用户自己的密码
     2 passwd 用户名:修改指定用户的密码(仅root 有权限操作)
     3 -l,-u:锁定和解锁 用户
     4 -d:清除用户密码
     5 -e:使用户密码过期(用户下次登录必须重设密码)
     6 -i 天数:密码过期后的活动期限(仅root有权限操作)
     7 -n 天数:密码的最短使用期限(仅root有权限操作)
     8 -x 天数:密码的最长使用期限(仅root有权限操作)
     9 -w 天数:密码过期前的警告期限(仅root有权限操作)
    10 --stdin:(echo "密码" | passwd --stdin 用户名,给用户设置密码)

    (5)id:显示用户信息,id [选项] 用户名

    1 -u:仅显示uid
    2 -g:仅显示gid
    3 -G:显示用户所属的所有组的ID

    (6)su:切换用户,su [选项] 用户名

    1 -c 命令:以指定用户的身份运行命令
    2 登录式切换:重新读取目标用户的配置文件来进行初始化—su - 用户名 或 su -l 用户名
    3 非登录式切换:不读取目标用户的配置文件—su 用户名

      组管理命令:

    (1)groupadd:添加组,groupadd [选项] 组名

    1 -g:指定GID(默认是上一个组的 GID+1)
    2 -r:创建系统组

    (2)groupmod:修改组属性,groupmod [选项] 组名

    1 -g:修改GID
    2 -n:修改组名

    (3)groupdel:删除组,groupdel [选项] 组名

    (4)gpasswd:给组添加密码,gpasswd [选项] 组名

    1 -a 用户名:向组中添加用户
    2 -d 用户名:从组中移除用户
    3 -r:删除密码
    4 -A:指定组的管理员

    (5)newgrp:临时切换用户的基本组,newgrp [-] 组名

    1 -:会模拟用户登录以实现重新初始化工作环境

      练习:

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

    1 groupadd -g 2016 distro

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

    1 useradd -u 1005 -g distro mandriva

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

    1 useradd -u 1100 -d /home/linux mageia

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

    1 echo "mageedu" | passwd --stdin mageia

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

    1 userdel mandriva

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

    1 usergroup peguin
    2 useradd -u 2002 -g distro -G peguin slackware

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

    1 usermod -s /bin/tcsh slackware

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

    1 groupadd admins
    2 usermod -aG admins slackware
  • 相关阅读:
    java.util.ConcurrentModificationException 异常问题详解
    java1.8新特性整理(全)
    理解serialVersionUID是什么?有什么用?如何生成?
    数据结构与算法--->基础篇冒泡,选择,插入,希尔
    学习Java的第二天
    学习Java的第一天
    SpringBoot(2)—使用小技术总结
    SpringBoot(1)—相关工具使用
    json工具类(二)——google包
    json工具类(一)——alibaba包
  • 原文地址:https://www.cnblogs.com/walk1314/p/8556037.html
Copyright © 2020-2023  润新知