将 sudo 添加到 find 命令:它会改变什么?

将 sudo 添加到 find 命令:它会改变什么?

这两个命令的输出有什么区别

find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \;

sudo find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \;

答案1

命令是相似的。将为find所有组添加写权限常规文件在目录varvendorpub/staticpub/media、 和app/etc当前目录中。

第二个命令将以find升级的权限(以 root 身份)执行该命令。chmod如果某些文件由某个用户拥有,则可能需要更改文件的权限不是您的普通用户(执行任一命令行的用户),或者由于目录的访问权限,该用户无法访问这些目录或以下目录中的所有文件。

答案2

man sudo

sudo, sudoedit — execute a command as another user

因为您在示例中没有指定 sudo 用户名(即sudo -l anotheruser),所以它运行命令为用户默认为root。

所以区别在于,第一个命令是用当前终端的用户权限执行的,第二个命令是用当前终端的用户权限执行的

有关更多详细信息,请参阅手册页须藤

答案3

find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \;

可能不允许在某些目录中查找您会得到异常:find: ‘XXX’: Permission denied 第二个 cmd 用于sudo扩展查找权限

相关内容