第三关题,linux权限

 

作者:左婷婷

归档:学习笔记

2018/7/31

 

快捷键:

Ctrl + 1    标题1

Ctrl + 2    标题2

Ctrl + 3    标题3

Ctrl + 4    实例

Ctrl + 5    程序代码

Ctrl + 6    正文

格式说明:

蓝色字体:注释

×××背景:重要

绿色背景:注意


spacer.gif

老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux  385168604

架构师 390642196

Python 29215534

大数据 421358633

官方网站:

http://www.oldboyedu.com


 

1.1 取出/etc/sysconfig/network-scripts/ifcfg-eth0 中的ip地址... 3

1.2 显示 --_周几... 3

1.3 打包压缩 /etc/目录  压缩到/tmp,每天创建的压缩包名字要不同... 4

1.4 查找当前目录下所有文件并把文件中的www.etiantian.org字符串替换成www.oldboyedu.com... 4

1.5 问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。... 4

1.6 当从root用户切到普通用户oldboy执行ifconfig会提示。command  not found. 5

1.6.1 如何修改PATH. 5

1.7 请描述下列路径的内容是做什么的?... 5

1.8 修改主机名... 6

1.9 如何快速查到ifconfig的全路径请给出命令。... 6

1.9.1 which. 6

1.9.2  whereis 显示命令相关的内容... 7

1.9.3 locate. 7

1.10 【用户管理】请给出查看当前哪些用户在线的linux命令。... 7

1.10.1 w 显示当前哪些用户在线... 7

1.10.2 取出w中用户个数... 7

1.11 请给出正确的关机和重起服务器的命令。... 7

1.11.1 重启... 7

1.11.2 关机... 8

1.12 请写出下面linux命令行快捷键的功能?... 8

1.13 Linux权限... 8

1.14 linux如何知道我对某个文件或目录有什么权限?... 8

1.14.1 如何快速判断 你对某个文件拥有什么权限... 9

1.14.2 计算权限... 9

1.15 修改权限  change  mode   chmod. 9

1.15.1 直接通过数字形式修改权限... 9

1.15.2 通过字母 形式修改... 10

1.15.3  #chown change owner 修改文件的所有者... 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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