公司现在的项目都是使用 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 的人来说真的是难,还好现在搜索引擎很方便。
: » 解决 mac 下执行 ./startup.sh 报 error =1 Operation not permitted 问题
原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/251991.html