首页 > 其他分享 >用户和用户组

用户和用户组

时间:2024-11-13 20:07:24浏览次数:1  
标签:bin kylin 用户组 用户 tom root xu

用户/用户组

【1】、 用户分类

  • 一般看用户名,本质要看用户uid,gid.
  • uid user id 用户id 相当于身份证号码. 也是我们最关注。
  • gid group id 组id,相当于户口本号码.
用户分类 uid 说明
root 固定是 0 权限高 /root/
普通用户 一般是>=1000 权限低,只能管理自己家目录 /home/xxx
虚拟用户(傀儡用户) 一般1-999之间,但实际上可以修改 无法登录,让服务,进程正常运行

用户的分类本质要看uid和命令解释器。

在Linux中可以允许同时登录多个系统

【2】、用户相关文件

/etc/passwd

[root@kylin-xu ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
第1列 第2列 第3-4列 第5列 第6列 第7列
用户名 x 密码标记
密码存放在/etc/shadow里
UID:GID 说明信息(可以为空) 用户家目录(root,普通用户即可) 命令解释器
/bin/bash 可以登录系统
/sbin/nologin 虚拟用户

/etc/shadow

[root@kylin-xu ~]# head -5 /etc/shadow
root:$6$h1B0FEVoIVn0B3in$SOWTbnl.z/rzXmiZYxnswdLiQduLYwXAguj3W1D3pON.8ptxGuedBD29BPGUVnOTobTOJAtDl5dDq9kcIGsT01::0:99999:7:::
bin:*:18699:0:99999:7:::
daemon:*:18699:0:99999:7:::
adm:*:18699:0:99999:7:::
lp:*:18699:0:99999:7:::

补充

常用的命令解释器

  • /bin/bash

  • /bin/sh

  • /bin/dash #ubt,debian命令解释器

    xu@xu-ubuntu:~$ ll /bin/bash /bin/sh /bin/dash
    -rwxr-xr-x 1 root root 1396520 Mar 14  2024 /bin/bash*
    -rwxr-xr-x 1 root root  125688 Mar 23  2022 /bin/dash*
    lrwxrwxrwx 1 root root       4 Mar 23  2022 /bin/sh -> dash*
    
  • /sbin/nologin 虚拟用户

  • ..... /bin/csh /bin/tcsh /bin/xxxx

【3】、用户增删改查的命令

1、增加用户

  • 添加用户

  • 设置密码

  • 切换用户

  • 检查.

  • kylin、redhat

useradd  tom
grep  --color tom  /etc/passwd  /etc/shadow  /etc/group   /etc/gshadow 

# 设置密码,在kylin中给用户设置的密码,必须满足规定的复杂度要求
passwd   # 修改当前用户的密码
passwd 用户名  # 指定修改某一用户的密码,只能root用户使用

[root@kylin-xu ~]# passwd tom
更改用户 tom 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

# 切换用户,从root切换到普通用户,不管该普通用户的是否设置了密码,都是不需要输入密码的,但是从普通用户切换回root是需要密码的
# 切换用户后,如何退出?   快捷键:CTRL+d   命令:logout
# 查看当前系统的登录用户相关命令
# id命令
# whoami命令
[root@kylin-xu ~]# su - tom
[tom@kylin-xu ~]$ whoami
tom
[tom@kylin-xu ~]$ id
用户id=1000(tom) 组id=1000(tom) 组=1000(tom)
[tom@kylin-xu ~]$ su - root
密码:
上一次登录: 二 11月  5 11:46:43 -03 2024 tty1 上

[root@kylin-xu ~]# 注销
[tom@kylin-xu ~]$ logout
[root@kylin-xu ~]# 
  • Ubuntu
useradd 的时候不创建家目录,命令解释器是/bin/sh(/bin/dash)
# 虽然我们创建了用户,而且在 /etc/passwd中也有相关信息,但是他会在系统中去创建家目录,需要我们在创建用户时额外指定,家目录
# 而且我们可以看到在 Ubuntu 中用户的解释器默认是 sh,在Ubuntu中 /bin/sh  -->  /bin/dash,这和我们经常使用的bash 解释器是有区别的,因此我们还需要自己在创建用户时自己制定 解释器为 /bin/bash
root@xu-ubuntu:~# useradd tom
root@xu-ubuntu:~# grep tom /etc/passwd
tom:x:1001:1001::/home/tom:/bin/sh
root@xu-ubuntu:~# ll /home/tom
ls: cannot access '/home/tom': No such file or directory

useradd 
-s 指定命令解释器   
-m 表示在创建用户时同时创建家目录   用户  

useradd    -s /bin/bas -m   tom
root@xu-ubuntu:~# ll /home/tom -d
drwxr-x--- 2 tom tom 4096 Nov  6 07:00 /home/tom/
root@xu-ubuntu:~# grep tom /etc/passwd
tom:x:1001:1001::/home/tom:/bin/bash
useradd 说明
-s 指定命令解释器
-m 创建家目录
-M 不创建家目录
-u 指定uid,不指定uid的话,就是从上一个uid顺延 +1
-c 添加用户的增加说明信息
  • 添加 虚拟用户(命令解释器/sbin/nologin,不创建家目录),uid12306, abc
# kylin  redhat
useradd -u 12306  -s /sbin/nologin  -M abc  
[root@kylin-xu ~]# useradd -u 12306  -s /sbin/nologin  -M abc
[root@kylin-xu ~]# grep abc /etc/passwd
abc:x:12306:12306::/home/abc:/sbin/nologin
[root@kylin-xu ~]# ll /home/abc -d
ls: 无法访问 '/home/abc': 没有那个文件或目录

# ubuntu,在Ubuntu中由于它在创建用户时默认是自动创建家目录的,所以我们可以不加 -M 选项
root@xu-ubuntu:~# useradd -u 12306 -s /sbin/nologin abc
root@xu-ubuntu:~# grep abc /etc/passwd
abc:x:12306:12306::/home/abc:/sbin/nologin
root@xu-ubuntu:~# ll /home/abc -d
ls: cannot access '/home/abc': No such file or directory
  • su 与su -区别
su命令切换用户,一些环境变量没有更新
su - 的时候环境变量就更新。
  • passwd 红帽类系统 非交互改密码,只能 root 使用
echo   '0207xrzh!'  |passwd --stdin tom
  • passwd ubt,debian passwd命令没有--stdin需要使用chpasswd
# 首先需要把用户名和对应的密码写入文件中
echo "tom:123" > passwd.txt
cat passwd.txt | chpasswd

用户模板

在我们创建新的用户后,用户的家目录下是存在文件的

[root@kylin-xu ~]# ll /home/tom -a
总用量 20
drwx------ 2 tom  tom   97 11月  5 11:51 .
drwxr-xr-x 3 root root  17 11月  5 11:42 ..
-rw------- 1 tom  tom   27 11月  5 11:51 .bash_history
-rw-r--r-- 1 tom  tom   75  8月 25  2022 .bash_logout
-rw-r--r-- 1 tom  tom   71  8月 25  2022 .bash_profile
-rw-r--r-- 1 tom  tom  138  8月 25  2022 .bashrc
-rw-r--r-- 1 tom  tom  204  3月 22  2022 .zshrc

# 新创建的用户家目录下存在什么文件,取决于/etc/skel目录下的文件,/etc/skel 相当于是用户家目录的模板
# 我们可以修改/etc/skel下的内容,这样新创建的用户的家目录也就会发生改变
[root@kylin-xu ~]# cd /etc/skel/
[root@kylin-xu skel]# ls
[root@kylin-xu skel]# echo hello > readme.txt
[root@kylin-xu skel]# cd 
[root@kylin-xu ~]# useradd jerry
[root@kylin-xu ~]# ll /home/jerry/
总用量 4
-rw-r--r-- 1 jerry jerry 6 11月  5 14:26 readme.txt
[root@kylin-xu ~]# cat /home/jerry/readme.txt 
hello

2、删除

  • userdel 删除用户,默认不删除家目录。
  • userdel -r 删除用户与家目录。
  • 修改/etc/passwd用户名前加上 #号(注释)
userdel abc
userdel -r abc # 删除用户时,同时删除用户家目录


# 直接修改 /etc/passwd 删除用户,在对应行前加注释
[root@kylin-xu ~]# vim /etc/passwd
[root@kylin-xu ~]# id abc
id: “abc”:无此用户
[root@kylin-xu ~]# vim /etc/passwd
[root@kylin-xu ~]# id abc
用户id=12306(abc) 组id=12306(abc) 组=12306(abc)

3、查看用户信息

  • whoami
  • id 查看用户uid,gid,查看用户是否存在,用户属于哪些组、附加组
  • w 查看谁登录了正在干啥,负载信息...
[root@kylin-xu ~]# w
# 2 users:有两个用户正在登录系统
# load average:平均负载,和CPU核心数进行比较  最近一分钟  最近五分钟  最近十五分钟
# up 13:12:运行时间
# TTY:虚拟终端,本地叫tty1,远程交pts
 12:22:21 up 13:12,  2 users,  load average: 0.01, 0.03, 0.04
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1      11:46   35:33   0.06s  0.06s -bash
root     pts/2     11:17    1.00s  0.13s  0.01s w
[root@kylin-xu ~]# tty
/dev/pts/2


# 云服务器
root@xu-ecs:~# w
 15:22:12 up 1 day, 10 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ecs-assi pts/1    -                Tue15   24:06m  0.01s  0.01s sudo su -
root     pts/2    60.28.43.165     15:22    1.00s  0.01s  0.00s w
  • last 查看用户登录情况
[root@kylin-xu ~]# last
root     tty1                          Tue Nov  5 11:46   still logged in
root     pts/2        192.168.121.1    Tue Nov  5 11:17   still logged in
。。。
reboot   system boot  4.19.90-52.22.v2 Mon Nov  4 07:22 - 14:40  (07:17)
。。。
  • lastlog 查看所有用户登录情况
[root@kylin-xu ~]# lastlog
用户名           端口     来自             最后登录时间
root             pts/0    192.168.121.1    二 11月  5 12:31:22 -0300 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
systemd-coredump                           **从未登录过**
systemd-network                            **从未登录过**
systemd-resolve                            **从未登录过**
systemd-timesync                           **从未登录过**
tss                                        **从未登录过**
libstoragemgmt                             **从未登录过**
rpc                                        **从未登录过**
dbus                                       **从未登录过**
polkitd                                    **从未登录过**
unbound                                    **从未登录过**
named                                      **从未登录过**
setroubleshoot                             **从未登录过**
apache                                     **从未登录过**
cockpit-ws                                 **从未登录过**
chrony                                     **从未登录过**
abrt                                       **从未登录过**
dhcpd                                      **从未登录过**
rpcuser                                    **从未登录过**
sshd                                       **从未登录过**
pesign                                     **从未登录过**
tcpdump                                    **从未登录过**
nginx                                      **从未登录过**
tom              pts/2                     二 11月  5 11:47:09 -0300 2024
abc                                        **从未登录过**

4、修改

  • 对已有的用户修改信息.useradd.
  • usermod修改。

参数和useradd命令的参数类似

【4】、用户安全防护

1、sudo

提权,给普通用户使用

  • 普通用户可以临时成为root,去运行对应的命令

  • 类似于皇帝给大臣发尚方大宝剑.

  • root用户去配置,普通用户进行使用。

  • 授权xu用户,以root权限运行tail,cat,less,head.more,grep

[root@kylin-xu ~]# passwd xu
更改用户 xu 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
  • root授权,visudo 相当于运行 vi /etc/sudoers,我们建议使用visudo去进行修改他可以对我们的修改进行,不建议使用/etc/sudoers
# 在root用户进行授权,具体授权的命令我们需要写绝对路径,多个命令之间使用逗号和空格分开
[root@kylin-xu ~]# visudo 
xu      ALL=(ALL)       /bin/tail, /bin/less, /bin/more
[root@kylin-xu ~]# su - xu
上一次登录: 二 11月  5 16:00:10 -03 2024 pts/0 上
[xu@kylin-xu ~]$ sudo -l   # 通过 sudo -l 查看当前可以执行什么命令

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] xu 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
    KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
    LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

用户 xu 可以在 kylin-xu 上运行以下命令:
    (ALL) /bin/tail, /bin/less, /bin/more


# 在使用被授权的命令时,需要加上 sudo。
[xu@kylin-xu ~]$ sudo tail -1 /var/log/secure  
Nov  5 16:21:58 kylin-xu sudo[190100]: pam_unix(sudo:session): session closed for user root

在对普通用户进行授权时,不要给很大,需要啥给啥

小结:

  • 给普通用户配置sudo权限。
  • root用户通过visudo进行授权,vi/vim /etc/sudoers
  • 普通用户:sudo + 命令

ubt配置visudo 默认使用的是nano编辑器

在Ubuntu中修改 /etc/sudoers 时默认使用的时nano编辑器,这是可以修改的

Defaults        env_editor,editor=/bin/vim
:wq!  强制保存退出
# 之后就可以使用 visudo 打开了
root@xu-ubuntu:~# visudo 
visudo: /etc/sudoers.tmp unchanged

授权xu所有命令并不需要输入密码

sudo -k : 清除缓存,如果没有设置免密,在第一次输入密码后,会有缓存,在一定时间内也是不需要输入密码

visudo
xu      ALL=(ALL)       NOPASSWD: ALL
# ALL=(ALL)
# 所有主机=(任何用户)
[xu@kylin-xu ~]$ sudo -k
[xu@kylin-xu ~]$ sudo -l 
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
    KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
    LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

用户 xu 可以在 kylin-xu 上运行以下命令:
    (ALL) NOPASSWD: ALL
  • 小结:
    • 给普通用户配置sudo权限。
    • root用户通过visudo进行授权,vi/vim /etc/sudoers
    • 普通用户:sudo + 命令
    • 配置写/etc/sudoers最后

标签:bin,kylin,用户组,用户,tom,root,xu
From: https://www.cnblogs.com/xuruizhao/p/18544707

相关文章

  • [ Linux 命令基础 ] Linux 命令大全-命令前置知识-系统管理-文件和目录管理-文本处理
    ......
  • altera FPGA arria 10如何将10g base-r进入用户模式进行校准
    在AlteraFPGA,特别是Arria10FPGA中,将10GBASE-R接口进入用户模式进行校准(通常是指收发器的PLL和相关电路的校准),可以通过以下步骤实现。这些步骤涉及到配置用户模式校准(UserModeCalibration)和动态重配置(DynamicReconfiguration)控制。1.确保收发器时钟信号的稳定......
  • 华为云前台展示镜像供用户选择是怎么做到的呢?
    前台展示的各种公共镜像是管理员在后台传上去的;如何做到?在ServiceOM界面管理员可操做,制作镜像有两种方式:1.qcow2格式镜像制作2.iso格式镜像制作上传ISO文件,安装OS,安装cloud-init等,转换为镜像2.1.注册镜像-管理镜像磁盘设备类型:linux系统选virtio,windows系统选scsi......
  • 如何制作代购系统的用户管理模块
    在代购系统中,用户管理模块是核心功能之一,它负责处理用户的注册、登录、信息管理等关键操作。一个高效且安全的用户管理模块能够提升用户体验,保障用户数据的安全。本文将详细介绍如何制作一个代购系统的用户管理模块,包括前端界面设计、后端逻辑处理以及数据存储。系统设计用......
  • 《Java核心技术 卷I》图形用户界面使用字体
    使用字体字体名(fontfacename)指定一种字体,字体名由字体族名(fontfamilyname)和一个可选的后缀(如果"Bold")组成,例如,“Helvetica”和"HelveticaBold"都属于名为“Helvetica”字体族的字体。要想知道某台特定计算机上可用的字体,可以调用GraphicsEnvironment类的getAvaila......
  • atq——列出当前用户的at任务列表
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述atq列出当前用户的at任务列表补充说明atq命令显示系统中待执行的任务列表,也就是列出当前用户的at任务列表。语法atq[-V][-q队列][-v]选项-V:显示版本号;-q:查询指定队列的任务。实例atnow+10minut......
  • CRM系统用户满意度调查:哪些品牌最受欢迎
    随着国内CRM市场的快速发展,众多厂商纷纷推出各具特色的产品,以满足不同企业的需求。然而,面对琳琅满目的CRM系统,企业如何选择最适合自己的解决方案成为了一个亟待解决的问题。为了帮助企业更好地了解国内CRM市场的用户满意度情况,我们特别发起了本次调研,旨在揭示哪些品牌在市场上表现......
  • 鸿蒙开发之用户输入(TextInput)
    前言:日常开发中如果需要接收用户输入,就可以使用输入组件来完成TextInput:单行输入框:常用参数:参数名类型是否必填说明placeholderResourceStr否设置无输入时的提示文本。textResourceStr否设置输入框当前的文本内容。从APIversion10开始,该参数......
  • B端体验深耕-洞察用户需求,打造心有灵犀的使用体验
    作者:京东科技程跃宇   前言我们常以“心有灵犀”来形容与合作伙伴的默契配合,若我们的产品能与用户达到同样的默契,将极大地提升用户在任务旅程中的流畅体验。在B端体验设计领域,我们深知用户对我们产品的期待───快速完成任务、即用即走;然而,随着业务需求和产品功能的不......
  • 华为交换机使用高级ACL限制不同网段的用户互访案例
    1.组网需求如下图网络拓扑,某公司通过交换机LSW1实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。同时为了隔离广播域,又将两个部门划分在不同VLAN之中。现要求LSW1既能够限制两个网段之间互访,又不影响两个部门访问外网。2.配置思......