Linux-别名、用户管理、权限管理、进程管理、软件管理、磁盘管理
目录章节
1别名
2.用户管理
3.权限管理
提示:程序运行起来的时候就是进程,grep运行的时候也是个进程,过滤出想要的进程后会排除掉grep进程
操作步骤:ps -ef |grep -v grep |grep 'xxxx进程号'
1.别名
概述:别名一般给命令设置,适用于给命令设置个昵称,小名。
举例子:ll ==等于ls -l --color=auto
使用场景:①给命令设置个快捷方式,使用起来方便,②举例子给危险命令rm 设置保护措施。
1.2创建别名
临时生效:断开终端会失效
①查看别名 这是系统自带的别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
②输出提示信息
[root@localhost ~]# echo xxx command is not found
xxx command is not found
③设置别名
格式:alias 昵称=‘命令’
确定想要删除文件分为两个步骤 临时:
①使用命令的绝对路径/bin/rm
②使用撬棍 \(这个是键盘上的反斜线 键盘上的回车键) 取消别名
创建别名永久生效:需要加入配置文件
①配置文件有两个 ~ /.bashrc 或 /etc/profile
第一步编辑配置文件vim ~/.bashrc
第二步编辑配置文件/etc/profile
第三步使用source /etc/profile 让配置文件生效
②取消别名的命令unalias
2.用户管理
核心内容:
2.1 Linux概述与分类 GID,UID
(1)概述:Linux系统有多种不同的用户。大部分操作使用的是root来实现,进行系统管理的时候root权限最大,使用普通用户进行操作提升安全,Linux是多系统用户。
(2)UID ,GID
①UID user id 身份证号码
②GID group id 类似户口本号码
③用户分类
用户分类 | uid | |
root | uid为0 | |
普通用户 | uid ≥1000,无法进行系统更改权限小,只有在家目下有权限 | |
虚拟用户 | uid <1000,傀儡用户,用户服务,进程运行使用的用户,不能直接使用 |
2.2 Linux用户相关文件/etc/passwd的含义
用户的文件 | 含义 | |
/etc/passwd | 存放用户的基本信息 | |
/etc/shadow | 存放密码的基本信息 | |
/etc/gshadow | 存放用户组密码的基本信息 | |
/etc/group | 存放用户组的基本信息 |
①/etc/passwd每一列的含义
2.3Linux用户的增删改查命令
(1)增加
useradd增加用户
useradd | 含义 | |
-u | 指定用户的uid | |
-s | 指定命令解释器 默认的情况下是/bin/bash | |
-M | 不创建家目录 |
修改密码:passwd命令
passwd命令选项参数 | 含义 | |
--stdin | 非交互式修改密码 |
①创建用户
[root@localhost ~]# useradd zhx
②过滤用户
[root@localhost ~]# grep 'zhx' /etc/passwd
zhx:x:1002:1002::/home/zhx:/bin/bash
③过滤/bin/bash
[root@localhost ~]# grep '/bin/bash' /etc/passwd
root:x:0:0:root:/root:/bin/bash
fwkyx:x:989:998::/home/fwkyx:/bin/bash
admin:x:1001:1001::/home/admin:/bin/bash
zhx:x:1002:1002::/home/zhx:/bin/bash
④举例子:
创建个用户xxxx 指定uid xxx 指定命令解释器 /sbin/nologin 不创建家目录
[root@localhost ~]#useradd xxx -u xxx -s /sbin/nologin -M xxx(用户)
⑤查看某一个用户信息
[root@localhost ~]# id xxx(用户)
⑥passwd 修改密码
第一种是交互式的修改密码方式:
[root@localhost ~]#passwd xxxx(如果不加用户,passwd是修改当前的用户密码)
第二种非交互的修改密码,批量修改密码:
[root@localhost ~]# echo xxx|passwd --stdin xxx(用户)
⑦设置完密码想要切换到用户
第一步是用远程工具xshell登录
第二步是切换的方法登录到用户
[root@localhost ~]# su - xxx(所要切换的用户)
退出当前用户ctrl +d 或者logout
[root@localhost ~]# ctrl +d
重点提示:切换用户su - 和su 的区别
su命令中的-,是su的选项参数: -, -l, --login
切换用户的时,更新用户的配置与环境变量
(2)查看用户信息
id 查看用户的uid,gid,用户组的信息,检查用户是否存在
whoami 查看当前用户名字
w 能查看当前用户登录的信息
last 用户的登录情况
lastlog 查看所有用户最近1次登录情况
w——>uptime——>who
[root@localhost ~]# whoami
root
[root@localhost ~]# id zhx
uid=1002(zhx) gid=1002(zhx) 组=1002(zhx)
[root@localhost ~]# w
10:54:13 up 45 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 10:11 5.00s 0.09s 0.02s w
[root@localhost ~]# last
root pts/0 10.0.0.1 Thu Sep 7 10:11 still logged in
reboot system boot 3.10.0-1127.el7. Thu Sep 7 10:09 - 10:58 (00:49)
root pts/0 10.0.0.1 Wed Sep 6 10:27 - down (04:55)
reboot system boot 3.10.0-1127.el7. Wed Sep 6 10:26 - 15:22 (04:56)
root pts/0 10.0.0.1 Tue Sep 5 11:13 - 16:42 (05:28)
reboot system boot 3.10.0-1127.el7. Tue Sep 5 11:13 - 16:43 (05:29)
root pts/0 10.0.0.1 Fri Sep 1 08:04 - 17:44 (09:40)
root pts/0 10.0.0.1 Thu Aug 31 10:13 - 19:38 (09:24)
root pts/0 10.0.0.1 Wed Aug 30 06:47 - 18:10 (11:22)
root pts/0 10.0.0.1 Tue Aug 29 18:39 - 03:31 (08:51)
reboot system boot 3.10.0-1127.el7. Tue Aug 29 10:53 - 16:43 (7+05:50)
root pts/0 10.0.0.1 Tue Aug 29 07:53 - crash (02:59)
reboot system boot 3.10.0-1127.el7. Tue Aug 29 07:39 - 16:43 (7+09:03)
reboot system boot 3.10.0-1127.el7. Sun Aug 27 17:22 - 17:44 (00:21)
root pts/0 10.0.0.1 Sun Aug 27 08:05 - crash (09:16)
reboot system boot 3.10.0-1127.el7. Sun Aug 27 08:03 - 17:44 (09:41)
root pts/0 10.0.0.1 Sat Aug 26 07:47 - crash (1+00:15)
reboot system boot 3.10.0-1127.el7. Sat Aug 26 07:46 - 17:44 (1+09:57)
root pts/0 10.0.0.1 Thu Aug 24 19:13 - 21:17 (02:03)
root pts/0 10.0.0.1 Thu Aug 24 06:56 - 11:10 (04:14)
reboot system boot 3.10.0-1127.el7. Thu Aug 24 06:54 - 17:44 (3+10:49)
root pts/0 10.0.0.1 Wed Aug 23 09:44 - crash (21:10)
reboot system boot 3.10.0-1127.el7. Wed Aug 23 09:24 - 17:44 (4+08:19)
root pts/1 10.0.0.1 Mon Aug 21 07:19 - down (10:41)
root pts/0 10.0.0.1 Sun Aug 20 15:11 - 11:30 (20:18)
root pts/1 10.0.0.1 Sun Aug 20 13:12 - 14:12 (00:59)
root pts/0 10.0.0.1 Sun Aug 20 12:59 - 15:11 (02:11)
root pts/0 10.0.0.1 Sun Aug 20 12:03 - 12:58 (00:54)
root pts/1 10.0.0.1 Sun Aug 20 11:44 - 12:58 (01:13)
root pts/1 10.0.0.1 Sun Aug 20 11:43 - 11:44 (00:00)
root pts/0 10.0.0.1 Sun Aug 20 11:38 - 12:03 (00:25)
root pts/0 10.0.0.1 Sun Aug 20 11:38 - 11:38 (00:00)
root pts/1 10.0.0.1 Sun Aug 20 11:37 - 11:38 (00:00)
root pts/0 10.0.0.1 Sun Aug 20 11:37 - 11:38 (00:00)
root pts/0 10.0.0.1 Sun Aug 20 09:03 - 11:37 (02:34)
reboot system boot 3.10.0-1127.el7. Sun Aug 20 09:02 - 18:00 (1+08:58)
root pts/0 10.0.0.1 Sat Aug 19 14:33 - crash (18:28)
reboot system boot 3.10.0-1127.el7. Sat Aug 19 14:32 - 18:00 (2+03:27)
root pts/0 10.0.0.1 Fri Aug 18 07:27 - 19:52 (12:25)
reboot system boot 3.10.0-1127.el7. Fri Aug 18 07:26 - 20:20 (12:54)
root pts/0 10.0.0.1 Thu Aug 17 18:52 - 20:27 (01:35)
root pts/0 10.0.0.1 Thu Aug 17 18:51 - 18:51 (00:00)
root pts/0 10.0.0.1 Thu Aug 17 18:51 - 18:51 (00:00)
root pts/0 10.0.0.1 Thu Aug 17 18:47 - 18:51 (00:04)
root pts/0 10.0.0.1 Thu Aug 17 18:46 - 18:47 (00:00)
root pts/0 10.0.0.1 Thu Aug 17 14:55 - 18:46 (03:51)
root pts/0 10.0.0.1 Thu Aug 17 14:53 - 14:54 (00:01)
reboot system boot 3.10.0-1127.el7. Thu Aug 17 14:53 - 20:20 (1+05:27)
root pts/0 10.0.0.1 Wed Aug 16 20:06 - crash (18:46)
reboot system boot 3.10.0-1127.el7. Wed Aug 16 20:05 - 20:20 (2+00:15)
root pts/0 10.0.0.1 Wed Aug 16 09:13 - crash (10:52)
reboot system boot 3.10.0-1127.el7. Wed Aug 16 09:08 - 20:20 (2+11:12)
root pts/0 10.0.0.1 Tue Aug 15 09:44 - crash (23:23)
reboot system boot 3.10.0-1127.el7. Tue Aug 15 09:19 - 20:20 (3+11:01)
root pts/0 10.0.0.1 Sun Aug 13 16:58 - 18:10 (01:12)
root pts/0 10.0.0.1 Sun Aug 13 16:05 - 16:57 (00:52)
root pts/0 10.0.0.1 Sun Aug 13 13:46 - 16:05 (02:19)
reboot system boot 3.10.0-1127.el7. Sun Aug 13 13:45 - 20:20 (5+06:35)
root pts/0 10.0.0.1 Tue Aug 1 14:27 - 18:42 (04:15)
root pts/0 10.0.0.1 Tue Aug 1 14:25 - 14:25 (00:00)
root pts/0 10.0.0.1 Tue Aug 1 11:01 - 14:25 (03:24)
root pts/0 10.0.0.1 Tue Aug 1 10:52 - 11:00 (00:08)
reboot system boot 3.10.0-1127.el7. Tue Aug 1 10:50 - 18:43 (07:52)
root pts/0 10.0.0.1 Mon Jul 31 10:17 - crash (1+00:33)
root pts/0 10.0.0.1 Mon Jul 31 10:17 - 10:17 (00:00)
reboot system boot 3.10.0-1127.el7. Mon Jul 31 10:16 - 18:43 (1+08:27)
root pts/0 10.0.0.1 Sun Jul 30 16:24 - 17:20 (00:56)
reboot system boot 3.10.0-1127.el7. Sun Jul 30 16:23 - 17:22 (00:58)
root pts/0 10.0.0.1 Mon Jul 24 09:32 - crash (6+06:51)
reboot system boot 3.10.0-1127.el7. Mon Jul 24 09:31 - 17:22 (6+07:50)
root pts/1 10.0.0.1 Sat Jul 22 22:00 - 22:05 (00:05)
root pts/0 10.0.0.1 Sat Jul 22 19:56 - crash (1+13:35)
root pts/0 10.0.0.1 Sat Jul 22 16:43 - 19:56 (03:12)
root pts/0 10.0.0.1 Sat Jul 22 14:45 - 16:43 (01:57)
reboot system boot 3.10.0-1127.el7. Sat Jul 22 14:44 - 17:22 (8+02:38)
root pts/0 10.0.0.1 Fri Jul 21 19:38 - crash (19:05)
reboot system boot 3.10.0-1127.el7. Fri Jul 21 19:37 - 17:22 (8+21:44)
root pts/0 10.0.0.1 Thu Jul 20 17:39 - crash (1+01:58)
root pts/1 10.0.0.1 Mon Jul 3 10:24 - 18:26 (08:01)
root pts/0 10.0.0.1 Sun Jul 2 18:20 - 12:35 (18:15)
reboot system boot 3.10.0-1127.el7. Sun Jul 2 17:48 - 17:22 (27+23:33)
root pts/0 10.0.0.1 Thu Jun 29 14:27 - 19:07 (04:39)
reboot system boot 3.10.0-1127.el7. Thu Jun 29 14:27 - 17:56 (1+03:29)
root pts/0 10.0.0.1 Wed Jun 28 15:39 - crash (22:48)
root pts/0 10.0.0.1 Wed Jun 28 13:32 - 15:34 (02:01)
root pts/0 10.0.0.1 Wed Jun 28 13:22 - 13:23 (00:00)
root pts/0 10.0.0.1 Wed Jun 28 13:18 - 13:21 (00:02)
root tty1 Wed Jun 28 11:19 - crash (1+03:08)
reboot system boot 3.10.0-1127.el7. Wed Jun 28 11:15 - 17:56 (2+06:41)
root tty1 Wed Jun 28 09:50 - 11:13 (01:22)
reboot system boot 3.10.0-1127.el7. Wed Jun 28 09:45 - 11:13 (01:27)
reboot system boot 3.10.0-1127.el7. Wed Jun 28 09:35 - 11:13 (01:37)
root tty1 Mon Jun 26 17:10 - crash (1+16:25)
reboot system boot 3.10.0-1127.el7. Mon Jun 26 17:09 - 11:13 (1+18:03)
wtmp begins Mon Jun 26 17:09:43 2023
[root@localhost ~]# lastlog
用户名 端口 来自 最后登陆时间
root pts/0 10.0.0.1 四 9月 7 10:11:22 +0800 2023
bin **从未登录过**
daemon **从未登录过**
adm **从未登录过**
lp **从未登录过**
sync **从未登录过**
shutdown **从未登录过**
halt **从未登录过**
mail **从未登录过**
operator **从未登录过**
games **从未登录过**
ftp **从未登录过**
nobody **从未登录过**
systemd-network **从未登录过**
dbus **从未登录过**
polkitd **从未登录过**
tss **从未登录过**
abrt **从未登录过**
sshd **从未登录过**
postfix **从未登录过**
fwkyx **从未登录过**
admin **从未登录过**
ntp **从未登录过**
zhx **从未登录过**
(3)修改
usermod修改用户的信息
①想要修改某个用户的指定解释器
[root@localhost ~]# usermod -s 指定解释器/sbin/nologin xxxx(用户)
(4)删除
userdel删除用户命令选项参数 | 含义 | |
-r | 删除用户及家目录 | |
默认是不会删除用户家目录,邮箱 |
重点提示:尽量不要删除用户,用注释的方法注释掉这个用户信息/etc/passwd
查看当前用户的命令whoami
[root@localhost ~]# whoami
root
删除某个用户
[root@localhost ~]#userdel xxx(用户)
[root@localhost ~]#grep 'xxx' /etc/psswd
想要删除用户,包含家目录
[root@localhost ~]# userdel xxx(用户)
[root@localhost ~]# ll -a /xxx/xxxx (查看某个用户的家目录)
[root@localhost ~]# grep 'xxx' /etc/passwd
(5)用户组命令
创建用户组 groupadd
指定用户的uid和gid可以使用groupadd
创建用户组 groupadd -g 1212 xxx(用户)
创建用户指定的uid与用户组 useradd -u 1212 -g xxx(用户组名字) -s /sbin/nologin -M xxx(用户)
(6)出现的问题
==举例子:命令行出现-bash-4.2
=
=
‘
命令行:
−
b
a
s
h
−
4.2
== `命令行:-bash-4.2
==‘命令行:−bash−4.2
用户的家目录没有了,用户的家目录下面的配置文件没有了 ~/.bashrc ~/.bash_profile `
处理问题
通过/etc/skel/.bask* 复制得到处理
/etc/skel 目录所有新用户的家目录的模板
第一种方法:
cp /etc/skel/.bashrc * ~
重新登录即可.........
2.4 Linux的sudo权限管理
(1)概述
Linux系统运维人员排查某些日志,是如何创建用户与授予权限?
root 的权限,太大
普通用户的权限太小,
第一种是使用普通用户+sudo权限去实现达到的目的
授予普通用户以root方式运行查看,less\more\tail\grep\cat
(2)进行sudo授予权限分为两个部分
①root权限配置
②普通用户的如何使用
(3)举例子:授予xxx用户,以root权限运行less,cat,more,tail ,head,grep的权限
root用户授权
visudo == vim /etc/sudoers
[root@localhost ~]# visudo
100行后面:vim命令100gg到
[root@localhost ~]# echo 1 |passwd --stdin zhx
更改用户 zhx 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - zhx
上一次登录:四 9月 7 11:56:56 CST 2023pts/0 上
[zhx@localhost ~]$ whoami
zhx
[zhx@localhost ~]$ less /var/log/secure
/var/log/secure: 权限不够
[zhx@localhost ~]$ sudo less /var/log/secure
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] zhx 的密码:
root授权
100行后面:vim命令100gg到
查看当前用户sudo的权限命令:sudo -l 看最后两行就可以
[zhx@localhost ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset,
env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用户 zhx 可以在 localhost 上运行以下命令:
(ALL) /bin/cat, /bin/grep, /bin/less, /bin/more
授予所有权限,不需要输入密码
举例子:
在100行之后输入以下内容:
zhxx ALL=(ALL) NOPASSWD: ALL
3.权限管理
3.1Linux的12位权限管理
权限与用户的关系
①首先要确定当前的用户
②确定用户和文件属于哪种关系(所有者,用户组,其它)
③根据哪种关系确定对应的所属权限
3.1.1权限管理概述
概述:在Linux系统中通过rwx3种权限控制系统和保护系统,所组成的是9位权限位,其中Linux中还有3位特殊权限,组合起来是12位权限位,Linux的rwx控制系统的整个安全。
1.Linux权限概述
2.Linux权限的计算和设置
如何让计算权限
权限 | 含义 | 权限对应的数字 |
r | read 是否可读权限 | 4 |
w | write 是否可以读写权限 | 2 |
x | execute 是否可以执行的权限(命令或者脚本) | 1 |
-(减号)没有权限 | 0 |
举例子:
-rw-r--r--. 1 root root 0 8月 29 19:59 zhui.txt
420400400 zhui.txt 的权限是644
6 4 4
3.Linux权限的文件或目录
权限 | 文件 | 目录 |
r | 是否可以读取文件内容 | 查看目录内容,需要x的权限配合使用 |
w | 是否可以修改文件内容 | 是否可以在目录中创建、修改等等...的文件权限 |
x | 是否可以执行文件(命令或者脚本),还需要r权限配合 | 是否能进入到目录,是否能访问文件的属性 |
文件权限
chown命令修改所有者
chmod命令修改权限,通过数字修改例如:chmod 644 /zhx/zhx.sh ,通过字符修改
u user所有者
g group 用户组
o orther 其它
给某个加上执行权限:chmod ugo+x xxx.sh ,chmod u+x,g+x,o+x xxx.sh ,chmod +x xxx.sh
chown命令的参数-R 递归修改所有者,慎用!!!!
准备两台环境进行验证
修改所有者:
[root@localhost ~]# whoami
root
[root@localhost ~]# mkdir -p /zhx/
[root@localhost ~]# echo 'hostname' > /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
-rw-r--r--. 1 root root 9 9月 11 09:34 /zhx/zhx.sh
[root@localhost ~]# chown zhx.zhx /zhx/zhx.sh #chown 修改文件的所有者
[root@localhost ~]# ll /zhx/zhx.sh
-rw-r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
修改权限:chmod命令
举例子:
[root@localhost ~]# chmod 744 /zhx/zhx.sh # 数字进行授权权限
[root@localhost ~]# ll /zhx/zhx.sh
-rwxr--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
[root@localhost ~]# chmod u-x /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
-rw-r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
[root@localhost ~]# chmod u=x /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
---xr--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
文件的r权限
root 下修改
[root@localhost ~]# chmod u=r /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
-r--r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
zhx用户下查看
[zhx@localhost ~]$ ll /zhx/zhx.sh
-r--r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
[zhx@localhost ~]$ cat /zhx/zhx.sh
hostname
[zhx@localhost ~]$ echo 'll -l' >> /zhx/zhx.sh #没有w权限
-bash: /zhx/zhx.sh: 权限不够
[zhx@localhost ~]$ cd /zhx/
[zhx@localhost zhx]$ ./zhx.sh # 没有x的权限
-bash: ./zhx.sh: 权限不够
文件的w权限
w的权限需要有r的权限配合使用
root用户下:
[root@localhost ~]# chmod u=w /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
--w-r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
[root@localhost ~]# cat /zhx/zhx.sh
hostname
sed
sed
sed
sed
[root@localhost ~]# echo 'awk' >> /zhx/zhx.sh
[root@localhost ~]# cat /zhx/zhx.sh
hostname
sed
sed
sed
sed
awk
zhx用户下:
[zhx@localhost zhx]$ ll /zhx/zhx.sh
--w-r--r--. 1 zhx zhx 9 9月 11 09:34 /zhx/zhx.sh
[zhx@localhost zhx]$ cat /zhx/zhx.sh
cat: /zhx/zhx.sh: 权限不够
[zhx@localhost zhx]$ echo 'sed' >> zhx.
zhx.sh zhx.txt zhx.txt.gai zhx.txt.hard zhx.txt.soft
[zhx@localhost zhx]$ echo 'sed' >> zhx.
zhx.sh zhx.txt zhx.txt.gai zhx.txt.hard zhx.txt.soft
[zhx@localhost zhx]$ echo 'sed' >> zhx.sh
[zhx@localhost zhx]$ echo 'sed' >> zhx.sh
[zhx@localhost zhx]$ echo 'sed' >> zhx.sh
[zhx@localhost zhx]$ echo 'sed' >> zhx.sh
文件的x权限
x的权限和r权限需要配合
root用户下进行操作:
[root@localhost ~]# ll /zhx/zhx.sh
-rw-r--r--. 1 zhx zhx 29 9月 11 10:24 /zhx/zhx.sh
[root@localhost ~]# chmod u=x /zhx/zhx.sh
[root@localhost ~]# ll /zhx/zhx.sh
---xr--r--. 1 zhx zhx 29 9月 11 10:24 /zhx/zhx.sh
zhx用户下进行操作:
[zhx@localhost zhx]$ ll zhx.sh
---xr--r--. 1 zhx zhx 29 9月 11 10:24 zhx.sh
[zhx@localhost zhx]$ ./zhx.sh
bash: ./zhx.sh: 权限不够
[zhx@localhost zhx]$ cat zhx.sh
cat: zhx.sh: 权限不够
[zhx@localhost zhx]$ echo cd >>zhx.sh
-bash: zhx.sh: 权限不够
目录权限
删除或创建文件时,需要看文件所在目录的权限
用户对目录是否有rwx的权限
删除文件看所在目录的权限
目录默认是755的权限
环境准备
[root@localhost ~]# mkdir -p /zhx/zhx-dir/
[root@localhost ~]# touch /zhx/zhx-dir/zhx-{01..10}.txt
[root@localhost ~]# ll /zhx/
总用量 0
drwxr-xr-x. 2 root root 186 9月 11 10:44 zhx-dir
[root@localhost ~]# ll /zhx/zhx-dir/
总用量 0
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-01.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-02.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-03.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-04.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-05.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-06.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-07.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-08.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-09.txt
-rw-r--r--. 1 root root 0 9月 11 10:44 zhx-10.txt
[root@localhost ~]# chown -R zhx.zhx /zhx/zhx-dir/ #chown命令选项参数-R是递归修改所有者 慎用!!!
[root@localhost ~]# ll -d /zhx/zhx-dir/ # 看目录本身的参数是-d
drwxr-xr-x. 2 zhx zhx 186 9月 11 10:44 /zhx/zhx-dir/
[root@localhost ~]# ll /zhx/zhx-dir/
总用量 0
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-01.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-02.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-03.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-04.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-05.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-06.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-07.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-08.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-09.txt
-rw-r--r--. 1 zhx zhx 0 9月 11 10:44 zhx-10.txt
目录的r权限
``
root用户修改目录权限:
[root@localhost zhx]# chmod u=r zhx-dir/
zhx用户下查看目录权限:
[zhx@localhost zhx]$ ll -d /zhx/zhx-dir/
dr--r-xr-x. 2 zhx zhx 186 9月 11 10:44 /zhx/zhx-dir/
[zhx@localhost zhx]$ ll zhx-dir/
ls: 无法访问zhx-dir/zhx-01.txt: 权限不够
ls: 无法访问zhx-dir/zhx-02.txt: 权限不够
ls: 无法访问zhx-dir/zhx-03.txt: 权限不够
ls: 无法访问zhx-dir/zhx-04.txt: 权限不够
ls: 无法访问zhx-dir/zhx-05.txt: 权限不够
ls: 无法访问zhx-dir/zhx-06.txt: 权限不够
ls: 无法访问zhx-dir/zhx-07.txt: 权限不够
ls: 无法访问zhx-dir/zhx-08.txt: 权限不够
ls: 无法访问zhx-dir/zhx-09.txt: 权限不够
ls: 无法访问zhx-dir/zhx-10.txt: 权限不够
总用量 0
-????????? ? ? ? ? ? zhx-01.txt
-????????? ? ? ? ? ? zhx-02.txt
-????????? ? ? ? ? ? zhx-03.txt
-????????? ? ? ? ? ? zhx-04.txt
-????????? ? ? ? ? ? zhx-05.txt
-????????? ? ? ? ? ? zhx-06.txt
-????????? ? ? ? ? ? zhx-07.txt
-????????? ? ? ? ? ? zhx-08.txt
-????????? ? ? ? ? ? zhx-09.txt
-????????? ? ? ? ? ? zhx-10.txt
目录的w权限
第一种没有w的权限:zhx用户下可以查看目录下面的内容
root用户下操作:
[root@localhost zhx]# chmod u=rx zhx-dir/
[root@localhost zhx]# ll -d zhx-dir/
dr-xr-xr-x. 2 zhx zhx 186 9月 11 10:44 zhx-dir/
zhx用户下操作:
[zhx@localhost zhx]$ ll -d zhx-dir/
dr-xr-xr-x. 2 zhx zhx 186 9月 11 10:44 zhx-dir/
[zhx@localhost zhx]$ ls zhx-dir/
zhx-01.txt zhx-03.txt zhx-05.txt zhx-07.txt zhx-09.txt
zhx-02.txt zhx-04.txt zhx-06.txt zhx-08.txt zhx-10.txt
[zhx@localhost zhx]$ rm -rf zhx-dir/* #删除目录下面的内容也是删除不了的
rm: 无法删除"zhx-dir/zhx-01.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-02.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-03.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-04.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-05.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-06.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-07.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-08.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-09.txt": 权限不够
rm: 无法删除"zhx-dir/zhx-10.txt": 权限不够
有w的权限:
root用户下面操作:
[root@localhost zhx]# chmod u=rwx zhx-dir/
[root@localhost zhx]# ll -d zhx-dir/
drwxr-xr-x. 2 zhx zhx 186 9月 11 10:44 zhx-dir/
zhx用户下操作:
[zhx@localhost zhx]$ ll -d zhx-dir/
drwxr-xr-x. 2 zhx zhx 186 9月 11 10:44 zhx-dir/
[zhx@localhost zhx]$ ls zhx-dir/
zhx-01.txt zhx-03.txt zhx-05.txt zhx-07.txt zhx-09.txt
zhx-02.txt zhx-04.txt zhx-06.txt zhx-08.txt zhx-10.txt
[zhx@localhost zhx]$ touch zhx-dir/zhxxx.txt
[zhx@localhost zhx]$ ls zhx-dir/
zhx-01.txt zhx-03.txt zhx-05.txt zhx-07.txt zhx-09.txt zhxxx.txt
zhx-02.txt zhx-04.txt zhx-06.txt zhx-08.txt zhx-10.txt
[zhx@localhost zhx]$ rm -f zhx-dir/*
[zhx@localhost zhx]$ ls zhx-dir/
Permission denied权限拒绝的原因
用户和文件或目录的关系,你对于这个文件或目录有什么样的权限
缺少了什么的权限导致的?查明原因是文件的权限还是目录的权限
在zhx用户下操作
[zhx@localhost zhx]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[zhx@localhost zhx]$ echo '#pwd' >>/etc/passwd
-bash: /etc/passwd: 权限不够
4.Linux系统默认的权限
Linux系统中是通过umask来实现的
为什么是644或755?通过Linux系统的内置命令umask掌控文件或目录的默认权限
文件:666
目录:777
通过最大权限减去umask的值,得到文件或目录的默认值
文件umask某一位是奇数位,则减去umask后一位+1
临时修改umask在命令行修改:[root@localhost zhx]# umask xxx
永久修改:编辑vim /etc/profile 通过搜索umask
在这里插入图片描述
[root@localhost zhx]# umask
0022 # 前面的0代表是特殊权限 看后面三位就可以
文件的默认权限
666
-022
-------------
644
目录的默认权限
777
-022
------------
755
系统安全:Linux系统权限
①通过权限让系统更安全
②对于网站,服务器权限:
③最小化;网站能正常访问,也要保证网站安全
④网站的权限:文件类 644 600 root root 目录 755 700 root root
⑤当网站运行时需要用户,用户不能使用root,自己或者自动创建自己虚拟用户 举例子:/xxx/nginx
⑥网站运行的时候是xxx用户,运行的程序代码是/app/code/xxx 目录
/app/code/xxx 目录
第一种:
文件和目录的所有者:root root
文件和目录权限 644 755
文件和目录的所有者,xxx xxx ,当不能修改,则用户无法上传文件到
5.Linux的特殊权限`
①特殊权限set uid==suid 4: 运行这个命令的时候等同于这个命令的所有者的权限:passwd命令
②特殊权限sticky(粘滞位) 1:对于sticky权限的目录,用户都可以在目录下面创建内容,每个用户只能管理自己的文件
③特殊权限set gid===sgid 2:运行这个命令的时候等同于这个命令的用户组的权限
设置:
chmod u+s /bin/rm
chmod o+t /tmp
举例子:/bin/rm 原始权限是755 增加setuid
chmod 4755 /bin/rm
chmod 1777 /tmp
[root@localhost ~]# stat /bin/passwd /tmp
文件:"/bin/passwd"
大小:27856 块:56 IO 块:4096 普通文件
设备:fd00h/64768d Inode:51195687 硬链接:1
权限:(4755/-rwsr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:passwd_exec_t:s0
最近访问:2023-09-10 14:43:41.985110151 +0800
最近更改:2020-04-01 11:57:19.000000000 +0800
最近改动:2023-06-26 16:28:04.534968557 +0800
创建时间:-
文件:"/tmp"
大小:4096 块:8 IO 块:4096 目录
设备:fd00h/64768d Inode:16777288 硬链接:13
权限:(1777/drwxrwxrwt) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:tmp_t:s0
最近访问:2023-09-11 06:48:37.241000215 +0800
最近更改:2023-09-11 17:54:34.759584509 +0800
最近改动:2023-09-11 17:54:34.759584509 +0800
创建时间:-
6.Linux的特殊属性
重点:防止文件或命令被修改
lsattr 查看特殊属性
chattr 修改特殊属性
a属性 append 追加
i属性 immutable 不巧的,无法被毁灭的
[root@localhost zhx-dir]# lsattr zhx.txt
---------------- zhx.txt
[root@localhost zhx-dir]# chattr +a zhx.txt
[root@localhost zhx-dir]# lsattr zhx.txt
-----a---------- zhx.txt
[root@localhost zhx-dir]# echo zxhhhx>> zhx.txt
[root@localhost zhx-dir]# echo zxhhhx>> zhx.txt
[root@localhost zhx-dir]# echo zxhhhx>> zhx.txt
[root@localhost zhx-dir]# echo zxhhhx>> zhx.txt
[root@localhost zhx-dir]# echo "" >zhx.txt
-bash: zhx.txt: 不允许的操作
[root@localhost zhx-dir]# vim zhx.txt
zxhhhx
zxhhhx
zxhhhx
zxhhhx
zxhhhx
zxhhhx
zxhhhx
zxhhhx
~
~
~
~
~
~
~
~
~
"zhx.txt"
"zhx.txt" E212: 无法打开并写入文件
"zhx.txt"
"zhx.txt" E212: 无法打开并写入文件
[root@localhost zhx-dir]# rm -rf zhx.txt
rm: 无法删除"zhx.txt": 不允许的操作
[root@localhost zhx-dir]# cat zhx.txt
zxhhhx
zxhhhx
zxhhhx
zxhhhx
添加完啊 取消小a
[root@localhost zhx-dir]# chattr -a zhx.txt
[root@localhost zhx-dir]# lsattr zhx.tx
lsattr: 没有那个文件或目录 当尝试对zhx.tx进行stat调用时
[root@localhost zhx-dir]# lsattr zhx.txt
---------------- zhx.txt
添加小i 用完需要-i
[root@localhost zhx-dir]# lsattr zhx.txt
---------------- zhx.txt
[root@localhost zhx-dir]# chattr +i zhx.txt
[root@localhost zhx-dir]# lsattr zhx.txt
----i----------- zhx.txt
[root@localhost zhx-dir]# echo zxhhhx>> zhx.txt
-bash: zhx.txt: 权限不够
[root@localhost zhx-dir]# rm -rf zhx.txt
rm: 无法删除"zhx.txt": 不允许的操作