一. 练习:批量创建n个用户
批量创建n个用户
用户名以sanchuang开头,sanchuang
指定家目录/lianxi/user
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| 示例 --------------------------------------------------------------------------------------------------------------------------------- [root@localhost ~] 01 02 ……………… 09 10 [root@sanchuang-linux ~]
num=$1 [ -d /lianxi/user ] || mkdir /lianxi/user for i in `seq -w $num` do useradd -d /lianxi/user/sanchuang$i sanchuang$i done [root@sanchuang-linux ~] useradd:用户“sanchuang01”已存在 useradd:用户“sanchuang02”已存在 ……………… useradd:用户“sanchuang10”已存在 useradd:用户“sanchuang12”已存在 [root@sanchuang-linux ~] [root@sanchuang-linux user] sanchuang01 ………… sanchuang10 sanchuang12 [root@sanchuang-linux user] [root@sanchuang-linux ~] useradd:用户“sanchuang01”已存在 useradd:用户“sanchuang02”已存在 ……………… useradd:用户“sanchuang12”已存在 useradd:用户“sanchuang13”已存在 [root@sanchuang-linux ~] [root@sanchuang-linux user] sanchuang01 ………… sanchuang18 sanchuang20
|
二. 一般情况下普通用户只能在家目录下或者/tmp目录下创建文件或者文件夹
一般情况下普通用户只能在家目录下或者/tmp目录下创建文件或者文件夹
#注:/tmp目录是一个临时目录,一般存放临时性的东西
#注:(如:程序运行中需要记录的一些东西,程序结束后把/tmp目录下的东西删掉)
1 2 3 4 5 6 7 8 9 10 11 12
| [root@sanchuang-linux ~] 上一次登录:五 11月 6 17:09:41 CST 2020pts/2 上 [sanchuang@sanchuang-linux ~]$ ls -ld / dr-xr-xr-x. 38 root root 4096 11月 5 15:12 / [sanchuang@sanchuang-linux ~]$ ls -ld /etc drwxr-xr-x. 90 root root 8192 11月 7 15:00 /etc [sanchuang@sanchuang-linux ~]$ ls -ld ./ drwxrwxrwx. 4 sanchuang sanchuang 122 11月 6 17:10 ./ [sanchuang@sanchuang-linux ~]$ ls -ld /tmp drwxrwxrwt. 12 root root 264 11月 7 10:36 /tmp
|
三. chmod
chmod使用,必须是文件的属主,才能改动文件的读写执行权限(root除外)
#注:chmod使用 用户必须是文件的属主才能修改(即使是文件属组里的成员也没有权限去修改文件)
#注:root用户除外
1 2 3 4 5 6 7
| 示例:su切换用户时 加- 不加- 区别 [root@sanchuang-linux chenpeng] 上一次登录:六 11月 7 15:10:51 CST 2020pts/0 上 [sanchuang11@sanchuang-linux ~]$ exit 注销 [root@sanchuang-linux chenpeng] [sanchuang11@sanchuang-linux chenpeng]$
|
四. 设置文件/目录的归属
设置文件/目录的归属
4.1 chown命令
chown命令 # 注:用来改变文件的属主和属组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 示例:chown 修改文件的属主和属组 -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] -rw-rw-r-- 1 sanchuang sanchuang 673 11月 7 15:19 sanchuang_log [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] -rw-rw-r-- 1 sanchuang10 sanchuang 673 11月 7 15:19 sanchuang_log [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] -rw-rw-r-- 1 sanchuang10 sanchuang9 673 11月 7 15:19 sanchuang_log [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] -rw-rw-r-- 1 sanchuang2 sanchuang 673 11月 7 15:19 sanchuang_log
[root@sanchuang-linux tmp] chown: 无效的用户: “xixi:haha” [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] -rw-rw-r-- 1 6666 6666 673 11月 7 15:19 sanchuang_log
|
4.2 chgrp命令
chgrp命令 # 注:修改属组(不常用)
格式: chgrp 属组 文件
必须是root或者是文件的所有者
必须是新组的成员
常用命令选项
1 2 3 4 5
| 示例:chgrp命令 修改属组 -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] -rw-rw-r-- 1 6666 sanchuang5 673 11月 7 15:19 sanchuang_log
|
4.3 可以执行的用户
可以执行的用户
操作 可以执行的用户
chmod root和文件所有者
chgrp root和文件所有者(必须是组成员)
chown 只有root
#注:chgrp修改属组 文件所有者 必须是想要修改的组里的组成员
五. 默认权限
在内核级别,文件的初始权限666
在内核级别,文件夹的初始权限777
用umask命令控制默认权限,临时有效
1 2 3 4 5 6 7 8 9 10 11
| [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] 不推荐修改系统默认umask
============================================================================================ [sanchuang9@sanchuang-linux ~]$ ls -ld dd -rw-rw-r-- 1 sanchuang9 sanchuang9 0 11月 7 15:48 dd ============================================================================================
|
5.1 /etc/profile下面有umask的设置
/etc/profile下面有umask
的设置
系统环境设置 /etc/profile # 注:/etc/profile下面有umask的设置
#注:判断uid是否大于199,并且当前用户的 用户名和组名 相等的时候 umask 是 002
#注:用户名和组名不一样时 umask 是022
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| [sanchuang9@sanchuang-linux ~]$ less /etc/profile if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi --------------------------------------------------------------------------------------------
·在内核级别,文件的初始权限666 ·在内核级别,文件夹的初始权限777 ·用umask命令控制默认权限,临时有效
umask为002 则表示新建文件的默认权限为664,新建文件的文件夹权限为775 umask为022 则表示新建文件的默认权限为644,新建文件的文件夹权限为755
777 - umask ============================================================================================ 示例:id -gn 获取当前用户组名; id -un 获取当前用户名 -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] root [root@sanchuang-linux tmp] root [root@sanchuang-linux tmp] root [root@sanchuang-linux tmp] root ============================================================================================ 示例:判断2个字符串是否相等 可以用1个等号 -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] ok [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] ok -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] [sanchuang@sanchuang-linux ~]$ umask 0002 [sanchuang@sanchuang-linux ~]$ id -gn sanchuang [sanchuang@sanchuang-linux ~]$ id -un sanchuang
[root@localhost ~] [b1@localhost ~]$ id uid=1204(b1) gid=1001(cali) 组=1001(cali),200(tech) [b1@localhost ~]$ id -un b1 [b1@localhost ~]$ id -gn cali [b1@localhost ~]$ umask 0022 [b1@localhost ~]$ touch gg [b1@localhost ~]$ ls -ld gg -rw-r--r--. 1 b1 cali 0 11月 8 16:27 gg [b1@localhost ~]$ umask 422 [b1@localhost ~]$ mkdir test [b1@localhost ~]$ ls -ld test/ d-wxr-xr-x. 2 b1 cali 6 11月 8 16:49 test/ ============================================================================================ 示例:临时设置umask -------------------------------------------------------------------------------------------- [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] [root@sanchuang-linux tmp] --w-r--r-- 1 root root 0 11月 7 16:02 hh ============================================================================================ 示例:umask -S 查看文件目前默认权限是多少 [sanchuang9@sanchuang-linux ~]$ umask -S u=rwx,g=rwx,o=rx ============================================================================================ 示例:想要修改某个用户的umask,永久修改 --------------------------------------------------------------------------------------------
[sanchuang9@sanchuang-linux ~]$ vim /home/sanchuang9/.bashrc umask=002 [sanchuang9@sanchuang-linux ~]$ exit 注销 [root@sanchuang-linux tmp] 上一次登录:六 11月 7 16:07:40 CST 2020pts/0 上 [sanchuang9@sanchuang-linux ~]$ umask 0002 [sanchuang9@sanchuang-linux ~]$ bash [sanchuang9@sanchuang-linux ~]$ umask 0002
|
六. 练习
6.1 新建文件夹/pem,复制/etc/hosts文件到pem目录下
1 2 3
| 1、新建文件夹/pem,复制/etc/hosts文件到pem目录下 [root@sanchuang-linux pem] [root@sanchuang-linux pem]
|
6.2 修改hosts文件的权限为,属主有读写执行,组有读写执行,其他人没有任何权限
1 2 3 4
| 2、修改hosts文件的权限为,属主有读写执行,组有读写执行,其他人没有任何权限 [root@sanchuang-linux pem] [root@sanchuang-linux pem] -rwxr-x--- 1 root root 158 11月 7 16:20 /pem/hosts
|
6.3 新建/pem2目录,修改权限为任何人都有读写执行的权限
1 2 3 4
| 3、新建/pem2目录,修改权限为任何人都有读写执行的权限 [root@sanchuang-linux pem] [root@sanchuang-linux pem] [root@sanchuang-linux pem]
|
6.4 修改/pem2目录权限为属主有读写执行的权限,其他任何人都没有权限
1 2
| 4、修改/pem2目录权限为属主有读写执行的权限,其他任何人都没有权限 [root@sanchuang-linux pem]
|
6.5 修改/pem2任何人都没有任何权限
1 2
| 5、修改/pem2任何人都没有任何权限 [root@sanchuang-linux pem]
|
6.6 复制/etc/passwd和/etc/shadow文件到/pem目录下,查看复制之后的权限是否一致,如何保持权限一致
1 2 3 4 5
| 6、复制/etc/passwd和/etc/shadow文件到/pem目录下,查看复制之后的权限是否一致,如何保持权限一致 [root@sanchuang-linux pem] [root@sanchuang-linux pem] --w-r--r-- 1 root root 3964 11月 7 16:23 passwd ---------- 1 root root 4201 11月 7 16:23 shadow
|
6.7 cp -a 保留文件的属性(包括权限、时间、用户、组)
cp -a
保留文件的属性(包括权限、时间、用户、组)
1 2 3 4 5
| [root@sanchuang-linux pem] [root@sanchuang-linux pem] --w------- 1 root root 1622 11月 7 16:30 /tmp/viminfo [root@sanchuang-linux pem] -rw------- 1 sanchuang9 sanchuang9 1622 11月 7 16:11 /tmp/viminfo
|
七. 文件或目录的隐藏属性
chattr命令:设置文件的隐藏属性
常用命令选项
-R
:递归修改
-a
:可以增加文件内容,但不能修改和删除
-i
:锁定保护文件
lsattr命令:查看文件的隐藏属性
常用命令选项
#注:普通用户设置不了文件的隐藏属性;root用户才能设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 示例1:chattr +i hosts 锁定保护文件
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem] [root@sanchuang-linux pem] mv: 无法将'hosts' 移动至'hosts.bak': 不允许的操作 [root@sanchuang-linux pem] -rwxr-x--- 1 root root 158 11月 7 16:20 hosts [root@sanchuang-linux pem] ----i--------------- hosts [root@sanchuang-linux pem] [root@sanchuang-linux pem] -------------------- hosts
============================================================================================ 示例2:chattr +a hosts 可以增加文件内容,但不能修改和删除
-------------------------------------------------------------------------------------------- [root@sanchuang-linux pem] [root@sanchuang-linux pem] -----a-------------- hosts [root@sanchuang-linux pem] [root@sanchuang-linux pem] [root@sanchuang-linux pem] 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 aaaa [root@sanchuang-linux pem] rm: 无法删除'hosts': 不允许的操作
============================================================================================ 示例3:chattr +i /etc/passwd -------------------------------------------------------------------------------------------- [root@sanchuang-linux pem] [root@sanchuang-linux pem] ----i--------------- /etc/passwd [root@sanchuang-linux pem] useradd:无法打开 /etc/passwd [root@sanchuang-linux pem] ============================================================================================ 示例4:普通用户设置不了文件的隐藏属性 -------------------------------------------------------------------------------------------- [root@localhost ~] [sanchuang@localhost ~]$ touch aa [sanchuang@localhost ~]$ chattr +i aa chattr: 不允许的操作 while setting flags on aa
|
八. 文件的正常权限
1 2 3
| [root@sanchuang-linux pem] drwxrwxrwt. 12 root root 4096 11月 7 16:30 /tmp
|
九. 文件的特别权限
#注:set位权限设置
SET位权限
主要用途:
SET位权限类型:
SUID:表示对属主用户增加SET位权限
SGID:表示对属组内的用户增加SET位权限
# 注:用在可执行文件
# 注:suid sgid 对应文件而言
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| 示例:/bin/passwd -------------------------------------------------------------------------------------------- [root@localhost ~] /bin/passwd [root@localhost ~] -rwsr-xr-x. 1 root root 27856 4月 1 2020 /bin/passwd
[root@localhost ~] [sanchuang@localhost ~]$ passwd sanchuang passwd:只有根用户才能指定用户名。
示例:SET位权限设置 -------------------------------------------------------------------------------------------- [root@sanchuang-linux pem] d-wxr-xr-x 2 root root 47 11月 7 16:42 /pem
1.设置/pem的权限为777 2.设置mkdir SUID的权限 [root@sanchuang-linux sbin] /usr/bin/mkdir [root@sanchuang-linux sbin] -rwxr-xr-x. 1 root root 195192 4月 10 2020 /usr/bin/mkdir [root@sanchuang-linux sbin] [root@sanchuang-linux sbin] -rwsr-xr-x. 1 root root 195192 4月 10 2020 /usr/bin/mkdir [root@sanchuang-linux sbin] 上一次登录:六 11月 7 16:09:48 CST 2020pts/0 上 [sanchuang9@sanchuang-linux ~]$ cd /pem [sanchuang9@sanchuang-linux pem]$ ls hosts passwd shadow [sanchuang9@sanchuang-linux pem]$ mkdir aa [sanchuang9@sanchuang-linux pem]$ ls -ld /pem d-wxr-xr-x 3 root root 57 11月 7 16:59 /pem [sanchuang9@sanchuang-linux pem]$ touch dd touch: 无法创建 'dd': 权限不够 [sanchuang9@sanchuang-linux pem]$ exit 注销 [root@sanchuang-linux sbin] [root@sanchuang-linux sbin] -rwxr-xr-x. 1 root root 195192 4月 10 2020 /bin/mkdir
|
十. 粘滞位权限(Sticky)
粘滞位权限(Sticky)
主要用途:
# 注:一般作用于文件夹
# 注:粘滞位对于文件夹而言
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 示例1 -------------------------------------------------------------------------------------------- [root@sanchuang-linux sbin] drwxrwxrwt. 12 root root 4096 11月 7 16:30 /tmp
============================================================================================================== 示例2:chmod 777 /pem 普通用户可以操作/pem这一层目录下的文件或者文件夹及子文件
-------------------------------------------------------------------------------------------- [root@sanchuang-linux ~] [root@sanchuang-linux ~] drwxrwxrwx 3 root root 74 11月 7 17:10 /pem [root@sanchuang-linux ~] 上一次登录:六 11月 7 17:07:17 CST 2020pts/2 上 [sanchuang9@sanchuang-linux ~]$ touch /pem/sanchuang9 [root@sanchuang-linux ~] [sanchuang@sanchuang-linux ~]$ rm -rf /pem/sanchuang9
============================================================================================================== 示例3:粘滞位 t
[sanchuang9@sanchuang-linux tmp]$ ls -ld /tmp drwxrwxrwt. 13 root root 4096 11月 7 17:07 /tmp [sanchuang9@sanchuang-linux ~]$ touch /tmp/sanchuang9 [sanchuang9@sanchuang-linux ~]$ exit [root@sanchuang-linux ~] 上一次登录:日 11月 8 19:05:55 CST 2020pts/3 上 [sanchuang@sanchuang-linux ~]$ rm -rf /tmp/sanchuang9 rm: 无法删除'/tmp/sanchuang9': 不允许的操作
|
十一. 设置SET位、粘滞位权限
设置SET位、粘滞位权限
使用权限字符
使用权限数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 示例 -------------------------------------------------------------------------------------------- [root@sanchuang-linux ~] drwxrwxrwt. 13 root root 4096 11月 7 17:07 /tmp
============================================================================================ 示例:设置粘滞位 -------------------------------------------------------------------------------------------- [root@sanchuang-linux ~] [root@sanchuang-linux ~] drwxrwxrwt 3 root root 74 11月 7 17:10 /pem
----------------------------------------------------------------- [root@sanchuang-linux ~] -rwxr-xr-x. 1 root root 195192 4月 10 2020 /bin/mkdir [root@sanchuang-linux ~] [root@sanchuang-linux ~] -rwsr-xr-x. 1 root root 195192 4月 10 2020 /bin/mkdir [root@sanchuang-linux ~] [root@sanchuang-linux ~] -rwxr-xr-x. 1 root root 195192 4月 10 2020 /bin/mkdir
|