`

CentOS 7 用户管理3 - 用户和组

 
阅读更多
用户

etc/passwd 存放用户名与用户ID的对应关系,相当于一个数据库

[yxkong@localhost ~]$ tail /etc/passwd
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
chrony:x:994:993::/var/lib/chrony:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
yxkong:x:1000:1000:yxkong:/home/yxkong:/bin/bash

用户名:密码:用户ID(uid):主要组ID(gid):GECOS:主目录:登录shell

用户分为三类:

普通用户

普通用户是使用系统的真实用户人群。通常把/bin/bash作为登录Shell,把/home的子目录作为主目录。普通用户的用户ID数通常>=500

根用户

用户ID=0是为根用户保留的,根用户有时称作超级用户。具有系统上的完全权限,通常使用/root作为主目录

系统用户

大多数Linux系统保留一系列低UID值用户作为系统用户。系统用户不代表人,而代表系统的组成部分



用户和他们所运行的程序,以及他们所拥有的文件都属于一个组的集合。组成员身份允许系统管理员有效的管理具有相似对象的用户。每个用户都隶属于一个主要组。用户可以不属于或属于多个次要组。
etc/group 文件

[yxkong@localhost ~]$ vim /etc/group
root:x:0:yxkong
bin:x:1:
daemon:x:2:
wheel:x:10:yxkong
cdrom:x:11:
mail:x:12:postfix
#组名称  组密码   组ID(GID)  组成员

每个文件都有一个用户所有者和一个组所有者、主要组和次要组,文件创建者的默认组称为主要组。

检查用户信息

id命令用于显示用户信息和组信息

[yxkong@localhost ~]$ id --help
Usage: id [OPTION]... [USER]
Print user and group information for the specified USER,
or (when USER omitted) for the current user.
  -a             ignore, for compatibility with other versions
  -Z, --context  print only the security context of the current user
  -g, --group    print only the effective group ID(只打印有效的组ID)
  -G, --groups   print all group IDs(打印所有组)
  -n, --name     print a name instead of a number, for -ugG(打印用户或组名称,而不是数字,需要配合-ugG,不能单独使用)
  -r, --real     print the real ID instead of the effective ID, with -ugG
  -u, --user     print only the effective user ID(只打印有效的用户ID)
  -z, --zero     delimit entries with NUL characters, not whitespace;
                   not permitted in default format
      --help显示此帮助信息并退出
      --version显示版本信息并退出

如果不附带任何选项,程序会显示一些可供识别用户身份的有用信息。

[yxkong@localhost ~]$ id #直接打印当前登录用户信息
uid=1000(yxkong) gid=1000(yxkong) 组=1000(yxkong),0(root),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[yxkong@localhost ~]$ id root #打印指定用户的信息
uid=0(root) gid=0(root) 组=0(root)

whoami用于获取当前用户名

[yxkong@localhost ~]$ whoami
yxkong

who、users和w命令用于获取正在会话中的用户
users打印当前登录用户简单列表

[yxkong@localhost ~]$ users #虚拟机没有登录
(unknown) yxkong
[yxkong@localhost ~]$ users #虚拟机以root登录后
root yxkong

w打印当前所有登录系统用户的信息,可以具体指定用户

[yxkong@localhost ~]$ w --help
Usage:
w [options]
Options:
-h, --no-header     do not print header(跳过标题)
-u, --no-current    ignore current process username()
-s, --short         short format(简短列表)
-f, --from          show remote hostname field(不要显示"FROM"字段)
-o, --old-style     old style output
-i, --ip-addr       display IP address instead of hostname (if possible)
     --help     display this help and exit
-V, --version  output version information and exit
For more details see w(1).
[yxkong@localhost ~]$ w  #虚拟机没有登录
08:39:30 up 26 min,  2 users,  load average: 0.39, 0.50, 0.31
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
yxkong   pts/0     08:15    2.00s  0.17s  0.02s w
[yxkong@localhost ~]$ w
08:44:25 up 30 min,  2 users,  load average: 0.42, 0.33, 0.27
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
yxkong   :0        08:44   ?xdm?  19.18s  0.10s gdm-session-worker [pam/gdm-password]
yxkong   pts/0     08:15    1.00s  0.17s  0.01s w
USER:登录用户的用户名
TTY:用户登录的终端
FROM:如果用户从网上登录,用户使用的主机名
LONGIN@:用户开始会话的时间
IDLE:终端已经空闲的时间
JCPU:与终端会话相关,所有当前运行进程消耗的CPU时间总量
WHAT:用户当前运行进程
who即提供了当前登录用户的详细信息(类似于w),也可以用来报告系统事件,如当前运行级别、系统时钟调整

[yxkong@localhost ~]$ who --help
用法:who [选项]... [ 文件 | 参数1 参数2 ]
显示当前已登录的用户信息。
  -a, --all等于-b -d --login -p -r -t -T -u 选项的组合
  -b, --boot上次系统启动时间
  -d, --dead显示已死的进程
  -H, --heading输出头部的标题列
  -l,--login显示系统登录进程
      --lookup尝试通过 DNS 查验主机名
  -m只面对和标准输入有直接交互的主机和用户
  -p, --process显示由 init 进程衍生的活动进程
  -q, --count列出所有已登录用户的登录名与用户数量
  -r, --runlevel显示当前的运行级别
  -s, --short只显示名称、线路和时间(默认)
  -T, -w, --mesg用+,- 或 ? 标注用户消息状态
  -u, --users列出已登录的用户
      --message等于-T
      --writable等于-T
      --help显示此帮助信息并退出
      --version显示版本信息并退出
[yxkong@localhost ~]$ who  #虚拟机没有登录
(unknown) :0           2014-10-11 08:37 (:0)
yxkong   pts/0        2014-10-11 08:15 (10.200.1.24)
[yxkong@localhost ~]$ who   #虚拟机以root登录后
root     :0           2014-10-11 08:35 (:0)
yxkong   pts/0        2014-10-11 08:15 (10.200.1.24)
身份切换
su命令让用户切换用户(switch user)ID

[yxkong@localhost ~]$ su --help
用法:
su [选项] [-] [USER [参数]...]
将有效用户 id 和组 id 更改为 USER 的 id。
单个 - 视为 -l。如果未指定 USER,将假定为 root。
选项:
-m, -p, --preserve-environment  不重置环境变量(临时保持当前设置的环境)
-g, --group <组>             指定主组
-G, --supp-group <组>        指定一个辅助组
-, -l, --login                  使 shell 成为登录 shell
-c, --command <命令>            使用 -c 向 shell 传递一条命令(运行指定命令,然后返回)
--session-command <命令>        使用 -c 向 shell 传递一条命令
                                 而不创建新会话
-f, --fast                      向shell 传递 -f 选项(csh 或 tcsh)
-s, --shell <shell>             若 /etc/shells 允许,则运行 shell(用SHELL作为新用户的Shell)
-h, --help     显示此帮助并退出
-V, --version  输出版本信息并退出

su命令通过常用字符串调用,例如:su-,指明用户应该作为新用户有效登录。
例如:
su 用户名 只是临时使用对应的用户的Shell,用完后直接 su 当前登录名可以退回来

[yxkong@localhost ~]$ su root 
密码:
[root@localhost yxkong]# #新Shell称为用户root的Shell,在这个shell上启动的任何进程都属于root,这个Shell称为非登录Shell。root并没有完全登录,

su – 用户名 该用户作为新用户完全登录,和原来的用户没有任何关系了

[yxkong@localhost ~]$ su - root
密码:
上一次登录:一 10月 13 08:37:27 CST 2014pts/1 上
[root@localhost ~]#
[yxkong@localhost ~]$ su  #不加任何参数临时切换到根用户
密码:
[root@localhost yxkong]# su -  #永久性的切换
密码:
上一次登录:一 10月 13 08:47:26 CST 2014pts/1 上
[root@localhost ~]#

newgrp命令,也称作sg,让用户切换主要组(switch primary group)ID
用法:

[yxkong@localhost ~]$ sg --help
用法:sg 组 [[-c] 命令]

查看到yxkong的主要组是yxkong

[yxkong@localhost ~]$ id
uid=1000(yxkong) gid=1000(yxkong) 组=1000(yxkong),0(root),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[yxkong@localhost ~]$ sg root

执行命令后查看到 yxkong的主要组已经变成了root了

[yxkong@localhost ~]$ id
uid=1000(yxkong) gid=0(root) 组=1000(yxkong),0(root),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
分享到:
评论

相关推荐

    Centos7.6镜像文件:CentOS-7-x86-64-DVD-1810.iso

    这个版本是 CentOS 7 系列的更新版,它更新了包含的软件包和系统安全性。而镜像文件则是安装介质的数字化映像,在此案例中,它被保存为 .iso 格式。 ISO 文件是一个光盘映像,它可以被刻录到实体光盘上,或者在...

    hgdb4.5.7-see-centos7-x86-64-20210804.rpm

    这个"hgdb4.5.7-see-centos7-x86-64-20210804.rpm"文件是一个RPM(Red Hat Package Manager)格式的安装包,这种包是Linux系统中用于软件分发和管理的标准格式,特别适用于基于Red Hat的发行版,如CentOS。...

    CentOS系统管理--哈密瓜同学共享

    4. **用户和权限管理**:理解Linux的用户和组概念,如何创建、修改用户和组,以及使用`chown`、`chmod`和`chgrp`命令调整文件所有权和权限。 5. **防火墙配置**:CentOS使用firewalld服务作为默认防火墙,学会开启...

    CentOS-7-x86-64-Minimal-2009-迷你版系统镜像

    【标题】"CentOS-7-x86-64-...总的来说,"CentOS-7-x86-64-Minimal-2009-迷你版系统镜像"是一个适合初学者和高级用户的轻量级操作系统,它提供了构建高效、安全服务器的基础,并允许用户根据自己的需求定制系统配置。

    CentOS5 用户组管理与应用

    CentOS5 用户组管理与应用 ppt

    centos用户&组权限&添加删除用户总结

    通过以上详细介绍,我们可以了解到CentOS中用户与组的管理涉及到多个层面的操作,包括用户和组的创建、修改、删除,以及口令管理、用户状态查询和文件属主与组的更改等。这些命令和功能对于系统管理员来说非常重要,...

    centos的用户、组权限、添加删除用户等操作的详细操作命令

    本文将深入解析CentOS中用户、组权限、以及用户管理的基本操作命令。 ### 一、用户账户与组账户 #### 1. 用户账户分类 Linux系统支持多用户多任务操作,其中用户账户分为两类: - **普通用户账户**:拥有有限的...

    CIS-CentOS-Linux-7-Benchmark-v3-1-2.pdf

    此外,CIS CentOS Linux 7 Benchmark还会涵盖其他关键领域的最佳实践,如用户和组管理、防火墙配置、日志记录和审计、软件包和更新管理、服务和守护进程控制等。每个主题都会提供具体的操作指南,确保用户能够根据...

    CentOS-7-x86_64-Minimal-2009.rar

    5. **系统管理**:掌握如何添加和管理用户及用户组,使用passwd命令修改密码,了解sudo和su命令的区别。 6. **软件管理**:理解YUM(Yellowdog Updater, Modified)包管理器的使用,如何安装、更新和卸载软件。 7....

    Centos 下 netflow安装配置--安装nfsen

    - `$USER`、`$WWWUSER`、`$WWWGROUP`:均为 Apache 用户及其用户组 - `sources`:定义流量采集设备的信息,包括目标端口等。 ```bash vim /etc/nfsen.conf ``` #### 九、安装 Nfsen 执行安装脚本: ```bash ./...

    阿里云ECS CentOS7 Linux配置FTP-vsftpd.docx

    - 打开Putty,输入您的阿里云ECS的IP地址和登录凭据,登录到您的CentOS 7系统。 2. **安装vsftpd**: - 使用命令`[root@localhost ~]# yum -y install vsftpd`安装vsftpd服务。此命令将会自动安装vsftpd及其依赖...

    Linux(CentOS 7)的nfs-utils客户端的安装包

    - `keyutils-1.5.8-3.el7.x86_64.rpm`:提供密钥和密钥环管理功能,常用于安全相关操作。 - `tcp_wrappers-7.6-77.el7.x86_64.rpm`:再次出现,可能是因为它是NFS客户端的一个重要依赖。 安装这些依赖后,用户可以...

    CentOS.5系统管理-part1

    7.2.2 用户管理 7.3 口令管理和口令时效 7.3.1 使用passwd命令管理口令 7.3.2 口令时效 7.4 用户切换和用户状态命令 7.4.1 用户切换命令 7.4.2 用户状态命令 第8章 磁盘管理和LVM管理 8.1 硬盘相关概念 8.1.1 硬盘...

    centos7 aarch64架构的自制kvm离线仓库

    ### CentOS 7 aarch64 架构的自制 KVM 离线仓库知识点解析 #### 一、离线仓库概述 在某些情况下,网络连接可能受到限制或出于安全考虑,无法通过在线方式获取系统所需的软件包。因此,构建一个包含所需所有软件包...

    CentOS Linux系统管理与运维-课件.rar

    4. **用户和组管理**:涵盖添加、删除用户,用户和组权限设置,以及sudoers文件的配置,用于允许用户以管理员权限执行命令。 5. **网络服务**:包括网络接口的配置,如IP地址、子网掩码、网关设置,以及DNS、DHCP、...

    CentOS7最新的 libcap 依赖包(离线安装 ftp 时可能需要)

    这个库允许程序以细粒度的方式管理用户权限,使得非root用户也能执行特定的系统操作,如读写设备、监听网络端口等。在安全模型中,libcap是控制进程能力的关键组件,它遵循了最小权限原则,即每个进程只拥有完成其...

    Linux7CentOS 7 LVM管理和磁盘配额.docx

    Linux 7/CentOS 7 LVM 管理和磁盘配额 LVM(Logical Volume Manager,逻辑卷管理)是...LVM 管理和磁盘配额是 Linux 7/CentOS 7 中两个重要的概念,它们可以帮助用户更好地管理磁盘空间,提高磁盘管理的灵活性和效率。

    CentOS-6.5(x86-32)下安装Oracle-11g-R2

    将`oracle`用户添加到`sudo`组,以便在需要时获得管理员权限: ```bash usermod -aG wheel oracle ``` #### 4.5. 配置系统内核参数 编辑`/etc/sysctl.conf`,添加或修改以下参数: ```bash vm.swappiness=0 kernel...

    Linux学习之CentOS(3)--初识linux的文件系统以及用户组等概念.docx

    【Linux 文件系统】 Linux 文件系统是操作系统的核心组成部分,它组织和管理着系统中的所有文件和目录。...这些权限和用户组的概念是理解Linux系统管理的关键,它们确保了系统的安全性和多用户环境下的协作。

Global site tag (gtag.js) - Google Analytics