Linux(进阶)——学习笔记(用户管理、权限管理、系统管理[防火墙]、软件安装)
一、Linux 用户管理
1.1 概述
- 用户是 Linux 系统工作中重要的一环,用户管理包括用户与组账号的管理。
- 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
- Linux 系统中的 root 账号通常用于系统的维护和管理,是超级管理员
- 在 centOS7 中有 3 种用户,每种用户的唯一身份标识是
UID
超级管理员:UID 为 0 超级用户
:UID 的范围[1,999] 普通用户
:UID>=1000
CentOS7 会调用程序用户来启动某些后台应用或服务,该用户不能登录系统。
1.2 常见命令
命令 | 描述 |
---|---|
whoami | 查看当前用户身份 |
`` |
1.3 用户
1.3.1 查看登录用户、退出登录
查看登录用户命令:who [-mq]
参数 | 描述 |
---|---|
-m | 只显示运行 who 命令的用户名、登录终端和登录时间 |
-q 或 --count | 只显示用户的登录账号和登录用户的数量 |
退出登录命令:exit
- 如果是图形界面,退出当前终端;
- 如果是使用 ssh 远程登录(ssh 是安全协议,是 Linux 自带的登录工具),退出登录账户;
- 如果是切换后的登录用户,退出则返回上一个登录账号。
1.3.2 查看所有用户的详细信息
命令:cat /etc/passwd
每一行代表一个用户的详细信息,它包含用冒号 :
分隔的 7 个字段;
以 root 用户 为例:
字段 | 描述 |
---|---|
字段1 | 已创建的用户名 |
字段2 | x 表示加密密码,保存在 /etc/shadow 文件中 |
字段3 | 0 代表用户的 UID |
字段4 | 用户所在的组 id,简称 GID |
字段5 | 代表用户描述信息 |
字段6 | /root 代表用户家目录 |
字段7 | 代表用户登录系统的命令解释器(shell) /bin/bash 表示该用户可以登录系统 /sbin/nologin 表示该用户无法登录系统 |
1.3.3 添加用户账号(useradd)
在Linux中添加用户账号可以使用adduser
或useradd
命令,因为adduser命令是指向useradd命令的一个软链接,因此,这两个命令的使用格式完全一样。
命令:useradd [参数] 用户名
参数 | 描述 |
---|---|
-d | 指定用户的主目录(家目录) 如果不使用该参数,系统自动在/home 目录下建立与用户名同名的目录作为主目录。 |
-g | 指定用户所属的组名 如果省略该参数,系统自动创建一个和用户名一样的组。 |
-m | 自动建立用户的登入目录 |
【提示】
- 可通过 find -name adduser 命令查找 adduser 命令所在位置,得到/usr/sbin/adduser
然后在/usr/sbin 下执行 ll adduser,发现 adduser 是指向 useradd 命令的一个软链接。- Linux 每个用户都要有一个主目录,主目录就是第一次登录系统时,默认所在的当前目录。每一个用户必须有一个主目录;用户的主目录一般要放到根目录的 home 目录下,用户的主目录默认和用户名相同。
1.3.4 设置用户密码(passwd)
超级管理员修改用户密码 命令:passwd 用户名
管理员或普通用户修改自己的密码 命令:passwd
- 在 Linux 中,超级用户可以使用 passwd 命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面写用户名。
1.3.5 删除用户(userdel)
命令 | 描述 |
---|---|
userdel 用户名 | 删除 abc 用户,但不会自动删除用户的主目录 |
userdel -r 用户名 | 删除用户,同时删除用户的主目录 |
1.3.6 切换用户(su)
可以通过 su
命令切换用户,su 后面可以加“-
”。su
和 su –
的不同之处是 su -切换用户时会把当前工作目录自动切换到用户的家目录。
命令 | 描述 |
---|---|
su root | 切换到 root 用户 |
su - | 切换到 root 用户,同时工作目录切换到 /root |
su - root | 切换到 root 用户,同时工作目录切换到 /root |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时切换到普通用户的主目录 |
测试案例:(exit
退出当前登录或切换到上一个登录)
1.4 用户组
1.4.1 查看用户组列表、查看用户所属组
查看用户组列表 命令:cat /etc/group
查看用户所属组 命令:groups 用户名
提示:查到的每条记录中有 3 个字段,字段 1:用户组名称 字段 2:密码 字段 3:GID。
1.4.2 添加用户组、删除用户组
添加用户组 命令:groupadd 要添加的用户组名
删除用户组 命令:groupdel 要删除的用户组名
【提示】如果用户组里面有用户,必须先删除用户,才能删除组。
二、Linux 权限管理
2.1 普通用户添加 sudo 权限
sudo
是 linux 系统管理指令,是允许普通用户执行一些或者全部的 root 命令的一个工具,sudo 的操作对象是系统命令。比如关机、重启、添加一个其他的普通用户等。这样不仅减少了 root 用户的登录和管理时间,同样也提高了安全性。新创建的用户默认没有 sudo 权限。
1)安装 sudo
安装方法:yum -y install sudo
2)用 root 登录,把普通用户添加到 sudoers 文件里;
编辑命令:vim /etc/sudoers
文件中填写的内容: 用户名 ALL=(ALL) ALL
【提示】
- 由于 sudoers 本身是只读的,修改后要强制保存退出 :
wq!
。- 在没有其它用户登录 Linx 主机时,此时Jack用户就可以执行系统命令
init 6
来重启系统。
2.2 文件/目录权限
权限是 Linux 中的重要概念,每个文件/目录都具有权限,通过 ll
命令我们可以查看某个目录下的文件或目录的权限。
简写 | 描述 |
---|---|
r | 代表可读取(read),对于一个目录,如果没有 r 权限,就不能通过 ls 查看这个目录的内容。 |
w | 表示可写入(write),对于一个目录,如果没有 w 权限,就不能在目录下创建新文件。 |
x | 表示可执行(execute),如果一个目录没有 x 权限,就不能通过 cd 进入这个目录。 |
- | 表示相应的操作权限没有被授予。 |
2.2.1 修改文件/目录的权限 chmod
chmod
修改文件权限有两种使用格式:字母法
与数字法
。
字母法:chmod u/g/o +/-/= rwx 文件
u/g/o/a 参数 | 含义 |
---|---|
u | user 表示该文件的所有者 |
g | group 表示与文件的所有者在同一组(group)的用户,即用户组 |
o | other 表示其他的用户 |
a | 表示以上三者皆是 |
+/-/= 参数 | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
案例:
1)设定 /home/jack/b.txt 文件的权限(属主权限:rwx,同组权限:rw,其它用户权限:r):
chmod u=rwx,g=rw,o=r /home/jack/b.txt
2)给同一用户组的用户撤销对 /home/jack 下 b.txt 文件写的权限:
chmod g-w /home/jack/b.txt
3)给文件所有者添加可执行权限(字母法):
chmod u+x b.txt
数字法:
如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename 或等同于:chmod 754 finename
【注意】
- 如果想递归所有目录都加上相同权限,需要加上参数“
-R
”。 如:chmod -R 777 test,表示递归 test 目录下所有文件都加 777 权限。否则只有指定的文件有相应的权限(目录和文件夹的权限是独立的!!)。
2.2.2 修改文件的所有者
命令:chown 所有者 文件
三、Linux 系统管理
3.1 常见命令
命令 | 描述 |
---|---|
netstat -tnlp | 查看正在运行的端口号和进程号 |
netstat -anp | grep 端口号 | 查看端口号是否被占用 |
`` | |
`` | |
`` |
3.2 关机重启
命令 | 描述 |
---|---|
reboot | 强制重启操作系统 |
shutdown -h now | 立刻关机,其中 now 相当于时间为 0 的状态 |
shutdown -h 20:25 | 系统在今天的 20:25 会关机 |
shutdown -h +10 | 系统再过十分钟后自动关机 |
init 0 或 halt | 关机 |
init 6 | 正常重启系统(一般用 init 6) |
3.3 防火墙
- 【查看防火墙状态】命令:
firewall-cmd --state
- 【开启防火墙】命令:
systemctl start firewalld.service
- 【查看防火墙是否开启成功】命令:
systemctl is-enabled firewalld.service;echo $?
- 【设置防火墙开机自启】命令:
systemctl enable firewalld.service
- 【重启防火墙】(比如开放了端口后)命令:
systemctl restart firewalld.service
或firewall-cmd --reload
- 【开启端口】命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone
:作用域;
--add-port=80/tcp
:添加端口,格式为:端口/通讯协议;
--permanent
:永久生效,没有此参数重启后失效; - 【查看开启的端口列表】命令:
firewall-cmd --list-ports
- 【关闭防火墙】命令:
停止防火墙:systemctl stop firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service
【备注】开启端口后要重启防火墙,才能使端口放行生效。
四、Linux 的软件安装
4.0 常用命令
命令 | 描述 |
---|---|
yum -y install 文件名 | 安装文件;-y 表示一直确认是否安装提示。 |
`` |
4.1 JDK 安装
1) 下载 Linux 版的 jdk,如:jdk-8u181-linux-x64.tar.gz
2) 将下载的 jdk 安装包上传到 linux 的 /root/javaDevEnviron 目录,并在 opt 下创建 modules 目录。(javaDevEnviron 目录是自己自定义创建的,modules 目录也是自己自定义创建的)
3) tar 命令解压 JDK 包,指定解压地址是 /root/javaDevEnviron /modules,在 javaDevEnviron 目录执行 tar -xvf jdk-8u181-linux-x64.tar.gz -C modules
(当前路径为/root/javaDevEnv)。
4) 配置环境变量,打开 /etc/profile 文件,将下面的配置拷贝进去(JAVA_HOME
是 jdk 安装的根路径,不能写错了)。先编辑文件vim /etc/profile
,然后按 :wq!
强制保存退出。
5) 输入命令 source /etc/profile
使配置生效,最后用 java -version
命令验证 JDK 是否安装成功。
【注意】
- 这里安装的jdk版本,要跟本地上的jdk版本一致。(jdk8编译的项目可能在别的jdk的版本上运行出现问题)。
4.2 Tomcat 安装
4.2.1 上传安装
1) 上传 Tomcat 安装包到 linux 的 /root/javaDevEnv 目录;
2) 解压 Tomcat 到 /root/javaDevEnv/modules 下,在 /javaDevEnv 目录执行
tar -xvf apache-tomcat-8.5.14.tar.gz -C modules
;
3) Linux 对外开放端口 8080(如已开放可忽略)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
(防火墙放行端口)
firewall-cmd --reload
(重启防火墙)
4) 启动关闭 Tomcat。启动 tomcat : 进入 tomcat 的 bin 下执行 ./startup.sh
。
输入 http://虚拟机 ip:8080/
,即可访问到 tomcat 主页。
4.2.2 在线安装
# 执行命令在线安装 tomcat到当前目录
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz