linux 中普通用户访问/etc/shadow 的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 中普通用户访问/etc/shadow 的问题相关的知识,希望对你有一定的参考价值。

在linux中,普通用户没人权访问/etc/shadow,但用权改自己的密码,而密码文件又是放在/etc/shadow中的,怎么回事?

首先你要明白root权限的用户是可以对任何文件进行操作的。
这里就假设shadow的属性为r-- --- ---,即任何人对该文件没有操作权限,但是在这里,如果你是root用户,就可以访问。 假设你使用passwd修改命令,按照你说的普通用户可以修改密码(实际上只有root用户才能执行passwd),那么passwd的属性可能就是rwxr-sr-x,注意该属性中的s(suid)取代了X的位置,也就是说当普通用户执行passwd的时候会得到s属性,这个s属性代表在执行的过程中你会获得root权限,最开始也说了,root权限能进行一切操作,所以,你描述的操作是可行的追问

也就是说用户执行的时候会获得s权限,而s权限可以获得root权限, 这样s权限就起一个中间作用

追答

对 就是这个意思

参考技术A 普通用户执行/usr/bin/passd命令时,由于passwd文件类型是(-rwsr-xr-x),执行过程中拥有root用户的权限,所以可以对/etc/shadow(-r--------)文件做强制写操作。
(-rwsr-xr-x)中的s是suid权限,功能是在这个文件被执行的过程中,其他用户可以在执行过程中获得用户权限,即root权限。本回答被提问者采纳
参考技术B 因为普通用户是通过psw命令修改自己的密码的,psw程序有修改shadow文件的权限

linux中赋予普通用户root权限的三种方式

前言

在成功拿下一个服务器并提权成为root用户以后,为了减少root用户使用时间从而减少被网站管理员发现的概率,就需要新建一个普通用户,并赋予其完全的管理员权限,有以下三种常见的方式

三种方式

1. 直接修改/etc/passwd文件
/etc/passwd文件里的第三列是UID,这个值为0的话就表示这个用户具有完全的管理员权限,所以新建一个用户后只需要把这个值置为0就可以:

如图的ning这个账户,只是更改了UID,现在验证一下是否具有了root权限:

可以看到,能打开/etc/shadow这个文件,表示具有了root权限

2. 修改/etc/sudoers文件里的wheel:
新建一个用户jordan后,按照以下方式修改:

去掉前面的#
然后把jordan加入到wheel组中:usermod -g wheel jordan
这时jordan就具有了root权限:
但是在想形式root权限时需要在前面加上sudo,而且需要每次输入密码,如果嫌麻烦,不想每次都输入密码,可以按照以下方式进行修改:

去掉#
这时就不再需要每次都输入密码了:

3. 修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:(先把前两部做的操作回滚,保证jordan用户现在没有管理员权限)

现在就具有了管理员权限:

总结

大家尽量不要使用第一种方式,推荐使用第三种方式。

以上是关于linux 中普通用户访问/etc/shadow 的问题的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统中关于/etc/shadow文件权限问题!

linux centos 7 如何让新增的普通用户在使用sftp时可以有root哪样全部目录权限?

linux /etc/sudoers权限修改,该怎么解决

linux用户管理,删除用户时出现问题cannot lock /etc/passwd

linux怎么禁止其他用户查看系统用户的信息,比如禁止执行这样的命令:cat /etc/passwd

linux下如何注释掉/etc/vsftpd 下的文件ftpusers