用户与组概述

目录

一、用户与组概述

1、用户类型

2、用户和用户组关系

3、用户和用户组配置文件

二、用户管理

1、useradd命令

2、userdel

3、passwd命令

4、usermod命令

5、chpasswd命令

6、chage命令

三、组管理

1、groupadd命令

2、groupdel命令

3、groupmod命令

4、gpasswd命令

四、用户切换与sudo提权

1、su命令

2、sudo命令

五、用户登录信息查看

1、id命令

2、w命令

3、who命令

4、whoami命令

5、finger命令

6、last命令

7、lastb命令

8、lastlog命令


一、用户与组概述

1、用户类型

  • root用户

root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经存在的用户,只有root可以为普通用户修改密码等等。

  • 系统用户 (程序用户)

系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999

  • 普通用户

普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。

2、用户和用户组关系

在Linux系统中,每个用户必定属于一个主组(基本组),默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。

3、用户和用户组配置文件

Linux系统下用户和用户组相关的配置文件主要有以下几个:

  • /etc/passwd

存储用户信息

tail -1 /etc/passwd
user10:x:1014:1014::/home/user10:/bin/bash
#用户名:密码占位符:用户ID:组ID:用户描述信息:用户家目录:登录shell
  • /etc/shadow

该配置文件保存了用户的密码信息 。

tail -1 /etc/shadow
user2:!!:19522:0:99999:7:::
#用户名:密码:用户创建时间:密码最短使用期限:密码最长使用期限:密码过期提醒时间:密码过期后的宽容时间:密码过期时间:没用

注意: !! 表示该用户没有设置密码。

! 表示用户密码被锁定,该用户无法登录操作系统。

  • /etc/group

该文件保存了用户组的信息 。

tail -1 /etc/group
nginx:x:982:
#组名:占位符:组ID:非基本组的组成员
  • /etc/gshadow

该文件保存了用户组的密码。

  • /etc/login.defs

该文件可以设置密码过期时间,密码最大长度限制等内容。影响的是新创建的用户密码信息。

[root@ansible ~]# cat /etc/login.defs 
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
​
# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
​
#QMAIL_DIR  Maildir
MAIL_DIR    /var/spool/mail
#MAIL_FILE  .mail
​
# Password aging controls:
#
#   PASS_MAX_DAYS   Maximum number of days a password may be used.
#   PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#   PASS_MIN_LEN    Minimum acceptable password length.
#   PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7
​
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999
​
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999
​
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local
​
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
​
# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           077
​
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
​
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
​
  • /etc/skel目录

作用: 用户创建时默认文件的模版目录

[root@c2407 skel]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla

二、用户管理

1、useradd命令

创建一个新用户或更新默认新用户信息

语法:

useradd [选项] 用户名

选项:

选项作用
-u指定用户的UID。
-d指定用户的家目录,而不采用默认创建在/home中的目录。不能是已存在的目录。
-s指定用户的登录shell
-M创建用户时不创建家目录
-g创建用户时指定基本组,不会创建用户的同名组
-G创建用户时指定附加组,依然会创建同名组
-e创建用户时,指定用户的失效时间。

案例:

1、指定用户的UID

useradd -u 54321 user1

2、指定用户家目录

useradd -d /user2 user2

3、指定用户的登录shell

useradd -s /sbin/nologin user3

4、创建用户时不创建家目录

useradd -M user4

5、创建程序用户

useradd -M -s /sbin/nologin user5

6、创建用户时指定基本组

useradd -g user5 user6

7、创建用户时指定附加组

useradd -G user5 user7

8、创建用户时,指定用户的失效时间。

useradd -e 2024-04-08 user8
#验证:
tail -1 /etc/shadow
user8:!!:19820:0:99999:7::19821:

2、userdel

删除用户账户和相关文件

语法:

userdel [选项] 用户名

选项:

选项作用
-r, --remove用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。

案例:

删除用户的同时删除在创建时产生的文件。

 userdel -r user7

3、passwd命令

更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码。

语法:

passwd [选项] 用户名

选项:

选项作用
-l(小写L), --lock锁定用户密码。
-S查看密码的锁定状态
-u,--unlock解除用户密码的锁定状态
-d, --delete将用户密码清空
-e,--expire直接让密码失效,下次登录时必须更改。
--stdin非交互式修改密码。

案例:

1、设置用户密码

passwd user9
#用户输入passwd命令后直接回车,表示更改本身的密码

2、锁定用户密码

passwd -l user6
锁定用户 user6 的密码 。
passwd: 操作成功
#验证
 tail -1 /etc/shadow
user9:!!$6$nc2k.H5O$QBVprPO4.3MoiiY90n/Yapu0YpR72sVonaR0CKuolRzYBdX9.yzW/Boq5EcQItlPSdaGF2kp5czU.xKSDHr59/:19820:0:99999:7:::

3、查看密码的锁定状态

passwd -S user9
user9 LK 2024-04-07 0 99999 7 -1 (密码已被锁定。)

4、解除密码的锁定状态

passwd -u user9
解锁用户 user9 的密码。
passwd: 操作成功
##验证
passwd -S user9
user9 PS 2024-04-07 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

5、清空用户密码

passwd -d user9
清除用户的密码 user9。
passwd: 操作成功
##验证
tail -1 /etc/shadow
user9::19820:0:99999:7:::

6、强制密码失效

passwd -e  user9
正在终止用户 user9 的密码。
passwd: 操作成功

7、非交互式修改用户密码

echo 1 | passwd --stdin user9

4、usermod命令

修改一个用户账户的属性。

语法:

 usermod [选项] 用户名

选项:

选项作用
-u修改用户的UID。
-d修改用户的家目录,而不采用默认创建在/home中的目录。
-s修改用户的登录shell
-g修改用户基本组
-G修改用户附加组
-e修改用户的失效时间。
-a, --append追加用户到一个附加组
-L, --lock锁定用户
-U, --unlock解锁用户

案例:

1、锁定用户

usermod -L user1

2、解锁账户

usermod -U user1

5、chpasswd命令

批量更新密码。

语法:

chpasswd [选项]

案例:

批量修改用户密码

#创建用户密码的文本文件
vim chpasswd.txt
user1:123.com
user2:1234.com
user3:12345.com
#修改密码
cat chpasswd.txt | chpasswd

6、chage命令

更改用户密码过期信息

语法:

chage [选项] 用户名

选项:

选项作用
-l, --list显示账户年龄信息
-m, --mindays修改密码的最短使用期限
-M, --maxdays修改密码的最长使用期限
-W, --warndays修改密码过期的提示时间

案例:

1、查看用户的密码信息

[root@localhost ~]# chage -l user1
最近一次密码修改时间                  :4月 08, 2024
密码过期时间                  :从不
密码失效时间                  :从不
帐户过期时间                      :从不
两次改变密码之间相距的最小天数     :0
两次改变密码之间相距的最大天数     :99999
在密码过期之前警告的天数    :7

2、修改密码最短使用期限

[root@localhost ~]# chage -m 2 user1
[root@localhost ~]# chage -l user1
最近一次密码修改时间                  :4月 08, 2024
密码过期时间                  :从不
密码失效时间                  :从不
帐户过期时间                      :从不
两次改变密码之间相距的最小天数     :2
两次改变密码之间相距的最大天数     :99999
在密码过期之前警告的天数    :7

三、组管理

1、groupadd命令

创建新组

语法:

groupadd [选项] 组名

选项:

选项作用
-g, --gid GID指定 GID

案例:

创建新组

[root@localhost ~]# groupadd -g 12345 newgroup

将用户添加为组成员

[root@localhost ~]# usermod -a user1 -G newgroup
[root@localhost ~]# tail -1 /etc/group
newgroup:x:12345:user1

2、groupdel命令

删除组

语法:

groupdel [选项] 组名

选项:

选项作用
-f强制删除,但不建议

案例:

删除组

[root@localhost ~]# groupdel newgroup

3、groupmod命令

语法:

groupmod [选项] 组名

选项:

选项作用
-g, --gid GID修改GID

案例:

修改组的GID

[root@localhost ~]# groupmod -g 54321 user1

4、gpasswd命令

项组内添加成员

语法:

gpasswd [选项] 组名

选项:

选项作用
-a, --add USER向组 GROUP 中添加用户 USER,单个添加
-M, --members USER,...设置组 GROUP 的成员列表,批量添加,覆盖原有成员

案例:

1)、单个添加

[root@localhost ~]# gpasswd -a user2 root
正在将用户“user2”加入到“root”组中
​

2)、批量添加

[root@localhost ~]# gpasswd -M user3,user4,user5 root
[root@localhost ~]# cat /etc/group | grep root
root:x:0:user3,user4,user5

四、用户切换与sudo提权

1、su命令

切换用户,从root用户切换到普通用户不需要密码。普通用户之间切换需要密码。

语法:

su [-] 用户名

选项:

选项作用
-, -l, --login切换目录用户的登录shell
-s指定登录shell

案例:

su 与 su - 的对比

#su 不会切换目标用户的登录shell
#su -会切换到目标用户的登录shell

2、sudo命令

sudo用来进行普通用户提升权限

语法:

sudo [选项] 参数

选项:

选项作用
-i切换到指定用户的登录shell。采用本身的密码提供验证。

注意:sudo -i root,切换到root,必须存在于sudoers文件中的普通用户才有权限。

案例:

1)切换到root用户

vim /etc/sudoers
#通过查看该文件发现当用户的附加组为wheel时,可以执行任意命令
usermod -a zhx -G wheel
[zhx@localhost ~]$ sudo -i

2)提升普通用户使用命令的权限

#使用ifconfig命令修改网卡的IP参数
[zhx@localhost ~]$ ifconfig ens37 192.168.1.2/24
SIOCSIFADDR: 不允许的操作
SIOCSIFFLAGS: 不允许的操作
SIOCSIFNETMASK: 不允许的操作
##使用sudo命令提升权限
[zhx@localhost ~]$ sudo ifconfig ens37 192.168.1.2/24
​

五、用户登录信息查看

1、id命令

查看用户的基本属性,用户UID,基本组及附加组

语法:

id [OPTION]... [USER]

选项:

| 选项 | 作用 | | ---- | ---- |

案例:

[root@localhost ~]# id zhx
uid=1000(zhx) gid=1000(zhx) 组=1000(zhx)

2、w命令

查看当前系统登录详情

语法:

 w [options]

选项:

选项作用
-h不显示表头

案例:

[root@localhost ~]# w
 19:33:13 up 18 min,  3 users,  load average: 0.06, 0.40, 0.31
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               19:28   ?xdm?  38.72s  0.31s /usr/libexec/gnome-session-bi
root     pts/0    :0               19:28    1:29   0.13s  0.13s bash
root     pts/2    192.168.115.1    19:30    1.00s  0.04s  0.01s w
​

3、who命令

显示当前系统登录的摘要信息

语法:

选项:

选项作用
-b, --boot上次系统启动时间
-u, --users列出已登录的用户

案例:

1)查看系统的启动时间

[root@localhost ~]# who -b
         系统引导 2024-04-08 19:15

2)查看系统登录用户

[root@localhost ~]# who -u
root     :0           2024-04-08 19:28   ?          2375 (:0)
root     pts/0        2024-04-08 19:28 00:08        2996 (:0)
root     pts/1        2024-04-08 19:35 00:04        3899 (192.168.115.1)
root     pts/2        2024-04-08 19:30   .          3802 (192.168.115.1)
​

4、whoami命令

显示当前登录用户的名称

语法:

whoami 

选项:

选项作用

案例:

[root@localhost ~]# whoami
root

5、finger命令

查看用户登录信息,默认系统不存在该命令,需要安装

[root@localhost ~]# yum install -y finger

语法:

finger 

案例:

[root@localhost ~]# finger 
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root      *:0             Apr  8 19:28                           (:0)
root      root       pts/0      11  Apr  8 19:28                           (:0)
root      root       pts/1       7  Apr  8 19:35                           (192.168.115.1)
root      root       pts/2          Apr  8 19:30                           (192.168.115.1)
​

6、last命令

last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。

语法:

last

选项:

选项作用

案例:

[root@localhost ~]# last
root     pts/1        192.168.115.1    Mon Apr  8 19:35   still logged in   
root     pts/2        192.168.115.1    Mon Apr  8 19:30   still logged in   
root     pts/1        192.168.115.1    Mon Apr  8 19:30 - 19:32  (00:02)    
root     pts/0        :0               Mon Apr  8 19:28   still logged in   
root     :0           :0               Mon Apr  8 19:28   still logged in   
reboot   system boot  3.10.0-1160.el7. Mon Apr  8 19:15 - 11:45  (-7:-29)   
root     pts/0        :0               Tue Mar 26 10:08 - 10:09  (00:00)    
root     :0           :0               Tue Mar 26 10:08 - crash (13+09:06)  
reboot   system boot  3.10.0-1160.el7. Mon Mar 25 20:08 - 11:45 (13+15:37)  
​
wtmp begins Mon Mar 25 20:08:19 2024

7、lastb命令

lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。

语法:

last

选项:

选项作用

案例:

[root@localhost ~]# lastb 
zhx      pts/1                         Mon Apr  8 11:48 - 11:48  (00:00)    
root     :0           :0               Mon Apr  8 19:28 - 19:28  (00:00)    
​
btmp begins Mon Apr  8 19:28:15 2024

8、lastlog命令

统计当前系统中存在用户的登录情况

语法:

lastlog

选项:

选项作用

案例:

lastlog 
用户名           端口     来自             最后登陆时间
root             pts/1    192.168.115.1    一 4月  8 19:35:06 +0800 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
systemd-network                            **从未登录过**
dbus                                       **从未登录过**
polkitd                                    **从未登录过**
libstoragemgmt                             **从未登录过**
colord                                     **从未登录过**
rpc                                        **从未登录过**
saned                                      **从未登录过**
saslauth                                   **从未登录过**
abrt                                       **从未登录过**
setroubleshoot                             **从未登录过**
rtkit                                      **从未登录过**
pulse                                      **从未登录过**
radvd                                      **从未登录过**
chrony                                     **从未登录过**
unbound                                    **从未登录过**
qemu                                       **从未登录过**
tss                                        **从未登录过**
usbmuxd                                    **从未登录过**
geoclue                                    **从未登录过**
gluster                                    **从未登录过**
gdm              :0                        一 4月  8 19:15:19 +0800 2024
rpcuser                                    **从未登录过**
nfsnobody                                  **从未登录过**
gnome-initial-setup                           **从未登录过**
sshd                                       **从未登录过**
avahi                                      **从未登录过**
postfix                                    **从未登录过**
ntp                                        **从未登录过**
tcpdump                                    **从未登录过**
zhx              pts/2                     一 4月  8 19:40:51 +0800 2024
user1            pts/1                     一 4月  8 11:48:03 +0800 2024
​
管理员已阻止运行软件是由于Windows系统的安全策略设置所导致的。解决这个问题有几种方法。一种方法是找到【计算机配置-->Windows设置-->安全设置-->本地策略-->安全选项】下的【以管理员批准运行所有管理员】,查看属性,然后设置为【已禁用】。设置完成后重启电脑即可。 另一种方法是通过搜索框搜索并进入【安全和维护】,选择【更改安全和维护设置】,取消勾选【用户账户控制】。如果出现【smartscreen筛选器】,也选择不执行任何操作。 这些方法都是修改系统的安全策略,以解除管理员对运行软件阻止。注意,在进行这些操作之前,请确保你了解自己的计算机及系统设置,并谨慎操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [解决Win10运行软件程序提示【管理员已阻止运行应用】](https://blog.csdn.net/xiaochenXIHUA/article/details/120595599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [windows10系统如何解决“管理员已阻止运行应用](https://blog.csdn.net/bob595078694/article/details/123847692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值