这两个命令的输出有什么区别
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
所有组添加写权限常规文件在目录var
、vendor
、pub/static
、pub/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
扩展查找权限