Linux基础学习(四)

一、ssh高级

1、认识.ssh文件

作用:ssh文件是配置文件,当我们在进行ssh文件连接的时候,如果进行了授权(也就是说输入了密码),那么有关SSH配置信息都保存在用户目录下的.ssh目录下。且其与免密码登录有关。

2、免密码登录

设置步骤
(1)、配置公钥:执行ssh-keygen生活才能SSH密钥,一路回车即可。
(2)、上传公钥到服务器:执行ssh-copy-id -p port username@ip,可以让远程服务器记住我们的公钥。
经过上面的步骤之后,我们在本地远程登录服务器的时候就可以不用输密码了。
至于生成的具体内容在.ssh文件中。

原理:我们在执行ssh-keygen的时候生成了公钥和密钥。本地主机将公钥传递给服务器,这样本地就使用私钥对数据进行加密和解密;服务器用公钥对数据进行加密和解密。传输的过程中由于密钥的存在使得通讯的双方是唯一确定的(不考虑中间拦截的情况),所以就相当于已经建立了连接,所以就不需要再使用密码进行登录了。

3、设置别名

我们在使用ssh或者scp连接远程的服务器或者进行操作的时候都要进行username@ip的操作,每次都要看ip地址很麻烦,因此我们可以对username@ip设置一个别名进行连接。
步骤
(1)、首先在.ssh文件下创建文件config
(2)、config中的内容为:

Host 别名
HostName 运城服务器的IP地址
User 远程服务器的用户名称
Port 端口号

(3)、这样进行设置之后,使用ssh 别名,就可以登录远程服务器。

二、用户权限

1、基本概念

(1)、用户是linux系统中非常重要的概念,要使用linux系统用户必须有一个账户,并且对相同的系统资源,用户有不同的使用权限。
(2)、在linux中可以确定每一个用户对不同的文件或者目录有不同的权限。
(3)对文件和目录的不同的权限有:

r4
w2
执行x(excute)1
(4)、组的概念:一个linux系统有很多的用户,如果若干个用户对相同的系统资源的权限是一致的,如果我们逐个设置资源权限,那么就很麻烦,所以引入组的概念。 一个组由若干个用户组成,组中的每一个用户对相同的系统资源的权限是相同的,所以我们只需要设置组队系统资源的权限就可以了,不用逐个设置用户对资源的权限。

2、使用ls查看文件用户权限

使用ls -l可以查看文件夹下的详细信息,从左到右依次是:
权限:第一个字符如果是d表示的是目录;之后就是9个字符,每三个为一组,依次表示所有者、组合其他用户的使用权限。

硬链接数:表示文件或者目录的打开方式。如果单纯是文件,那么就只有一种,也就是cd+绝对路径;如果是目录起码是两种:一种是cd+绝对路径,第二种是cd.;如果该目录还有子目录,那么还有cd . .;而每增加一个子目录就会有一种cd . .的方式,所以目录的具体的硬链接数取决于其有多少个子目录。

所有者:家目录下文件或者目录的拥有者一般是当前用户。

:在LINUX中,很多时候会出现组名和用户名相同的情况。

大小
时间
名称

3、修改权限

指令:chmod +/-rwx 文件/目录
作用:增加或者减少文件或者目录的权限。并且一般默认同时修改所有者和组的权限。

效果
(1)、对于目录而言,可执行权限是必须的,否则就不能对目录进行终端命令。
(2)、对于目录或者文件没有r权限就是不能读;没有w权限就是不能改变文件或者目录的内容。

4、超级用户

超级用户对系统的所有资源都有操作的权限。我们一般在使用Linux的时候都是普通用户,如果没有创建普通用户,那么系统会自动生成一个默认的普通用户。

sudo:substitute user,也就是转换用户,而默认的是root用户,所以我们可以使用sudo执行管理员权限的操作。

三、组管理

管理员权限:对组进行操作必须使用管理员权限。
组操作
(1)、sudo groupadd name创建组
(2)、sudo groupdel name删除组
(3)、cat /etc/group 确认组信息(注意:~表示的当前用户的home目录,/表示的是根目录,etc一般是系统相关的信息目录)
(4)、sudo chgrp -R 组名 文件、目录:修改文件或者目录所在的组(其中-R参数可以递归进行组的改变

实例:在desktop文件加下创建目录demo;床架组dev;将demo的组改为dev.
操作

mkdir demo
sudo groupadd dev
chgrp -R dev demo
ls -l:查看文件的组是否更改

四、用户管理

1、创建用户

命令
(1)、sudo useradd -m -g 组名 用户名(创建用户
(2)、psaawd 用户名(设置密码)
一般在上述两个指令是一起使用的,创建用户之后我们就要设置其密码
(3)、userdel 用户名(删除用户
(4)、cat /etc/passwd | grep 用户名(查看相应用户的信息

注意
(1)、在创建用户是-m选项是必不可少的,当有-m选项的时候系统会自动帮我们创建新用户的家目录。如果我们在创建用户的时候忘记加上这个选项,那么最简单的方法就是删除用户,重新创建。
(2)、在创建用户的时候,会默认创建一个与用户名相同的组名。
(3)、用户信息保存在/etc/passwd文件中。

2、查看用户的信息

指令
(1)、id [用户名] []表示的这个参数可以有也可以没有。有那么就查看指定用户的UID和GID;如果没有那么就是查看当前登录用户的UID和GID
(2)、who 查看当前所有登录的用户
(3)、whoami 查看当前登录用户的账户名

passwd文件
/etc/passwd文件中储存的是用户的信息,由6个分号组成7个信息,分别是:
(1)、用户名
(2)、密码,如果是x就表示密码是加密的
(3)、UID(用户标识)
(4)、GID(组标识)
(5)、用户全名或本地账号
(6)、家目录
(7)、登录使用的shell,就是登录之后,使用的终端命令,ubantu默认是dash。

例子
(1)、ID查询用户的信息:
在这里插入图片描述

如图所示,id之后没有写具体的用户名,所以显示的是当前登录用户的信息。
首先是uid,之后是gid,可能有多个组(如图所示的用户),因为不同的组对资源的权限是不同的,所以当我们要给用户增加某权限的时候就是通过将用户加到组中。
之后我们打开/etc/passwd文件,可以看到用户信息与id的信息是一样的。
打开/ect/group文件,可以看到python用户在多个组中,说明该用户有这几个组的权限,其与id显示的信息也是一致的。

(2)、使用who查看登录用户的信息在这里插入图片描述

who显示的是有哪几个用户登录了该系统,这是由于Linux操作系统的出发点就是允许多个用户同时登录,所以当我们使用另一台主机远程登录Linux的用户的时候,who就会显示所有登录的用户。
如图显示的信息是:用户名 创建时间 (登录的主机ip)
其中登录主机的ip,(:0)表示的是本地主机登录,如果是其他主机远程登录就会显示登录主机的ip地址。

3、指定用户权限

指令:usermod
(1)、usermod可以用来设置用户的主组、附加组登录Shell,此命令需要使用root权限。
(2)、主组:通常在新建用户时指定,在/etc/passwd的第四列GID对应的组。
(3)、附加组:在/etc/gruop中最后一列表示该组的用户列表,用于指定用户的附加权限

示例
(1)、usermod -g 组 用户 这里是小写的g,用于改变用户的主组
(2)、usermod -G 组 用户 这里是大写的G,用于增加附加组
(3)、usermod -s /bin/bash 修改用户登录Shell,ubantu默认使用的是dash

注意:默认使用useradd添加的用户是没有权限使用sudo以root的身份进行操作的,可以使用以下命令,将用户添加到sudo附加组中:

sudo usermod -G sudo 用户名

实例
创建用户lisi,并且将其添加到sudo附加组中:

sudo useradd -m lisi
现在远程登录到lisi用户是不能执行sudo命令的
sudo usermod -G sudo lisi
cat /etc/passwd | grep lisi
会看到lisi用户的附加组信息
cat /etc/group | grep lisi
会看到sudo组的组成员用户中有lisi

小知识:当我们使用windows远程登录ubantu上的用户的时候,windows的shell和uabntu的shell不是同一个,ubantu使用的是dash
所以如果我们在windows的shell中使用向上向下的时候就会出错,那么我们就可以使用sudo usermod -s /bin/bash指定wdindwos登录的用户使用的shell,就可以达到与ubantu上的shell同样的操作。

4、which(重要)

注意
/etc/passwd是用于保存用户信息的文件(etc是系统配置目录)
/usr/bin/passwd是用于修改用户密码的程序(bin二进制执行文件目录)

which命令可以查看执行命令所在位置,例如
which ls
#输出/bin/ls
which useradd
#输出/usr/sbin/useradd

bin和sbin
(1)、在Linux中,绝大多数可执行文件都是保存在/bin,/sbin,/usr/bin,/usr/sbin
(2)、/bin是二进制执行文件目录,主要用于具体应用
(3)、/sbin是系统管理员专用的二进制存放目录,用于系统管理
(4)、/usr/bin是后期安装的一些软件
(5)、/usr/sbin是超级用户的一些管理程序

5、切换用户

命令
(1)、su - 用户名 如果没有减号,那么就会保持原位置;如果有,那么就可以切换到用户家目录
如果不加用户名,那么就会切换到root用户,这很危险。切换到root用户可能需要密码,但是我们又没有设置过,那么我们可以先sudo passwd root,设置root的密码之后,再切换到root用户。
(2)、exit:退出当前登录账户,只是退一步,如图:

在这里插入图片描述

6、文件权限修改总结

指令:(从ls -l的信息来考虑:拥有者 所在组 其他)
(1)、chown 修改拥有者
(2)、chgrp 修改组
(3)、chmod 修改权限
修改权限的指令,如果是chmod -/+r/w/x 文件或目录,目录,那么默认是修改拥有者和所在组的权限,所以是不精确的,如果要精确控制,那么要使用数字,r(4),w(2),x(1)。**此外,如果在chmod的时候使用了选项-R,那么救护递归修改目录及目录下所有内容的权限。

又是为了肖战的一天,但是没有完成任务,明天继续!明天flag不倒!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值