在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环境中的权限,确保系统的安全性和稳定性。