目录
一、管理用户账号和组账号
(一)Liunx基于用户身份对资源访问进行控制
- 用户账号:
- (1) 超级用户root:root用户时linux操作系统中默认的超级用户账号,对本主机拥有最高权限。系统中超级用户是唯一的。
- (2) 普通用户(非root用户):由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
- (3) 程序用户:在安装linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail(邮件系统)等。
- 系统内所有的用户,可以通过su - +tab键遍历出来
- 遍历用户信息:id 用户名 root的uid一定是0
- 组账号
- 基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。
- 在/etc/passwd文件中第4端记录的即为该用户的基本组GID号。(第2个1005和1006)
- 附加组(公共组):用户除了基本组以外,额外添加指定的组,可有可无,可以有多个。(最后一个1005是附加组)
- 基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。
- UID(User IDentity,用户标识号)
- GID(Group IDentify,组标识号)
(二)用户账号文件
1. /etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息;每一行对应一个用户的账号记录
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户账号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字符串并进行暴力破解,因此存在一定的安全隐患。后来经过改进后,将密码转存入专门的shadow文件中,且只有root用户才能更改shadow文件中的内容,而passwd文件中仅保留密码占位符"x"。
root:x:0:0:root:/root:/bin/bash
字段1:用户帐号的名称字段2:用户密码占位符”x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GTD号
字段5:用户全名字段6:宿丰目录字段7:登求Shel1信息 (/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户号陆系统)tips:如果发现自己的账号无法登录,可以输入命令cat /etc/passwd查看自己的账号权限是否为/bin/bash
2. /etc/shadow
保存用户的密码、账号有效期等信息;每一行对应一个用户的密码记录。
默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。
root;$6SVyOUGgOCSv5HILMlwagZC/FwGfnrtJFnlT:18445;0:99999:7:::
- 字段1: 用户帐号的名称
- 字段2:使用MD5加密的密码字串信息,当为"*"或"!!"时表示此用户不能登求到系统。若该字段内容为空,则该用户无须密码即可登录系统
- 字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
- 字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
- 字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999(即密码永不过期),表示不进行限制
- 字段6:提前多少天警告用户密码将过期,默认值为7
- 宇段7:在密码过期之后多少天禁用此用户
- 字段8:账号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
- 字段9: 保留字段(未使用)date -d ‘1970-1-1 19313days'
- 所有伪用户的密码都是"!!"或"*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是"!!",代表这个用户没有密码,可以登录
3. 添加用户账号 useradd 新用户名
常用选项:
-u | 指定用户的 UID 号,要求该 UID 号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效) |
-e | 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 |
-g | 指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。 |
-G | 指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。 |
-M | 不建立宿主目录 |
-S | 指定用户的登录Shell,(比如/bin/bash为可登录系统,/sbin/nologin和/bin/false为禁止用户登录系统) |
小总结:
创建用户后常用命令:
useradd lisi
id lisi
cat /etc/passwd | grep lisi
4. 设置/更改用户口令passwd
两种方式:
- passwd 用户名
- echo '新密码' | passwd --stbin 用户名
5. 修改用户账号属性 usermod
6. 删除用户userdel
7. 用户账号的初始配置文件
文件来源
useradd命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件。
这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
主要的用户初始配置文件(用户账号的初始配置文件)
用户宿主目录下的初始配置文件只对当前用户有效
~/.bash_profile | 此文件中的命令将在该用户每次登录时被执行 |
~/.bashrc | 此文件中的命令会在每次加载"/bin/bash"程序(也包括登录系统)时执行 |
~/.bash_logout | 此文件中的命令将在用户每次退出登录时执行 |
8. 组账号文件
/etc/group: 保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
grep "postfix” /etc/group
mail:x:12:postfix
postfix:x:89:
字段1:组帐号的名称
字段2:占位符”x”
字段3:组账号的GID号
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号”,”分隔
二、管理目录和文件的属性
1. 访问权限:
- 读取r(4):允许查看文件内容、显示目录列表
- 写入w(2):允许修改文件内容,允许在目录中新建、移动删除文件或子目录
- 可执行x(1):允许运行程序、切换目录
命令:
chmod nnn 文件或目录
创建一个文件,默认可读写,没有执行权限
赋上可执行权限命令:chmod 777 文件名
mkdir -p aa/bb/cc
chmod -R 777 aa/bb/cc
-R:递归修改指定目录下所有子目录及文件的权限
2. 归属(所有权)
- 属主: 拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
chmod 属主名:属组名 文件名
示例:给abc.txt文件更改属主和属组
chmod zhangsan:zhangsan abc.txt
递归更改命令
chmod -R zhangsan:zhangsan aa/bb/cc
给aa目录下最后一个文件更改属主和属组
3. 执行shell脚本
执行shell脚本(.sh文件)
source test.sh
sh test.sh
./ test.sh(前提是这个脚本有执行权限)
三、SSH
(一)SSH概念:
SSH(SecureShell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户时输入的用户口令。因此SSH协议具有很好的安全性。
(二)SSH优点:
- 数据传输是加密的,可以防止信息泄露
- 数据传输是压缩的,可以提高传输速度
(三)SSH配置文件
sshd服务的默认配置文件是 vim /etc/ssh/sshd_config
修改文件内容后一定要重启,否则无效!!!
重启文件命令:systemctl restart sshd
ssh_config和sshd_config都是ssh服务器的配置文件
二者区别在于ssh_config是针对客户端的配置文件,sshd_config则是针对服务端的配置文件
(四)SSH客户端与服务端
SSH客户端:Putty、Xshell、CRT
SSH服务端:OpenSSH
OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。
CentOS 7系统默认已安装openssh相关软件包,并已将sshd服务添加为开机自启动。
Port 22 | 监听端口为22 |
ListenAddress 0.0.0.0 | 监听地址为任意网段,也可以指定OpenSSH服务器的具体IP |
LoginGraceTime 2m | 登录验证时间为2分钟 |
PermitRootLogin no | 禁止root用户登录 |
MaxAuthTries 6 | 最大重试次数为6 |
PermitEmptyPasswords no | 禁止空密码用户登录 |
UseDNS no | 禁用DNS反向解析,以提高服务器的响应速度 |
远程连接目标机命令
ssh root@目标机名(192.168.xxx.xxx)——默认端口号为22
更改端口号后连接目标机命令
ssh -P 新端口号 root@目标机名(192.168.xxx.xxx)
退出连接:exit
四、scp
远程传输文件/目录命令
传文件:
scp root(目的地用户名)@目标机名(192.168.xxx.xxx):目标机下的文件 客户机下存储该文件的路径
示例:
scp root@192.168.233.12:/etc/passwd /opt/rh
传目录:
scp -r root@目标机名(192.168.xxx.xxx):目标机下的目录 客户机下存储该目录的路径
示例:
scp -r root@192.168.233.12:/etc /opt/rh
注意:两处地址都必须为绝对路径!!!