创建多个用户 (多种案例)
[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位 属主 中三位 属组 后三位: 其他陌生人
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
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
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权限
默认创建文件: 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
在系统创建一个目录: 可以让任何用户在目录中创建文件