这个问题类似于这个,但希望能够更清楚地表达。
假设这/home
是一个 NFS 挂载目录,并且 NFS 服务器启用了根压缩。考虑以下脚本,它需要 root 权限才能读取文件,需要普通用户权限才能写入文件。
#!/bin/bash
cat /etc/shadow
touch ~/shadow
如果没有运行此脚本sudo
,则用户无法读取/etc/shadow
。但是,如果使用 运行脚本sudo
,则 root 无法写入~/shadow
,因为 root 受到挤压。
运行此脚本时是否可以向 root 授予用户权限,以便它可以作为一个脚本成功运行,而无需包含sudo
每个需要它的命令?
由于上述原因,我试图避免sudo
在脚本内部使用这里。
答案1
您可以将脚本运行为sudo
.但是,您可以修改脚本以在不需要的地方或在您的情况下在处理nfs
文件系统时放弃 root 权限。
#!/bin/bash
cat /etc/shadow
su -c 'touch ~/shadow' - <some_user>