第三关题,linux权限 |
作者:左婷婷 归档:学习笔记 2018/7/31
|
快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 Ctrl + 4 实例 Ctrl + 5 程序代码 Ctrl + 6 正文 |
格式说明: 蓝色字体:注释 ×××背景:重要 绿色背景:注意 |
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群: | |
Linux 385168604 | 架构师 390642196 |
Python 29215534 | 大数据 421358633 |
官方网站: | |
目 录
1.1 取出/etc/sysconfig/network-scripts/ifcfg-eth0 中的ip地址
1.3 打包压缩 /etc/目录 压缩到/tmp,每天创建的压缩包名字要不同
1.4 查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.oldboyedu.com。
1.5 问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
1.6 当从root用户切到普通用户oldboy时,执行ifconfig会提示。command not found
1.10 【用户管理】请给出查看当前哪些用户在线的linux命令。
1.15.3 #chown change owner 修改文件的所有者
1.1 取出/etc/sysconfig/network-scripts/ifcfg-eth0 中的ip地址
[root@oldboyedu50-lnb ~]# awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.200
[root@oldboyedu50-lnb ~]# awk -F= '/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0
10.0.0.200
#'条件{动作}'
#NR==2
#NR>=10
#/oldboy/
1.2 显示 年-月-日_周几
date +%F_%w 显示 年-月-日_周几
[root@oldboyedu50-lnb ~]# date -d '-1day' 将显示时间修改为一天前
Sun Jul 22 16:44:12 CST 2018
[root@oldboyedu50-lnb ~]# date -s "20180521 12:12:12" 修改时间
Mon May 21 12:12:12 CST 2018
#自动同步时间
[root@oldboyedu50-lnb ~]# date 显示当前时间
Mon May 21 12:13:23 CST 2018
[root@oldboyedu50-lnb ~]# ntpdate ntp1.aliyun.com 自动同步时间
6 Aug 09:01:17 ntpdate[1849]: step time server 120.25.115.20 offset 6641251.972418 sec
[root@oldboyedu50-lnb ~]# date
Mon Aug 6 09:01:41 CST 2018
[root@oldboyedu50-lnb ~]# ntpdate ntp1.aliyun.com
6 Aug 09:01:43 ntpdate[1868]: adjust time server 120.25.115.20 offset -0.000203 sec
ntp1.aliyun.com #时间服务器 校对时间
1.3 打包压缩 /etc/目录 压缩到/tmp,每天创建的压缩包名字要不同
[root@oldboyedu50-lnb ~]# #tar zcf /tmp/etc.tar.gz /etc/ 打包压缩目录
[root@oldboyedu50-lnb ~]# #tar zcf /tmp/etc-2018-06-06.tar.gz /etc/
[root@oldboyedu50-lnb ~]# date +%F
2018-08-06
[root@oldboyedu50-lnb ~]# tar zcf /tmp/etc-$(date +%F).tar.gz /etc/ 打包目录并以不同的名字
tar: Removing leading `/' from member names
[root@oldboyedu50-lnb ~]# ll /tmp/etc-2018-08-06.tar.gz
-rw-r--r-- 1 root root 9734087 Aug 6 09:19 /tmp/etc-2018-08-06.tar.gz
[root@oldboyedu50-lnb ~]# tar tf /tmp/etc-2018-08-06.tar.gz
1.4 查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.oldboyedu.com。
假设你在/oldboy
find /oldboy -type f
#方法1
find /oldboy -type f |xargs sed 's#www.etiantian.org#www.oldboyedu.com#g'
#方法2
sed 's#www.etiantian.org#www.oldboyedu.com#g' `find /oldboy -type f `
sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy -type f )
#方法3
find /oldboy -type f -exec sed 's#www.etiantian.org#www.oldboyedu.com#g' {} \;
1.5 问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
echo "oldboy";echo "oldboy"
[root@oldboyedu50-lnb ~]# echo 'oldboy'
oldboy
[root@oldboyedu50-lnb ~]# echo -n 'oldboy' 不显示每行结尾的回车
oldboy[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]# echo 'oldboy\nold\n\nlidao' 单引号不会解析转义字符
oldboy\nold\n\nlidao
[root@oldboyedu50-lnb ~]# echo oldboy\nold\n\nlidao"
[root@oldboyedu50-lnb ~]# echo "oldboy\nold\n\nlidao" 双引号不会解析转义字符
oldboy\nold\n\nlidao
[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]# echo -e "oldboy\nold\n\nlidao" -e让echo命令支持转义字符
oldboy
old
lidao
#-n不显示每行结尾的回车
#-e 让echo命令支持 转义字符 \n \t
1.6 当从root用户切到普通用户oldboy时,执行ifconfig会提示。command not found
输入命令时候提示 command not found
模拟环境
export PATH=
PATH环境变量问题
PATH 路径 环境变量 存放的是 命令路径
1.6.1 如何修改PATH
1.6.1.1 临时
[root@oldboyedu50-lnb ~]# export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin
[root@oldboyedu50-lnb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1.6.1.2 永久
[root@oldboyedu50-lnb ~]# tail -1 /etc/profile
#export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin
[root@oldboyedu50-lnb ~]# source /etc/profile
1.6.1.3 3.检查
发出当前系统使用的 PATH
[root@oldboyedu50-lnb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1.7 请描述下列路径的内容是做什么的?
/var/log/messages | 系统默认日志 |
/var/log/secure | 用户登录信息 (安全日志) |
/etc/fstab | 开机自动挂载 |
/etc/hosts | 解析主机名(域名) |
/etc/rc.local | 开机自启动
|
/etc/profile | 别名 环境变量 |
/var/spool/cron/root | 定时任务的配置文件 |
1.8 修改主机名
1)临时
Hostname 主机名
2)永久
Vim /etc/sysconfig/network
将HOSTNAME=oldboyedu50放入到最后一行
3) 解析
[root@oldboyedu50-lnb ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.200 oldboyedu50-lnb
[root@oldboyedu50-lnb ~]# ping `hostname`
PING oldboyedu50-lnb (10.0.0.200) 56(84) bytes of data.
64 bytes from oldboyedu50-lnb (10.0.0.200): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from oldboyedu50-lnb (10.0.0.200): icmp_seq=2 ttl=64 time=0.021 ms
1.9 如何快速查到ifconfig的全路径,请给出命令。
1.9.1 which
[root@oldboyedu50-lnb ~]# find / -type f -name "ifconfig" find也可以查找
/sbin/ifconfig
[root@oldboyedu50-lnb ~]# which ifconfig
/sbin/ifconfig
[root@oldboyedu50-lnb ~]# which rm
alias rm='echo rm bny'
/bin/echo
[root@oldboyedu50-lnb ~]# \which rm which查找rm时要加\才可以取消别名
/bin/rm
1.9.2 whereis 显示命令相关的内容
[root@oldboyedu50-lnb ~]# whereis grep awk
grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
awk: /bin/awk /usr/bin/awk /usr/libexec/awk /usr/share/awk /usr/share/man/man1p/awk.1p.gz /usr/share/man/man1/awk.1.gz
1.9.3 locate
根据名字查找位置
根据清单进行查找
updatedb
更新locate所用的表格(清单)
占用磁盘IO 读写
1.10 【用户管理】请给出查看当前哪些用户在线的linux命令。
1.10.1 w 显示当前哪些用户在线
[root@oldboyedu50-lnb ~]# w
10:41:59 up 2:07, 2 users, load average: 0.04, 0.02, 0.00
时间 在线时长 有几个用户 负载信息
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 23Jul18 0.00s 0.28s 0.00s w
root pts/1 10.0.0.1 09:56 29:20 0.00s 0.00s -bash
[root@oldboyedu50-lnb ~]#
1.10.2 取出w中用户个数
[root@oldboyedu50-lnb ~]# w |awk 'NR==1{print $(NF-6)}' 取倒数第7列
2
1.11 请给出正确的关机和重起服务器的命令。
1.11.1 重启
reboot
shutdown -r 10
shutdown -r 0/now 立即重启
shutdown -c 取消当前的重启或关机
init 6
1.11.2 关机
halt
shutdown -h 10
shutdown -h 0/now 立即关机
poweroff
init 0
1.12 请写出下面linux命令行快捷键的功能?
Ctrl + a | 把光标移动到行首 |
Ctrl + e | 把光标移动到行尾 |
Ctrl + c | 取消 cancel |
Ctrl + d | 退出当前用户 |
Ctrl + l | 清屏 |
Ctrl + u | 把光标所在位置到行首的内容删除(剪切) |
Ctrl + k | 把光标所在位置到行尾的内容删除(剪切) |
ctrl + y | 粘贴 |
ctrl+s | 锁屏 |
ctrl+q/c | 解锁 |
Ctrl + r | 找出最近一次使用过的 包含xxxx的命令 替你执行 |
history |grep awk
1.13 Linux权限
rwx
文件或目录rwx含义
permission denied 权限拒绝
通过控制权限保护网站安全
特殊与隐藏权限
1.14 linux如何知道我对某个文件或目录有什么权限?
[root@oldboyedu50-lnb ~]# su - oldboy
[oldboy@oldboyedu50-lnb ~]$ ll /etc/hosts
-rw-r--r-- 1 root root 186 Aug 6 10:24 /etc/hosts
1.14.1 如何快速判断 你对某个文件拥有什么权限
1.14.1.1 看看是你谁?
#whoami oldboy
1.14.1.2 你与这个文件什么关系 : 主人 家人 陌生人
#是否是家人
[oldboy@oldboyedu50-lnb ~]$ id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
#oldboy用户 文件是 陌生人关系
1.14.1.3 确认权限 陌生人权限 看最后三位
#oldboy对他的权限
[root@oldboyedu50 ~]# su – ztt 切换用户
[ztt@oldboyedu50 ~]$ ll /oldboy/oldboy.txt
-rwxrwxrwx 1 root root 23 8月 6 10:01 /oldboy/oldboy.txt
[ztt@oldboyedu50 ~]$ id 属于ztt,zl组
uid=501(ztt) gid=501(ztt) 组=501(ztt),503(z1)
[ztt@oldboyedu50 ~]$ 即对于文件oldboy.txt,oldboy用户为陌生人
1.14.2 计算权限
r 4
w 2
x 1
- 0
755 rwxr-xr-x
640 rw-r-----
744 rwxr--r--
600 rw-------
1.15 修改权限 change mode chmod
1.15.1 直接通过数字形式修改权限
[root@oldboyedu50-lnb /oldboy]# chmod 666 test.txt
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rw-rw-rw- 1 root root 23 Jul 20 01:13 test.txt
[root@oldboyedu50-lnb /oldboy]# chmod 777 test.txt
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxrwxrwx 1 root root 23 Jul 20 01:13 test.txt
1.15.2 通过字母 形式修改
rw- | rw- | rw- |
主人 | 家人 | 陌生人 |
所有者 | 所属用户组 | 其他人 |
user | group | other |
u | g | o |
[root@oldboyedu50-lnb /oldboy]# chmod u=r test.txt 先清空原有权限,再追加
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-r--rwxrwx 1 root root 23 Jul 20 01:13 test.txt
#= > 先清空再追加
#+ 增加
#- 减掉
[root@oldboyedu50-lnb /oldboy]# #给文件快速增加执行权限
[root@oldboyedu50-lnb /oldboy]# chmod ugo+x test.txt
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt
[root@oldboyedu50-lnb /oldboy]# chmod a-x test.txt
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rw-r--r-- 1 root root 23 Jul 20 01:13 test.txt
[root@oldboyedu50-lnb /oldboy]# chmod +x test.txt
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt
三个意思一样,都是给文件增加执行权限
chmod ugo+x
chmod a+x
chmod +x
1.15.3 #chown change owner 修改文件的所有者
[root@oldboyedu50-lnb /oldboy]# chown oldboy.oldboy test.txt 修改所有者和所属家庭
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxr-xr-x 1 oldboy oldboy 23 Jul 20 01:13 test.txt
[root@oldboyedu50-lnb /oldboy]#
[root@oldboyedu50-lnb /oldboy]#
[root@oldboyedu50-lnb /oldboy]# chown root test.txt 修改所有者
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxr-xr-x 1 root oldboy 23 Jul 20 01:13 test.txt
[root@oldboyedu50-lnb /oldboy]# chown .root test.txt 修改所属家庭
[root@oldboyedu50-lnb /oldboy]# ll test.txt
-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt
1.16 总结:
1.三剑客过滤 指哪打哪
2.显示日期 打包压缩并添加上日期
3.find+sed 遇到故障排查流程
4.快捷键 关机重启
5.如何修改PATH
6.linux如何知道我对某个文件或目录有什么权限?
7.修改权限与所有者
1.17 预习:
rwx对于文件 目录 含义
通过控制权限让网站安全
系统默认权限
[oldboy@oldboyedu50-lnb ~]$ touch /root/oldboy.txt
touch: cannot touch `/root/oldboy.txt': Permission denied
[oldboy@oldboyedu50-lnb ~]$ echo oldboy >> /etc/hosts
-bash: /etc/hosts: Permission denied
[oldboy@oldboyedu50-lnb ~]$ \rm -f /etc/passwd
rm: cannot remove `/etc/passwd': Permission denied
[oldboy@oldboyedu50-lnb ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied