Day_17 权限管理 跟堂笔记

创建多个用户       (多种案例)

[root@db01 ~]# echo useradd_oldboy{01..3}|xargs -n1|sed 's#_# #g'
useradd oldboy01
useradd oldboy02
useradd oldboy03
[root@db01 ~]# echo oldboy{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1#g'
useradd oldboy01
useradd oldboy02
useradd oldboy03               #拼接后可接bash执行

创建一个用户并且给他一个密码     (复杂版)

[root@db01 ~]# echo oldboy{01..5}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'
useradd oldboy01;echo 123456|passwd --stdin oldboy01
useradd oldboy02;echo 123456|passwd --stdin oldboy02
useradd oldboy03;echo 123456|passwd --stdin oldboy03
useradd oldboy04;echo 123456|passwd --stdin oldboy04
useradd oldboy05;echo 123456|passwd --stdin oldboy05

利用变量创建随机密码并将密码存入指定文件    (复杂版)

[root@db01 ~]# echo oldboy{01..5}|xargs -n1|sed -r 's#(.*)#useradd \1;p=`mkpasswd`;echo $p|passwd --stdin \1;echo -e \1 "\t" $p >> pass.txt#g'
useradd oldboy01;p=`mkpasswd`;echo $p|passwd --stdin oldboy01;echo -e oldboy01 "	" $p >> pass.txt
useradd oldboy02;p=`mkpasswd`;echo $p|passwd --stdin oldboy02;echo -e oldboy02 "	" $p >> pass.txt
useradd oldboy03;p=`mkpasswd`;echo $p|passwd --stdin oldboy03;echo -e oldboy03 "	" $p >> pass.txt
useradd oldboy04;p=`mkpasswd`;echo $p|passwd --stdin oldboy04;echo -e oldboy04 "	" $p >> pass.txt
useradd oldboy05;p=`mkpasswd`;echo $p|passwd --stdin oldboy05;echo -e oldboy05 "	" $p >> pass.txt

使用awk批量创建用户

[root@db01 ~]# echo oldboy{01..5}|xargs -n1|awk '{print "useradd "$1";p=`mkpasswd`;echo $p|passwd --stdin "$1";echo -e "$1" \t$p >> pass1.txt"}'
useradd oldboy01;p=`mkpasswd`;echo $p|passwd --stdin oldboy01;echo -e oldboy01 	$p >> pass1.txt
useradd oldboy02;p=`mkpasswd`;echo $p|passwd --stdin oldboy02;echo -e oldboy02 	$p >> pass1.txt
useradd oldboy03;p=`mkpasswd`;echo $p|passwd --stdin oldboy03;echo -e oldboy03 	$p >> pass1.txt
useradd oldboy04;p=`mkpasswd`;echo $p|passwd --stdin oldboy04;echo -e oldboy04 	$p >> pass1.txt
useradd oldboy05;p=`mkpasswd`;echo $p|passwd --stdin oldboy05;echo -e oldboy05 	$p >> pass1.txt

权限管理

linux如何知道我对某个文件或目录有什么权限?
[oldboy02@db01 tmp]$ ll 2.txt
-rw-r--r-- 1 root root 0 Mar 14 10:30 2.txt
[oldboy02@db01 tmp]$ #如何知道我对2.txt拥有什么权限
[oldboy02@db01 tmp]$ #1.当前登录用户 oldboy02
[oldboy02@db01 tmp]$ #2.oldboy02和2.txt的关系
[oldboy02@db01 tmp]$ #关系1.属主 2.属组 3.其他陌生人
[oldboy02@db01 tmp]$ #3.通过关系找到自己的权限位置
[oldboy02@db01 tmp]$ #前3位 属主 中三位 属组 后三位: 其他陌生人

rwx含义

            r         可读          可查看    cat less vim

           w        可写           写入       vim echo > >>

           x         可执行       sh test.sh 文件中必须是可执行的命令

r   ===     4

w  ===    2

x   ===   1

通过数字的方式表示文件的权限:

rw-r--r--      通过数字表示方式为:    将每3位的权限位置换算成数字进行相加等于644

rw- 属主-->数字 420 4+2+0=6

r-- 属组-->数字 400 =4

r-- 其他-->数字 400 =4

[oldboy02@db01 tmp]$ ll 2.txt # 644

-rw-r--r-- 1 root root 0 Mar 14 10:30 2.txt

[oldboy02@db01 tmp]$
[oldboy02@db01 tmp]$ ll hehe.txt # 664

-rw-rw-r-- 1 test03 test03 0 Mar 20 15:14 hehe.tx

通过数字来使用rwx来表示: 755
rwxr-xr-x
通过数字来使用rwx来表示: 600
rw-------

        

修改文件权限

01.使用rwx修改文件的权限

语法结构:                      chmod +x file

使用ugo方式授权不同的权限位置:
u     表示属主位      user
g     表示属组位      group
o     表示其他位置      other

案例1.授权属主位增加x权限 

[root@db01 ~]# ll
total 4
-rw-r--r-- 1 root root 36 Mar 22 09:12 1.txt
[root@db01 ~]# chmod u+x 1.txt
[root@db01 ~]# ll 1.txt
-rwxr--r-- 1 root root 36 Mar 22 09:12 1.txt

案例2.将属主位的w权限去掉

[root@db01 ~]# chmod u-w 1.txt
[root@db01 ~]# ll 1.txt
-r-xr--r-- 1 root root 36 Mar 22 09:12 1.txt

案例3.授权属组位wx权限

[root@db01 ~]# ll 1.txt
-r-xr--r-- 1 root root 36 Mar 22 09:12 1.txt
[root@db01 ~]# chmod g+wx 1.txt
[root@db01 ~]# ll 1.txt
-r-xrwxr-- 1 root root 36 Mar 22 09:12 1.txt

案例4.取消属组的所有的权限

[root@db01 ~]# chmod g-rwx 1.txt
[root@db01 ~]# ll 1.txt
-r-x---r-- 1 root root 36 Mar 22 09:12 1.txt

案例5.授权属组和其他位置同时增加x权限

[root@db01 ~]# chmod go+x 1.txt
[root@db01 ~]# ll 1.txt
-r-x--xr-x 1 root root 36 Mar 22 09:12 1.txt

案例6.授权所有权限位置减少x权限

[root@db01 ~]# chmod ugo-x 1.txt
[root@db01 ~]# ll 1.txt
-r-----r-- 1 root root 36 Mar 22 09:12 1.txt

案例7.不加任何位置r和x默认表示所有 所有权限位加w权限

[root@db01 ~]# chmod +w 1.txt       #默认只给属主增加
[root@db01 ~]# ll 1.txt
-rwxr-xr-x 1 root root 36 Mar 22 09:12 1.txt

[root@db01 ~]# ll 1.txt
--wx--x--x 1 root root 36 Mar 22 09:12 1.txt
[root@db01 ~]# chmod +r 1.txt
[root@db01 ~]# ll 1.txt
-rwxr-xr-x 1 root root 36 Mar 22 09:12 1.txt

案例8.a表示所有位置

[root@db01 ~]# chmod a-r 1.txt
[root@db01 ~]# ll 1.txt
--wx--x--x 1 root root 36 Mar 22 09:12 1.txt

[root@db01 ~]# ll 1.txt
--wx--x--x 1 root root 36 Mar 22 09:12 1.txt
[root@db01 ~]# chmod a+w 1.txt
[root@db01 ~]# ll 1.txt
--wx-wx-wx 1 root root 36 Mar 22 09:12 1.txt

案例8.  等号为重新复制,先清空后附加权限
            赋予属主位只有x权限

[root@db01 ~]# ll 1.txt
-rw-r--r-- 1 root root 36 Mar 22 09:12 1.txt
[root@db01 ~]# chmod u=x 1.txt
[root@db01 ~]# ll 1.txt
---xr--r-- 1 root root 36 Mar 22 09:12 1.txt

授权所有位置只能rx权限

[root@db01 ~]# chmod ugo=rx 1.txt
[root@db01 ~]# ll 1.txt
-r-xr-xr-x 1 root root 36 Mar 22 09:12 1.txt

默认表示所有:

[root@db01 ~]# chmod =x 1.txt
[root@db01 ~]# ll 1.txt
---x--x--x 1 root root 36 Mar 22 09:12 1.txt

总结  :  使用ugo方式修改文件权限

chmod a+x file        # 授权所有位
chmod a-x file        # 取消所有x权限
chmod +x file         # 授权所有位x
chmod -x file        # 取消所有位x
chmod ugo+r file        # 授权所有r
chmod ugo-x file        # 取消所有x
chmod ugo=rw file        # 授权所有位置只有rw权限 等号先清空原来的权限 然后再赋值等号后面的权限

使用数字方式修改文件权限

案例: 授权文件权限为: rwxr--r--

[root@db01 ~]# chmod 744 1.txt
[root@db01 ~]# ll 1.txt
-rwxr--r-- 1 root root 36 Mar 22 09:12 1.txt

案例: 授权文件权限为rw-------

[root@db01 ~]# chmod 600 1.txt
[root@db01 ~]# ll 1.txt
-rw------- 1 root root 36 Mar 22 09:12 1.txt

案例: 授权文件权限为rwxr-xr-x

[root@db01 ~]# chmod 755 1.txt
[root@db01 ~]# ll 1.txt
-rwxr-xr-x 1 root root 36 Mar 22 09:12 1.txt

案例: 授权文件权限为 rwxrwxrwx

[root@db01 ~]# chmod 777 1.txt
[root@db01 ~]# ll 1.txt
-rwxrwxrwx 1 root root 36 Mar 22 09:12 1.txt

对于文件rwx的含义

1.创建环境:

[root@db01 ~]# mkdir /oldboy/
[root@db01 ~]# touch /oldboy/{1..3}.txt
[root@db01 ~]# echo pwd > /oldboy/1.txt
[root@db01 ~]# ll /oldboy/
total 4
-rw-r--r-- 1 root root 4 Mar 22 10:29 1.txt
-rw-r--r-- 1 root root 0 Mar 22 10:29 2.txt
-rw-r--r-- 1 root root 0 Mar 22 10:29 3.txt


[root@db01 ~]# cat /oldboy/1.txt
pwd

[root@db01 oldboy]# chown oldboy.oldboy *.txt
[root@db01 oldboy]# ll
total 4
-rw-r--r-- 1 oldboy oldboy 4 Mar 22 10:29 1.txt
-rw-r--r-- 1 oldboy oldboy 0 Mar 22 10:29 2.txt
-rw-r--r-- 1 oldboy oldboy 0 Mar 22 10:29 3.txt

创建普通用户: oldboy
useradd oldboy

2.打开两个窗口
第一个窗口: root用户 修改权限
第二个窗口: su 切换到oldboy进行权限测试

测试  r  对应文件的权限:
结果: r 对于文件来讲只有读的权限
          写入的话只可以强制:wq!

[root@db01 oldboy]# chmod u=r 1.txt
[root@db01 oldboy]# ll 1.txt
-r--r--r-- 1 oldboy oldboy 4 Mar 22 10:29 1.txt

测试  w  对于文件的权限
结果 : 不能查看文件内容
            只能  > >> 往文件中写入内容
            不能执行

[root@db01 oldboy]# chmod u=w 1.txt
[root@db01 oldboy]# ll 1.txt
--w-r--r-- 1 oldboy oldboy 14 Mar 22 10:37 1.txt

测试  x  对于文件的权限
结果 :  啥都不能干

[root@db01 oldboy]# chmod u=x 1.txt
[root@db01 oldboy]# ll 1.txt
---xr--r-- 1 oldboy oldboy 18 Mar 22 10:43 1.txt

总结 :  文件权限控制文件的可读 可写 可执行!
可以查看文件必须有:r  的权限
可以读写文件必有:   rw   的权限
可以执行文件必须有:   rx  的权限


普通文件最高权限: 666
在企业中所有普通文件权限最高必须为: 644

rwx对于目录的作用

r  权限对于目录的作用:
总结: 啥都不能干,无法对目录下的文件做任何操作

[root@db01 oldboy]# chown oldboy.oldboy /oldboy/
[root@db01 oldboy]# ll -d /oldboy/
drwxr-xr-x 2 oldboy oldboy 45 Mar 22 10:29 /oldboy/

[root@db01 oldboy]# chmod u=r /oldboy
[root@db01 oldboy]# ll -d /oldboy
dr--r-xr-x 2 oldboy oldboy 45 Mar 22 10:29 /oldboy

w  权限对于目录的作用:
总结: 啥都不能干

[root@db01 oldboy]# chmod u=w /oldboy
[root@db01 oldboy]# ll -d /oldboy
d-w-r-xr-x 2 oldboy oldboy 45 Mar 22 10:29 /oldboy

x  权限对于目录的作用:
总结  :   只能进到目录下 其他没有权限

[root@db01 oldboy]# chmod u=x /oldboy
[root@db01 oldboy]# ll -d /oldboy
d--xr-xr-x 2 oldboy oldboy 45 Mar 22 10:29 /oldboy

总结:
1.如果可以正常对文件进行查看写入权限 目录必须有: r和x权限
2.如果想要在目录下创建 移动 删除操作,目录必须有: rwx权限

Linux系统默认权限

默认创建文件: 644 rw-r--r--
默认创建目录: 755 rwx-r-xr-x

系统通过UMASK值控制默认的创建权限:
1.查看UMASK
umask 回车
[root@db01 ~]# umask
0022

用文件最高的权限减去UMASK默认的值等于默认创建文件的权限:
  666
- 022
= 644         默认文件权限

用户目录的最高权限减去默认UMASK值
  777
- 022
= 755

注意: 如果UMASK值里有奇数位,则文件需要相减后加1
         目录不需要加1
比如: 设置umask值032
则默认文件权限为:
  666
-032
=634
+010
=644

2.修改UMASK值 临时

[root@db01 ~]# umask 044
[root@db01 ~]# umask
0044
[root@db01 ~]# rm -rf *
[root@db01 ~]# touch 1.txt
[root@db01 ~]# ll
total 0
-rw--w--w- 1 root root 0 Mar 22 11:50 1.txt
[root@db01 ~]# mkdir oldboy
[root@db01 ~]# ll
total 0
-rw--w--w- 1 root root 0 Mar 22 11:50 1.txt
drwx-wx-wx 2 root root 6 Mar 22 11:50 oldboy

笔试题: 如果默认创建000属性的文件请问UMASK值是多少
umask: 666

隐藏权限

保护系统文件安全:
1.查看文件隐藏权限

[root@db01 ~]# lsattr 1.txt
---------------- 1.txt

2.设置隐藏权限
      i     无敌的,谁也无法对  1.txt  对任何的操作
      a    无敌的,只可以追加内容进去  >>

[root@db01 ~]# chattr +i 1.txt
[root@db01 ~]# lsattr 1.txt
----i----------- 1.txt

3.取消隐藏权限

[root@db01 ~]# chattr -i 1.txt
[root@db01 ~]# chattr +a 1.txt
[root@db01 ~]# lsattr 1.txt
-----a---------- 1.txt

注意: 企业中除了隐藏权限无法修改文件以外,还需要注意第三方安全软件限制着文件

特殊权限位:    了解
1.suid 给文件或命令添加s权限,则拥有对应主人的权限

[root@db01 ~]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62872 Aug 20 2019 /usr/bin/rm
[root@db01 ~]# chmod u+s /usr/bin/rm
[root@db01 ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62872 Aug 20 2019 /usr/bin/rm
[root@db01 ~]# stat /usr/bin/rm

[root@db01 ~]# chmod u-s /usr/bin/rm
[root@db01 ~]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62872 Aug 20 2019 /usr/bin/rm

2.粘滞位 控制自己的文件只能自己管理 /tmp目录就是粘滞位权限 1777
在系统创建一个目录: 可以让任何用户在目录中创建文件

总结:

Day_17 权限管理 跟堂笔记_第1张图片

你可能感兴趣的:(Day_17 权限管理 跟堂笔记)