EDIT: Lütfen aşağıdaki yorumları okuyun! Bu çözüm tüm durumlar için geçerli olmayabilir.
Kabul edilen cevap harika ama Tomcat 7'yi Ubuntu 14.04'te çalıştırdığımdan beri, her şeyi çalıştırmak için yapmam gereken bazı ek şeyler vardı:
- Dosyayı düzenlemeden önce tomcat hizmetini durdurmanız gerekir
/etc/default/tomcat7
. Kullanıcı ve grubu değiştirdikten sonra, eski kullanıcıyı kullanarak bir hizmeti durdurmak artık mümkün olmayacaktır.
Dosyadaki kullanıcıyı ve grubu değiştirme /etc/default/tomcat7
Klasörün /var/log/tomcat7
ve tüm dosyalarının sahipliğini değiştirmeniz gerekir . Lütfen tüm adm kullanıcılarının günlükleri okuyabilmesi için adm grubunu korumanın bir avantaj olduğunu unutmayın.
sudo chown -R newuser:adm /var/log/tomcat7
Klasörün sahipliğini değiştirme /var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Ubuntu 14.04 üzerinde 80/443 numaralı bağlantı noktasında çalışıyorsa, authbind dosyalarının sahipliğini değiştirmeniz gerekir:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Çalışma klasörünün sahipliğini değiştirme
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Yapılandırma dosyalarını okunabilir hale getirin. Burada iki seçeneğiniz var: Ya tomcat7 grubuna yeni kullanıcı ekleyin:
sudo usermod -a -G tomcat7 newuser
... veya yapılandırma dosyalarının sahipliğini değiştirin:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Web uygulamalarınızın eriştiği günlük dosyaları yapılandırma dosyaları gibi başka dosyalarınız varsa, bu dosyaların sahipliğini de değiştirmeniz gerekir.
- Şimdi, her şey yeni kullanıcı ile hizmeti yeniden başlatmaya hazır olmalıdır.
DÜZENLEME 2: Tomcat 8 ve Ubuntu 18.04 sürümlerine geçtikten sonra, tomcat'i farklı bir kullanıcı olarak çalıştırırken başka bir sorun ortaya çıktı. Kodda /etc/init.d/tomcat8
aşağıdaki satır, tomcat kullanıcısının ana klasörünü değiştirmiş gibi görünüyor, ancak farklı bir kullanıcı kullanıyorsanız sonuç istediğiniz şey değildir.
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Bu satırı kaldırarak veya yorum yaparak yeni tomcat kullanıcısı için giriş klasörünün değiştirilmesini önleyebilirsiniz.