在Ubuntu LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境中,权限管理是确保系统安全性和稳定性的关键。以下是一些解决权限问题的基本步骤和命令:
adduser 命令,例如:sudo adduser newusername。usermod 命令,例如:sudo usermod -l newusername oldusername。userdel 命令,例如:sudo userdel username。groupadd 命令,例如:sudo groupadd groupname。usermod 命令,例如:sudo usermod -aG groupname username。groupdel 命令,例如:sudo groupdel groupname。passwd 命令,例如:sudo passwd username。sudo passwd root。/etc/sudoers 文件,可以指定哪些用户可以使用 sudo 命令以及这些用户可以执行的操作。可以使用 visudo 命令编辑该文件。ls -l 命令查看文件和目录的权限,例如:ls -l /path/to/file。chmod 命令修改文件和目录的权限,例如:sudo chmod 755 /path/to/file。chmod 755 filename 将文件的所有者设置为读、写和执行权限,组用户和其他用户设置为读和执行权限。chmod urwx filename 为文件的所有者增加读、写和执行权限。sudo chmod 644 /etc/nginx/nginx.conf。sudo find /var/www/html -type f -exec chmod 644 {} \;
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo chown -R www-data:www-data /var/www/html。mysql 命令行工具或phpMyAdmin创建数据库和用户,并分配适当的权限。例如:CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
UPDATE mysql.user SET Host='localhost' WHERE User='myuser';
FLUSH PRIVILEGES;
sudo chmod 644 /etc/php/7.x/fpm/pool.d/www.conf。sudo chown www-data:www-data /var/log/php7.x-fpm.log。sudo setenforce 0 # 临时禁用SELinux进行测试
sudo ausearch -c 'nginx' --raw | audit2allow -M my-nginx
sudo semodule -i my-nginx.pp
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx。sudo find / -type d -perm 777 -exec chmod 755 {} \;
sudo find / -type f -perm 666 -exec chmod 644 {} \;
sudo apt update && sudo apt upgrade
通过上述步骤,可以有效地管理Ubuntu LNMP环境中的权限,确保系统的安全性和稳定性。