Knowledge Base
CentOS
At first grub boot prompt, you have 4sec to pres: [e]
Does not matter which grub kernel you choose as we are not really modifying the kernel.
With your [e] key just choose to edit the first one
add at the end the word "single", like so:
<YTABLE=us crashkernel=auto rhgb quiet single
and press [enter]
Back at the Grub menu press [b] to boot.
When the prompt comes up we are in single user mode
In this mode we are not required to authenticate and we can go ahead and reset the password by typing at the prompt:
[root@localhost /]# passwd
retype the password to confirm and the root password has been changed,
do a shutdown by typing:
shutdown -r now
::introtext::
Fixing the original problem
So we want to serve our files at /var/www/html
and enable writing to log files and file uploads as well? Let’s play nice with SELinux.
First, copy the files as usual to /var/www/html
, then set the proper ownership and permissions.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# Ownership sudo chown apache:apache -R /var/www/html cd /var/www/html # File permissions, recursive find . - type f - exec chmod 0644 {} \; # Dir permissions, recursive find . - type d - exec chmod 0755 {} \; # SELinux serve files off Apache, resursive sudo chcon -t httpd_sys_content_t /var/www/html -R # Allow write only to specific dirs sudo chcon -t httpd_sys_rw_content_t /var/www/html/logs -R sudo chcon -t httpd_sys_rw_content_t /var/www/html/uploads -R |
httpd_sys_content_t
– for allowing Apache to serve these contents and httpd_sys_rw_content_t
– for allowing Apache to write to those path.
You may use the 'sestatus' command to view the current SELinux status:
# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted
The 'setenforce' command may be used to switch between Enforcing and Permissive modes on the fly but note that these changes do not persist through a system reboot.
To make changes persistent through a system reboot, edit the 'SELINUX=' line in /etc/selinux/config for either 'enforcing', 'permissive', or 'disabled'. For example: 'SELINUX=permissive'
::/introtext::::fulltext::::/fulltext::
Read more: CentOS 7.5 + SELinux web folder writable by php/apache?