• Linux下Bash控制台查看有哪些用户


    Linux下Bash控制台查看有哪些用户

    查看有哪些用户的方法有:

    1. compgen -u
    2. 查看 /etc/passwd 如: cat /etc/passwd 或者 more /etc/passwd 或者 less /etc/passwd
    3. getent passwd

    方法1: compgen -u

    compgen -u
    
    • 1

    compgen 是一个很棒的 bash 内置命令

    compgen -u列出所有用户的别名(非uid) Names of userAlias names
    compgen -g列出所有组名 Names of groups
    compgen -c列出可以运行的所有命令,类似连续按两次TAB键 Names of all commands
    compgen -a列出所有别名 Names of alias
    compgen -ac ls

    compgen -ca ls
    列出以'ls'开头的所有可用命令或别名
    compgen -A function列出可以运行的所有函数
    compgen -k显示shell保留关键字 Names of Shell reserved words
    compgen -s有哪些服务 Names of service
    compgen -v列出变量 Names of shell variables
    compgen -eNames of exported shell variables
    compgen -f列出所有函数名 Names of file and functions
    compgen -j累出所有任务 Names of job

    compgen 命令语法:

    compgen [option] [word]

    compgen [-abcdefgjksuv] [-o 选项] [-A 动作] [-G 全局模式] [-W 词语列表] [-F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [词语]

    compgen 命令选项:

    -a means Names of alias

    -b means Names of shell builtins

    -c means Names of all commands

    -d means Names of directory

    -e means Names of exported shell variables

    -f means Names of file and functions

    -g means Names of groups

    -j means Names of job

    -k means Names of Shell reserved words

    -s means Names of service

    -u means Names of userAlias names

    -v means Names of shell variables




    方法2 查看 /etc/passwd

    head /etc/passwd
    
    • 1
    tail /etc/passwd
    
    • 1
    cat /etc/passwd
    
    • 1
    more /etc/passwd
    
    • 1
    less /etc/passwd
    
    • 1
    vi /etc/passwd
    
    • 1

    例如以下片段👇 ,来自win10自带的Ubuntu
    来自win10自带的Ubuntu
    👇来自VMware最小化安装的CentOS7
    来自VMware最小化安装的CentOS7
    👇来自VMware安装的CentOS7桌面版
    来自VMware安装的CentOS7桌面版
    👇来自VMware安装的Ubuntu22.04
    来自VMware安装的Ubuntu22.04
    解释:

    例如 root:x:0:0:root:/root:/bin/bash , 使用冒号:分隔
    rootx00root/root/bin/bash
    用户名密码,xuid 用户idgid 用户组id描述说明用户主目录命令解释程序

    /etc/passwd每一个分段的含义: 使用冒号:分隔

    1. 用户名:

    2. 密码: x代表已加密
      现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。
      一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

    3. UID:用户id
      这就是使用者标示符,UId有以下限制:
      ID 该ID使用的者特性
      0 UID是0时,代表这个账号是【系统管理员】!所以当你的其他啊账号名称也具有root
      的权限是,就将该账号的UID改为0即可,一个系统上面的系统管理不见得只有root,
      不过不建议有多个UID为0的账号。
      1~499 保留给系统使用的ID,默认500以下的数字给系统作为保利账号只是一个习惯。
      由于系统上面启动的服务希望使用较小的权限去运行,应此不希望使用root的身份去执行
      这些服务,所以我们就得要提供这些运行中的程序的拥有者账号才行,这些系统账号通常是不可登陆的,
      所以才会有/sbin/nologin这个特殊的shell的存在。
      500~ 一般使用者

    4. GID:组id

    5. 用户信息说明:

    6. 家目录:

    7. 命令解释程序(Shell):Shell是当用户登录系统时运行的程序名称,
      通常是一个Shell程序的全路径名,如/bin/bash。




    方法3 getent passwd

    getent passwd 和 查看/etc/passwd 基本相同

  • 相关阅读:
    缓存使用常见思路及问题
    C/C++字符函数和字符串函数详解————内存函数详解与模拟
    linux驱动之I2C
    Qt Quick 之 QML 与 C++ 混合编程详解
    Arduino驱动Si7021温湿度传感器(温湿度传感器)
    PhantomReference 和 WeakReference 究竟有何不同
    Dubbo学习(一)
    C语言疑难题:杨辉三角形、辗转相除求最大公约数、求π的近似值、兔子问题、打印菱形
    ​JAVA设计模式(十)——装饰模式
    01- ROS初识
  • 原文地址:https://blog.csdn.net/kfepiza/article/details/126295710