EDIT: Xin vui lòng đọc ý kiến dưới đây! Giải pháp này có thể không áp dụng cho tất cả các tình huống.
Câu trả lời được chấp nhận là rất tốt nhưng vì tôi chạy Tomcat 7 trên Ubuntu 14.04 nên có một số điều tôi cần phải làm để chạy mọi thứ:
- Bạn cần dừng dịch vụ tomcat trước khi chỉnh sửa tệp
/etc/default/tomcat7
. Khi bạn thay đổi người dùng và nhóm, sẽ không còn có thể dừng dịch vụ sử dụng người dùng cũ.
Thay đổi người dùng và nhóm trong tệp /etc/default/tomcat7
Bạn cần thay đổi quyền sở hữu thư mục /var/log/tomcat7
và tất cả các tệp của nó. Xin lưu ý rằng việc giữ nhóm adm để tất cả người dùng adm có thể đọc nhật ký là một lợi thế.
sudo chown -R newuser:adm /var/log/tomcat7
Thay đổi quyền sở hữu thư mục /var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Nếu chạy trên cổng 80/443 trên Ubuntu 14.04, bạn cần thay đổi quyền sở hữu các tệp authbind:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Thay đổi quyền sở hữu của thư mục làm việc
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Làm cho tập tin cấu hình có thể đọc được. Tại đây bạn có hai tùy chọn: Hoặc thêm bạn người dùng mới vào nhóm tomcat7 bằng cách:
sudo usermod -a -G tomcat7 newuser
... hoặc thay đổi quyền sở hữu các tệp cấu hình:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Nếu bạn có các tệp khác mà ứng dụng web của bạn đang truy cập, chẳng hạn như tệp cấu hình tệp nhật ký, v.v. thì bạn cũng cần thay đổi quyền sở hữu các tệp đó.
- Bây giờ, mọi thứ sẽ sẵn sàng để khởi động lại dịch vụ với người dùng mới.
EDIT 2: Sau khi nâng cấp lên tomcat 8 và Ubuntu 18.04, một vấn đề khác xuất hiện khi chạy tomcat với tư cách người dùng khác. Trong kịch bản /etc/init.d/tomcat8
, dòng sau đây dường như thay đổi thư mục chính của người dùng tomcat nhưng kết quả không như bạn muốn nếu bạn đang sử dụng một người dùng khác.
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Bằng cách xóa hoặc nhận xét dòng này, bạn có thể tránh việc thay đổi thư mục chính cho người dùng tomcat mới.