ubuntu 服务器学习

308 阅读6分钟

Ubuntu apt 卸载详解

一、apt-get remove packagename

​ 该命令将移除与packagename相关联的所有二进制文件,但是不会移除与之相关联的配置文件或数据文件(configuration or data files),同样也不会移除packagename所依赖的包。

二、apt-get purge packagename或者apt-get remove --purge packagename

​ 这两条命令是等价的。它们的作用是:移除与包packagename相关联的所有文件,这些文件包括二进制文件和全局配置文件。注意,该命令不会移除packagename所依赖的包,也不会移除位于用户家目录中的与packagename相关联的配置文件或数据文件。

​ 当我们想要完全卸载一个程序的时候,这条命令将特别有用。因为我们经常遇到安装一个应用程序过程中出现安装失败,导致我们需要重新安装它;或者由于某个应用程序的配置文件混乱,我们想完全卸载这个应用程序然后再重新安装,那么就可以使用这条命令先完全卸载应用程序所在的包。

三、apt-get autoremove

​ 卸载当前系统中的所有孤立的包(remove orphaned packages),具体指那些曾经被其他包所依赖,但是现在不被任何包依赖了的包。例如,我们用apt-get remove --purge packagename卸载了packagename,但是packagename所依赖的包还保留在系统中,这时我们就可以用命令apt-get autoremove来卸载这些依赖包。注意,这条命令卸载的依赖包一定指的是孤立的包,即不再被任何包给依赖了的包。

四、aptitude remove packagename或者aptitude purge packagename

​ 上面两条命令也会卸载被packagename依赖但是不被系统中其他包依赖的包。

五、apt-get -s remove packagename

​ 这条命令将模拟卸载pacagename包,但是不会真的卸载。一般在卸载某个包之前,我们先用这条命令来查看一下卸载过程中会卸载哪些内容,防止因为拼错包名packagename而卸载了不是我们意图卸载的包。

当我们使用sudo apt-get install mysql-sever,安装某个应用程序后,如何删除呢?

  1. sudo apt-get remove mysql-server
  2. sudo apt-get autoremove

sudo apt-get update 这行命令就是让你下载新软件时是下的最新的,简而言之就是更新软件库。

sudo apt-get upgrade 这行命令就是让你已经下载的软件更新到最新,就好比手机应用宝提示某些软件需要更新了,然后你去更新。

更改主机名

hostnamectl xxx

$ sudo usermod -aG sudo lin

使用 adduser 也能成功:
$ sudo adduser lin sudo

从组移除用户:
$ sudo gpasswd -d lin sudo

查看用户所在组:
$ id lin

1.新增用户

  root@ubuntu:~# adduser lin   设置密码之后,一路 Enter 就行

2.增加管理员权限

下面有一个更加方便的方法:

  切换到 root,输入visudo命令

  root@ubuntu:~# visudo   该命令实际上打开的是/etc/sudoers文件,在“root ALL=(ALL:ALL) ALL”这一行下面加入一行:

  lin ALL=(ALL:ALL) ALL

  然后 ctrl + x 退出,是否保存选择yes,再按Enter键退出

3.查看用户组

cat /etc/group 查看所有用户:

cat /etc/shadow 添加用户到用户组:

例如添加 lin 到 sudo 组

$ sudo usermod -aG sudo lin 或者,使用 adduser 也能成功:

$ sudo adduser lin sudo 从组移除用户:

$ sudo gpasswd -d lin sudo 查看用户所在组:

$ id lin

4.修改普通用户密码

$ passwd 用户名

ubuntu删除一个文件夹下所有子文件夹中的指定文件

find ./val -name '*.txt'|xargs rm -r

FTP

sudo apt-get install vsftpd

一、安装vsftpd

sudo apt-get install vsftpd

二、增加账户

sudo useradd -m ftp sudo passwd ftp

在/home下建立ftp文件夹,存放被访问的文件,并更改权限

mkdir /home/ftp

sudo chmod 777 /home/ftp

chmod 777 文件或目录

示例:chmod 777 /etc/aaa 运行命令后,aaa文件夹(目录)的权限就被修改为777(可读可写可执行)。

如果是Ubuntu系统,可能需要加上sudo来执行:

sudo chmod 777 /etc/aaa

故事的开始,都会先留一个悬念。

只有程序员能懂的冷笑话系列中,有个比较经典的段子:

请用最简洁的语言描述我国FL。

754。

所以,754是什么意思呢?754是什么意思呢?754是什么意思呢?

下面具体介绍chmod命令。

Linux系统中,每个用户的角色和权限划分的很细致也很严格,每个文件(目录)都设有访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读、写、执行等操作。

操作文件或目录的用户,有3种不同类型:文件所有者、群组用户、其他用户。最高位表示文件所有者的权限值,中间位表示群组用户的权限值,最低位则表示其他用户的权限值,所以,chmod 777中,三个数字7分别对应上面三种用户,权限值都为7。

文件或目录的权限又分为3种:只读、只写、可执行。

权限 权限数值 二进制 具体作用

权限权限数值二进制具体作用
r400000100read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
w200000010write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
x100000001execute,执行。当前用户可以执行文件,当前用户可以进入目录。

依照上面的表格,权限组合就是对应权限值求和,如下:

7 = 4 + 2 + 1 读写运行权限 5 = 4 + 1 读和运行权限

4 = 4 只读权限

因此,大家也就明白了 chmod 754 filename 命令的含义了。

这句命令的意思是将filename文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户。

更多官方的、详细的解释,可以使用下面的命令查看:

chmod --help 或者

man chmod

使用tar 命令 tar命令有一下参数

-c 压缩文件内容

-x 解压文件中的内容

-z 使用gzip来解压或压缩.tar.gz格式的文件

-v 压缩过程中显示文件

-f 置顶文件名,f 后面立刻紧跟文件名,不能接受其他参数

MySQL的安装

sudo apt install mysql-server-5.7

sudo mysql_secure_installation

新建远程登录用户并授权

mysql> create user 'eric'@'%' identified by 'lyd2017'; Query OK, 0 rows affected (0.01 sec) mysql> grant all on . to 'eric'@'%';--所有权限 Query OK, 0 rows affected (0.00 sec) 关于授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说明:privileges-用户的操作权限,如select,insert,update 等,如果要授予所有权则使用all

如果要授予该用户对所有数据库和表的操作权限则用* 表示,如 .

例如:

GRANT SELECT, INSERT ON mysql.tables TO 'eric'@'%'; GRANT ALL ON . TO 'eric'@'%'; 但是用这些命令授权的用户不能再给其他用户授权,如果要让该用户有权限,则使用

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

SHOW VARIABLES LIKE 'validate_password%';

set global validate_password_policy=LOW

1.需要修改/etc/mysql/mysql.conf.d/mysqld.cnf 文件。

找到bind-address = 127.0.0.1这一行

改为bind-address = 0.0.0.0即可

2.在连接服务器后,操作mysql系统数据库

         命令为:  mysql -u root -p

**3. 查询用户表命令:select User,authentication_string,Host from user; (这里也可以看出host默认都是localhost访问权限)

GRANT ALL PRIVILEGES ON . TO '账号'@'%' IDENTIFIED BY '密码';

  1. apt 更新

  2. 安装 nginx

  3. 安装MySQL数据库

  4. 安装PHP

  5. nginx 和 php的配置

  6. 其它

    1)mysql 的配置

    2)nginx 的配置 重定向

    3)php 的配置

server
{
    listen 80;
    server_name 123.57.191.3;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/123.57.191.3;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-56.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/123.57.191.3.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }
    access_log  /www/wwwlogs/123.57.191.3.log;
    error_log  /www/wwwlogs/123.57.191.3.error.log;
}

location /
{
   try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;



server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name 123.57.191.3;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
               fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;

                include fastcgi.conf;

                include fastcgi_params;
        }
        location ~ /\.ht {
                deny all;
        }
}


sudo vim /etc/nginx/sites-available/default
sudo vim /etc/nginx/snippets/fastcgi-php.conf
sudo vim /etc/php/7.2/fpm/pool.d/www.conf
sudo /etc/init.d/php7.2-fpm restart
sudo nginx –s reload 
sudo /etc/init.d/mysql restart
sudo vim  /etc/mysql/mysql.conf.d/mysqld.cnf
sudo vim mysqld.cnf
bind-address           = 0.0.0.0
# 新增加
character-set-server=utf8
#


php -i | grep php.ini

service nginx reload

udo vim etc/php/7.2/cli/php.ini  0 改成 1


重写

       if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php$1 last;
        }

用户相关

一、用户添加

sudo useradd -r -m -s /bin/bash

-r:建立系统账号

-m:自动建立用户的登入目录

-s:指定用户登入后所使用的shell

二、修改用户权限

这里采用修改Ubuntu 18.04系统/etc/sudoers文件的方法分配用户权限。因为此文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限。

sudo chmod +w /etc/sudoers

sudo vim /etc/sudoers

sudo chmod -w /etc/sudoers

User privilege specification

root ALL=(ALL:ALL) ALL

ftp ALL=(ALL:ALL) ALL

至此,新用户创建成功,并且用户目录被创建,权限也分配成功

三、删除用户

如果要删除用户,请按下面操作进行,分为3步:

1、执行userdel命令:sudo userdel ftp

2、删除用户目录命令:sudo rm -rf /home/ftp

3、删除用户权限相关配置:删除或者注释掉/etc/sudoers中关于要删除用户的配置,否则无法再次创建同名用户。

以及查看当前登录

w

who

users

查看系统中所有用户:

grep bash /etc/passwd

或者:

cat /etc/passwd | cut -f 1 -d:

查看组

cat /etc/passwd

cat /etc/group

输入以下命令以检查特定用户属于哪个组:

$ groups [username]

您还可以使用以下命令列出组成员及其GID。

$ id [username]

新增加

character-set-server=utf8

阿里云推荐关闭

禁用之后会降低攻击者通过sql注入漏洞器读取敏感文件的能力

local_infile=0

禁用符号链接以防止各种安全风险 skip_symbolic_links=yes

ubuntu下查看权限的命令为:

ls -l filename

ls -ld folder

ubuntu下设置权限的命令为:

一共有10位数

其中: 最前面那个 - 代表的是类型

中间那三个 rw- 代表的是所有者(user)

然后那三个 rw- 代表的是组群(group)

最后那三个 r-- 代表的是其他人(other)

然后我再解释一下后面那9位数:

r 表示文件可以被读(read)

w 表示文件可以被写(write)

x 表示文件可以被执行(如果它是程序的话)

  • 表示相应的权限还没有被授予

现在该说说修改文件权限了

在终端输入:

chmod o+w xxx.xxx

表示给其他人授予写xxx.xxx这个文件的权限

chmod go-rw xxx.xxx

表示删除xxx.xxx中组群和其他人的读和写的权限

其中:

u 代表所有者(user)

g 代表所有者所在的组群(group)

o 代表其他人,但不是u和g (other)

a 代表全部的人,也就是包括u,g和o

r 表示文件可以被读(read)

w 表示文件可以被写(write)

x 表示文件可以被执行(如果它是程序的话)

其中:rwx也可以用数字来代替

r ------------4

w -----------2

x ------------1

  • ------------0

行动:

  • 表示添加权限
  • 表示删除权限

= 表示使之成为唯一的权限

当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

-rw------- (600) 只有所有者才有读和写的权限

-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限

-rwx------ (700) 只有所有者才有读,写,执行的权限

-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限

-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限

-rw-rw-rw- (666) 每个人都有读写的权限

-rwxrwxrwx (777) 每个人都有读写和执行的权限

sudo chmod 600 ××× (只有所有者有读和写的权限)

sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)

sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)

sudo chmod 666 ××× (每个人都有读和写的权限)

sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

git fetch origin --prune

若分配给某个文件所有权限,则利用下面的命令:

sudo chmod -R 777 文件或文件夹的名字(其中sudo是管理员权限)

参考:

ubuntu18 新增配置用户删除用户

blog.csdn.net/huanglu0314…

blog.csdn.net/EricLeiy/ar…

blog.csdn.net/pyrans/arti…

blog.csdn.net/fcjjlj/arti…

blog.csdn.net/EricLeiy/ar…

blog.csdn.net/Ersan_Yi/ar…

blog.csdn.net/hello_world…