因突发奇想,想将在运行jenkins机器上的tomcat使用普通用户启动tomcat,于是备份了tomcat目录就开干......!
(当然是测试环境,可以浪的情况下)
首先当然是备份目录了
cp -rp xxxx xxxx
将权限也一起备份
useradd tomcatuser #创建用户,可能有人会为什么不 -s /sbin/nologin (额...这样就不能 su 来启动了,其他方法待试)
chown -R tomcatuser:tomcatuser /usr/local/apache-tomcat-7.0.85 #改属主组
chmod -R 700 /usr/local/apache-tomcat-7.0.85 #改权限
su - tomcatuser -c '/usr/local/apache-tomcat-7.0.85/bin/startup.sh' #使用tomcatuser启动
ps -elf #查看运行用户
嗯。。。使用普通用户启动tomcat,确实是可以了,但是目录下的jenkins,因为权限问题,无法构建了。于是又是一顿浪
报错,无法使用git 获取回源问题。也就是权限被拒绝了
因为获取git是使用ssh/http协议,我这边选择的是ssh,这就涉及到ssh的key问题了。
于是之前的key 都是在/root/.ssh (当然不会报错拉)
但是现在启动tomcat的用户改了,它目录下的.ssh肯定是没有key的
于是,将/root/.ssh的key cp过去
cp /root/.ssh/* /home/tomcatuser/.ssh/
chown -R tomcatuser:tomcatuser /home/tomcatuser/.ssh/
于是git构建的权限问题解决了.....
上面的问题确实可以了。。然后又出现其他权限问题了
因为我的jenkins 构建中有一条命令是rsync同步,但是tomcat使用普通用户是没有权限同步到root的文件夹的。
当然是权限被拒绝咯
所以为了不影响同步后的权限,嗯,就到这了
更改权限这些问题,特别是带-R 递归的 ,一定要备份,备份,什么都备份。
写的不好的地方,麻烦纠正一下,技术不到家。不要砍手就好,还需要敲命令的,比如rm -rf /* ?