当前位置: 技术问答>linux和unix
非root用户,可以改别人密码吗?
来源: 互联网 发布时间:2016-10-09
本文导语: 普通用户,加入root组可以改吗? 还有其他途径可改吗 | sudo ? | 使用Sudo方法是可以解决这个问题的,下面是我的测试: 1.建立测试用户testAcct1和testAcct2(使用testAcct1设置testAcct2的密码) use...
普通用户,加入root组可以改吗?
还有其他途径可改吗
还有其他途径可改吗
|
sudo ?
|
使用Sudo方法是可以解决这个问题的,下面是我的测试:
1.建立测试用户testAcct1和testAcct2(使用testAcct1设置testAcct2的密码)
useradd testAcct1
useradd testAcct2
2.编辑/etc/sudoers文件,允许用户testAcct1执行/usr/bin/passwd
使用visudo -f /etc/sudoers编辑文件(就像使用Vi一样),在文件# User privilege specification下方添加一行:
testAcct1 listenerhost= /usr/bin/passwd
其中listenerhost是我测试的主机名,可能会随测试环境改变而改变。保存退出。
3.使用testAcct1登陆
su - testAcct1
4.testAcct1使用sudo来修改testAcct2的密码
以上的步骤都是为sudo命令作准备的,这一步是关键:
sudo /usr/bin/passwd testAcct2
这一步会要求你首先输入testAcct1的密码,输入验证成功后,会提示你再输入testAcct2的密码(也就是我们要改的密码)下面是我的测试:
[testAcct1@listenerhost ~]$ sudo /usr/bin/passwd testAcct2
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
Changing password for user testAcct2.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
5.使用testAcct2登陆测试
su - testAcct2输入4中修改后的密码,成功登陆,其实我们修改密码已经成功。但是,我们还是验证看看:
[testAcct2@listenerhost ~]$ id
uid=503(testAcct2) gid=505(testAcct2) groups=505(testAcct2) context=user_u:system_r:unconfined_t
6.删除测试帐户testAcct1和testAcct2
userdel testAcct1
userdel testAcct2
|
除非你用sudo 否则应该是不行的
passwd命令 属主是root 是设置了suid位的 你可以ls -l `which passwd`查看一下 也就是普通用户用passswd命令更改自己的秘密的时候 其实也是root权限执行的 但却只能更改自己密码
因此 在passwd的源码里肯定设置了判断当前用户是谁 如果非root 那么就只能修改自己的密码
因为没研究过passwd命令的源码 上面是个人猜测 仅供参考
另外把普通用户加入root组 是不推荐的做法 与其这样做你不如给他root权限
passwd命令 属主是root 是设置了suid位的 你可以ls -l `which passwd`查看一下 也就是普通用户用passswd命令更改自己的秘密的时候 其实也是root权限执行的 但却只能更改自己密码
因此 在passwd的源码里肯定设置了判断当前用户是谁 如果非root 那么就只能修改自己的密码
因为没研究过passwd命令的源码 上面是个人猜测 仅供参考
另外把普通用户加入root组 是不推荐的做法 与其这样做你不如给他root权限
|
没试过,不过估计是行不通的!
|
应该不行吧,这都行的话linux的权限管理不成摆设了啊
|
肯定不行,那你把root改了,不就可以登root了,
普通用户应该没有权限写,甚至读passwd文件,所以要用passwd程序实现。
普通用户应该没有权限写,甚至读passwd文件,所以要用passwd程序实现。
|
用root把passwd文件权限改了就可以
或者把别的用户怕uid改成0,那就等同于root权限了,也就可以改了
或者把别的用户怕uid改成0,那就等同于root权限了,也就可以改了
|
恩,加入root组应该实现不了改密码的
|
用root权限修改吧,sudo权限也不能修改他人密码。
|
passwd这个文件有特殊权限。
|
有些操作系统支持角色,更细粒度的权限控制,可以指定一个用户或角色可以运行哪些命令,所以对于修改用户口令这一权力,不一定非得是root。Solaris, AIX较新版本都支持,别的不清楚。
|
用光盘启动进入LIVECD系统可以进行修改
|
实现不了。除非使用rescue模式或单用户模式。
|
不行,sudo也是要root的权限。
|
根据我的知识是可以改的,将uid和gid都改成0就可以了吧!!
|
不可以,
|
sudo 就是root命令。用root给你修改的权限