我需要使用 /etc/shadow.bak 的内容恢复 /etc/shadow。我没有 sudo 密码,但有人告诉我“非默认影子组权限”可能会有帮助?
我跑
sudo -ll
我得到以下
james@machine:~$ sudo -ll
Matching Defaults entries for elf on 8ee2351512ca:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User james may run the following commands on machine:
Sudoers entry:
RunAsUsers: james
RunAsGroups: shadow
Options: !authenticate
Commands:
/usr/bin/find
shadow 上的权限如下
james@machine:~$ ls -laah /etc/shadow
-rw-rw---- 1 root shadow 0 Dec 15 20:00 /etc/shadow
答案1
您可以以 group shadow 身份运行 /usr/bin/find,并且 group shadow 具有对 /etc/shadow 的写访问权限,因此您可以执行如下操作
sudo -g shadow find /path/to/shadow.bak -exec cp {} /etc/shadow \;
这应该可以工作,因为 exec 是使用调用进程的用户:组运行的,在本例中是james:shadow
。