管理本地用户和组

管理本地用户和组

在这里插入图片描述

描述用户和组

用户

用户账户用于运行命令的不同人员与程序之间提供安全界限。

使用id显示有关当前登录用户信息

[root@servera ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

查找其他用户基本信息

[root@servera ~]# id usr1
uid=1000(usr1) gid=1000(usr1) groups=1000(usr1)

查看文件所有者

[root@servera /]# ls -ld
dr-xr-xr-x. 17 root root 224 Jul 15 10:14 .

查看进程相关信息,使用ps命令 -u进程关联用户


[root@servera /]# ps -au
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         890  0.0  0.0   6916  1708 tty1     Ss+  23:00   0:00 /sbin/agetty -o -p -- \u --noclear tty1 l
root        1651  0.0  0.2  15120  3680 pts/0    Ss   23:01   0:00 -bash
root        1756  0.0  0.2  47636  3692 pts/0    R+   23:58   0:00 ps -au

组需要共享文件和其他系统资源访问权限的用户的集合。组可以用于向一组用户授予文件访问权限,而非一个用户授予访问权限。

系统通过分配的唯一标识好GID区分不同组,组名称到GID的映射在组账户信息数据库定义。默认情况存储在/etc/group


[root@servera ~]# head -n 1 /etc/group
root:x:0:
#被冒号分隔
#用户组名称:过时的组密码字段始终x:改组GID:作为补充组成员的用户列表

主要组和补充组

每个用户有且只有一个主要组。对于本地用户而言,按照/etc/passwd上的GID号列出。

创建新用户时,会创建一个与该用户同名的新组。该组用户新用户的主要组,而该用户是这一用户组唯一成员。

用户组也可以有补充组。补充组的资格由/etc/group确定。根据所在组是否具有访问权限啊,将授予用户对文件的访问权限。

获取超级用户访问权限

切换用户

su命令可以切换用户,普通用户运行su,系统会提示输入切换账户的密码,而root身份运行su,无需密码。

[root@servera ~]# su - tmpUsr
[tmpUsr@servera ~]$

[tmpUsr@servera ~]$ su - root
Password:
Last login: Mon Jul 17 02:34:36 EDT 2023 from 192.168.182.1 on pts/0
[root@servera ~]#


使用sudo运行命令

有时为安全,root用户可能没有有效的密码,这种情况下,用户无法使用密码直接以root身份登录系统,也不能使用su获取交互式shell。

sudo可以配置运行特定用户想其他用户一样运行命令,或仅运行该用户身份运行部分命令。且所有命令默认记录/var/log/secure


[root@servera ~]# tail /var/log/secure
Jul 17 02:34:59 servera sshd[6232]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 17 02:46:09 servera useradd[6282]: new group: name=tmpUsr, GID=1000
Jul 17 02:46:09 servera useradd[6282]: new user: name=tmpUsr, UID=1000, GID=1000, home=/home/tmpUsr, shell=/bin/bash
Jul 17 02:46:26 servera passwd[6289]: pam_unix(passwd:chauthtok): password changed for tmpUsr
Jul 17 02:46:36 servera su[6293]: pam_unix(su-l:session): session opened for user tmpUsr by root(uid=0)
Jul 17 02:46:59 servera su[6321]: pam_unix(su-l:session): session opened for user root by root(uid=1000)
Jul 17 02:54:47 servera su[6349]: pam_unix(su-l:session): session opened for user tmpUsr by root(uid=0)
Jul 17 02:55:11 servera sudo[6377]:  tmpUsr : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/tmpUsr ; USER=root ; COMMAND=/sbin/usermod -L root
Jul 17 02:56:49 servera sudo[6381]:  tmpUsr : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/tmpUsr ; USER=root ; COMMAND=/bin/tail /var/log/secure
Jul 17 02:57:05 servera su[6385]: pam_unix(su:session): session opened for user root by root(uid=1000)

配置sudo

/etc/sudoers,如果多个管理员同时编辑该文件,为避免出现问题,只硬使用特殊的visudo命令进行编辑。


[root@servera ~]# cat /etc/sudoers | grep wheel
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
# %wheel        ALL=(ALL)       NOPASSWD: ALL

%wheel是规则适用的用户或组。%指定这是一个组,ALL=(ALL)指定在可能包含此文件的任何主机上,wheel可以运行任何命令。最后的ALL指定wheel可以在系统上的任何用户一样运行这些命令。

默认/etc/sudoers还包含/etc/sudoers.d目录中所有文件内容,作为配置文件的一部分。管理员只需将相应的文件放入该目录中,即可为用户添加sudo访问权限。

为用户tmpUsr启用完整的sudo权限,创建含有以下内容的/etc/sudoer.d/tmpUsr

tmpUsr	ALL=(ALL)	ALL

管理用户密码

阴影密码和密码策略

加密密码存储在全局可读/etc/passwd中,由于对于加密密码的攻击变得常见;加密密码被移动到只有root用户才能读取的/etc/shadow中,该文件也允许实施期限和到期时间。

[root@servera ~]# head -n 1 /etc/shadow
root:$6$Jbj1e1iV11tUoVKP$OpdEsyOvZ0vS0ndaXi06/2yPBFPJMOE6vkSoht0zeh8kPBAp9mFIqyHEv4BKsCCJk27RWC5kGlFH1pJicwywq.::0:99999:7:::
#
#用户名:加密密码:上次更改密码时间:自上次更改后可以再次更改必须经过的最短时间:密码过期之前不进行更改可以经过的最长时间:警告期(在密码过期前几天,登录会有提示):非活动期(一旦密码过期,在有些天内仍可以使用,之后账户被锁定):密码过期时间:留给未来使用

配置密码期限

使用chage命令

[root@servera ~]# chage -m 0 -M 90 -W 7 -I 14 tmpUsr


chage -d 0 tmpUsr #强制tmpUsr用户下次登录更新密码
chage -l tmpUsr #显示tmpUsr密码期限详情
chage -E 2011-08-05 tmpUsr #2011-08-05tmpUsr用户到期

#计算未来日期
[root@servera ~]# date
Mon Jul 17 05:21:39 EDT 2023
[root@servera ~]# date -d "+45 days" -u
Thu Aug 31 09:21:53 UTC 2023

编辑/etc/login.defs,设置密码期限策略


[root@servera ~]# cat /etc/login.defs | grep PASS_
#       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

限制访问

nologin shell 用作不打算通过交互式登录系统的用户账户代替shell。

[root@servera ~]# su - usr1
Last login: Mon Jul 17 05:57:24 EDT 2023 on pts/0
[usr1@servera ~]$ exit
logout

[root@servera ~]# usermod -s /sbin/nologin usr1
[root@servera ~]# su - usr1
Last login: Mon Jul 17 06:09:15 EDT 2023 on pts/0
This account is currently not available.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值