通过命令行管理, 多多利用软件自带的help功能.
sudo
sudo -h # 帮助
sudo -i # login to root , 'exit' to exit
为用户添加sudo权限, 通过root用户
sudo vi /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) ALL
vita2333 ALL=(ALL:ALL) ALL # 添加此行
ssh远程连接
终端查看ip地址
ifconfig -a # 第二行 inet addr即ip地址
ping ip地址
ssh 登录用户@ip地址
apt 安装软件
sudo apt # 帮助
sudo apt update # 更新源
sudo apt search php # 搜索php源
sudo apt install php7.4-fpm php7.4cli # 安装
安装文件在/etc/
下
cd /etc
ll # list all
可通过service
控制
sudo service php7.4-fpm start
sudo service php7.4-fpm stop
sudo service php7.4-fpm restart
通过systemctl
控制开机自启动
sudo systemclt enable php7.4-fpm
sudo systemclt disable php7.4-fpm
配置后的重载
nginx -s reload
网站站点权限
网站运行用户
查看nginx运行的用户
ps aux|grep php
www-data 26481 0.0 0.6 197904 6916 ? S 07:52 0:00 php-fpm: pool www
www-data 26482 0.0 0.6 197904 6916 ? S 07:52 0:00 php-fpm: pool www
这里是www-data
,再查看用户组
sudo vi /etc/passwd
得到nginx用户为:www-data.www-data
文件权限设置
网站根目录权限遵循最小权限原则:
- 文件 644 (rw-r--r--)
- 文件夹 755 (rwxr-xr-x)
- 权限用户和用户组 www-data
- 网站运行时实时生成数据的文件夹,如:cache/log等, 权限 775 (rwxrwxr-x)
文件夹
读权限
代表能否查看文件夹中的东西
文件夹写权限
代表能否在文件夹中添新东西
文件夹的执行权限
代表能否进入文件夹
文件夹的读和写权限依赖文件夹是否具有执行权限,而文件没有此类限制。
sudo chown -R www-data.www-data /var/www
sudo find /var/www -type d -exec chmod 755 {} \;
sudo find /var/www -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/wwwlogs
最终效果
vita2333@vita2333:/var/www/html$ ll
drwxr-xr-x 2 www-data www-data 4096 May 29 07:37 ./
drwxr-xr-x 4 www-data www-data 4096 May 29 08:10 ../
-rw-r--r-- 1 www-data www-data 10918 May 29 07:37 index.html
-rw-r--r-- 1 www-data www-data 612 May 29 07:22 index.nginx-debian.html
用户管理
添加用户
这里安装的用户为vita2333,现在为服务器新添加一个deployer用户
sudo useradd -m -s /bin/bash -g www-data deployer
groups deployer # 查看deployer当前组
sudo passwd deployer # 设置密码
su deployer # 切换到deployer
查看用户
who # 查看当前登录用户
whoami # 查看自己的用户名
禁用root用户ssh登录
sudo vi /etc/ssh/sshd_config
PermitRootLogin no
sudo service ssh reload
使用秘钥登录
生成本地秘钥
ssh-keygen -t rsa -C "email"
传输到服务器
ssh-copy-id user@ip
禁用密码ssh登录
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
sudo service ssh reload