解决 mac 下执行 ./startup.sh 报 error =1 Operation not permitted 问题

JAVA herman 591浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

公司现在的项目都是使用 SpringBoot 了,前几天刚把一个项目用 SpringBoot 重写了,原来是一个老项目,用的是 Servlet。必须要用 Tomcat 启动。但是在启动时报了两个问题:tomcat catalina.sh error=13, Permission denied 和 error =1 Operation not permitted,本文说说这两个问题的解决方案。

这其实是 Mac 电脑的一个限制!

我刚开始以为是权限问题,所以我就执行了 chmod -R 755 tomcat。把整个 tomcat 的权限都给放大。

后来发现还是不可以。说一下,Mac 电脑中,tomcat 从官方下载下来后,默认是没有执行权限的,并且默认权限是 644。

权限放大后,还是不能解决问题。再次执行启动脚本提示:error =1 Operation not permitted。

执行 ls -al 命令,发现下面一大堆的文件都带 @ 权限。这是个什么东西?

bin ls -al
total 1704
drwxr-xr-x@ 25 xttblog  staff     800 12 12 12:07 .
drwxr-xr-x@ 17 xttblog  staff     544 12 24 15:14 ..
-rwxr-xr-x@  1 xttblog  staff   35051 12 12 12:07 bootstrap.jar
-rwxr-xr-x@  1 xttblog  staff    1703 12 12 12:07 catalina-tasks.xml
-rwxr-xr-x@  1 xttblog  staff   15900 12 12 12:07 catalina.bat
-rwxr-xr-x   1 xttblog  staff   24218 12 12 12:07 catalina.sh
-rwxr-xr-x@  1 xttblog  staff  207125 12 12 12:07 commons-daemon-native.tar.gz
-rwxr-xr-x@  1 xttblog  staff   25145 12 12 12:07 commons-daemon.jar
-rwxr-xr-x@  1 xttblog  staff    2040 12 12 12:07 configtest.bat
-rwxr-xr-x@  1 xttblog  staff    1922 12 12 12:07 configtest.sh
-rwxr-xr-x@  1 xttblog  staff    8508 12 12 12:07 daemon.sh
-rwxr-xr-x@  1 xttblog  staff    2091 12 12 12:07 digest.bat
-rwxr-xr-x@  1 xttblog  staff    1965 12 12 12:07 digest.sh
-rwxr-xr-x@  1 xttblog  staff    3460 12 12 12:07 setclasspath.bat
-rwxr-xr-x@  1 xttblog  staff    3680 12 12 12:07 setclasspath.sh
-rwxr-xr-x@  1 xttblog  staff    2020 12 12 12:07 shutdown.bat
-rwxr-xr-x   1 xttblog  staff    1902 12 12 12:07 shutdown.sh
-rwxr-xr-x@  1 xttblog  staff    2022 12 12 12:07 startup.bat
-rwxr-xr-x   1 xttblog  staff    1904 12 12 12:07 startup.sh
-rwxr-xr-x@  1 xttblog  staff   49336 12 12 12:07 tomcat-juli.jar
-rwxr-xr-x@  1 xttblog  staff  418183 12 12 12:07 tomcat-native.tar.gz
-rwxr-xr-x@  1 xttblog  staff    4574 12 12 12:07 tool-wrapper.bat
-rwxr-xr-x@  1 xttblog  staff    5515 12 12 12:07 tool-wrapper.sh
-rwxr-xr-x@  1 xttblog  staff    2026 12 12 12:07 version.bat
-rwxr-xr-x@  1 xttblog  staff    1908 12 12 12:07 version.sh

后来网上搜索了一下,发现可以通过 xattr -d 命令来解决。原来 mac os/x 系统有一个扩展权限属性@。

解决办法如下:

xattr -d com.apple.quarantine startup.sh 
xattr -d com.apple.quarantine catalina.sh
xattr -d com.apple.quarantine shutdown.sh

这对于初次使用 mac 的人来说真的是难,还好现在搜索引擎很方便。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 解决 mac 下执行 ./startup.sh 报 error =1 Operation not permitted 问题