目录
1.1权限
1.2访问权限:
1.2.1 r : 可读权限
1.2.2 w 可读权限
1.2.3 x:可执行权限
1.3归属(所有权):
2.1 chmod命令
2.1.1 字符串格式:
2.1.2还可以用等号的方式来加减权限
2.1.3 g=-,o=-用法,去除所有权限
2.1.4 -R选项,递归修改指定目录下面所有文件和子目录的权限
2.2 格式二:数字形式
3.1 chown命令
3.2修改属主和属组
3.3单独修改属组
3.4单独修改属主
3.5-R递归修改
4.1chgrp命令
5.1chomd chown chgrp的区别
6.1 普通用户如果是文件所有者可以使用chown命令吗?
7.1默认权限
7.2普通用户默认umask值
7.3root用户默认umask值
7.3.1 为什么root用户和普通用户创建文件或目录的默认权限不一样?
7.3.2 如果要修改某个用户的umask,永久修改在家目录 .bashrc 下添加umask/etc/profile /etc/bashrc 基本不要更改
7.4指定umask值:
7.5/etc/profile 文件里面 umask值的逻辑判断:
8.1实现zhangwuji登录系统后umask是002,并且永久生效
9.1 /etc/shadow文件权限:
9.2 为什么普通用户可以修改自己的密码?
9.3为什么普通用户不可以看shadow文件?
10.1 练习1
10.2练习2:
用户和组的主要作用是方便对资源的管控
用户和组 -》 uid gid 嵌入到进程里面 --》 进程访问文件 --》 内核会检查进程uid和gid对比文件允许的用户和组,
可读(read):允许查看文件内容,显示目录列表
可写(write):允许修改文件内容,允许在目录中新建,移动,删除文件或者子目录
可执行(execute):允许运行程序,切换目录
r --》 read
文件:cat,vim 只是查看文件里面的内容
文件夹:ls能查看文件夹里面有哪些文件和文件夹
w --》write
文件 : vim,重定向 --》改变文件的内容
删除文件夹里面的文件或者文件夹,需要看当前所在文件夹的权限,是否有写的权限,不然无法删除
x --》 execute
文件 : 能够执行文件里面的命令
文件夹:能够进入文件夹 cd
示例:新建一个文本文件,可以看到,对于属主它有 rw 的权限,对于属组和其他人只有r的权限
现在我们切换一个普通用户登录:
我们可以进行cat和vim操作,也就是可以进行r(读操作)
但是普通用户是没有w(写权限)的
当我们vim这个文件的时候,它会提示对于普通用户是一个只读文件,不能写入
现在使用root用户新建一个目录baodian,在目录下面新建一个文件jianpu
然后使用chmod命令将文件其他人的rx权限都去除
再使用普通用户登录,可以看到r(读)和x(执行)权限都没有了,
新建一个文件,添加一条命令 echo "hello,world"
因为文件默认没有可执行权限,所以我们给文件赋予x执行权限
这样文件就有了可执行权限
[root@localhost 3yue15]# cat execute.sh
echo hello world
[root@localhost 3yue15]# ll execute.sh
-rw-r--r--. 1 root root 19 3月 15 15:51 execute.sh
[root@localhost 3yue15]# chmod +x execute.sh
[root@localhost 3yue15]# ll execute.sh
-rwxr-xr-x. 1 root root 19 3月 15 15:51 execute.sh
[root@localhost 3yue15]# ./execute.sh
hello world
文件拥有者(user):拥有该文件或者目录的用户账号
属组(group):拥有该文件或目录的组账号
其他人(others):除了属主和属组的其他人
root用户和普通用户都可以使用chmod命令
格式:
chmod ++ [ugoa] + [+-=] + [rwx] + 文件名
u表示 属主
g代表属组
o代表其他人
a代表所有人
###############################
格式:chmod nnn 文件或者目录
作用:更改属主和属组的命令
文件是哪个用户创建的就是属于这个用户的
chown命令使用者必须是root用户
用户和组必须存在
格式:chown 属主 文件
chown :属组 文件
chown 属主 :属组 文件
常用选项:-R 递归修改指定目录下面所有文件,子目录的归属
###############################
修改文件的属组
格式:chgrp 属组 文件
必须是root或者是文件的所有者
必须是新组的成员
-R 递归修改指定目录下面所有文件和子目录
###############################
操作 可以执行的用户
chmod root和文件所有者
chgrp root和文件所有者(必须是组成员)
chown 只有root
###############################
首先将文件属主和属组都给liming,然后登陆liming
然后修改属主和属组为user01
发现即使文件属主是liming,但是我们还是不能修改它的属主
chown命令只能root用户使用
###############################
umask 设定文件创建的初始权限
在内核级别,文件的初始权限是666
在内核级别,文件夹的初始权限是777
文件创建的权限=666-umask
文件夹创建的权限=777-umask
用umask命令控制默认权限,临时有效
umask的值,其实用来和内核里面的文件权限进行运算得到用户的默认新建的文件或者文件夹的权限。
查看umask的值:
###############################
[liming@localhost 3yue17]$ umask
0002
[liming@localhost perm]$ umask -S
u=rwx,g=rwx,o=rx
###############################
[root@localhost share]# umask
0022
[root@localhost share]# umask -S
u=rwx,g=rx,o=rx
=====
root用户新建文件夹的时候,默认权限为:
[root@localhost share]# ll -d changsha/ 777-0022=755
drwxr-xr-x. 2 root root 6 3月 17 15:57 changsha/
root用户新建文件默认权限为:666-0022 = 644
[root@localhost share]# ll sanchuang.txt
-rw-r--r--. 1 root root 0 3月 17 16:06 sanchuang.txt
普通用户新建文件夹的时候,默认权限为:777-0002=775
[liming@localhost share]$ ll -d nongda
drwxrwxr-x. 2 liming liming 6 3月 17 15:55 nongda
普通用户新建文件的时候,默认权限为:666-0002=664
[liming@localhost share]$ ll -d nongda.txt
-rw-rw-r--. 1 liming liming 0 3月 17 15:56 nongda.txt
###############################
因为配置文件里面对于两种用户的设置不同
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
如果$UID 大于 199 并且 /usr/bin/id -gn 和 /usr/bin/id -un 相等 那么umask=002
如果不是,则umask=022 例如 root用户
usr/bin/id -ru -- 获取当前运行用户的uid
/usr/bin/id -gn --获取当前运行用户的组名
/usr/bin/id -un --获取当前运行用户的名字
[root@localhost lianxi]# /usr/bin/id -ru
0
[root@localhost lianxi]# /usr/bin/id -gn
root
[root@localhost lianxi]# /usr/bin/id -un
root
###############################
umask 0077
直接umask 后面接 要修改的值就可以了
但是一般不推荐修改系统默认umask值
###############################
=====
/usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ /usr/bin/id -gn = /usr/bin/id -un ]; then
umask 002
else
umask 022
fi
=====
如果uid 大于199,并且用户名和组名相等的就设置umask值为002
否则就设置为022
###############################
直接修改zhangwuji家目录下面的.bash_profile 文件就可以了
vim ~zhangwuji/.bash_profile
###############################
[root@localhost perm]# ll -d /etc/shadow
----------. 1 root root 5032 3月 17 19:19 /etc/shadow
shadow文件的权限是任何用户都不能去读写执行,当然root用户是可以的,
[root@localhost perm]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 4月 1 2020 /usr/bin/passwd
passwd命令有suid权限位
所有普通用户使用passwd的时候,就享受有root用户的权利,所以普通用户也可以使用passwd命令来修改自己密码
[root@localhost perm]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
因为cat命令没有suid权限位,而shadow文件没有r的权限
所以普通用户不能查看shadow文件,但是root用户可以
###############################
1.新建文件夹/perm
2.进入/perm 复制/etc/hosts文件到当前目录
3.修改hosts文件权限为,属主有读写执行,属组有读执行,其他人没有
[root@localhost perm]# chmod 750 hosts
4.新建cali目录,修改权限为任何人都有读写执行的权限
[root@localhost perm]# chmod 777 cali
5.修改cali的权限为只有属主有读写执行,其他任何人都没有
[root@localhost perm]# chmod 700 cali
6.修改cali的权限为所有人都没有读写执行的权限
[root@localhost perm]# chmod 000 cali
7.查看/etc/passwd和/etc/shadow文件的权限,然后复制到/perm目录下面
[root@localhost perm]# ll -d /etc/passwd
-rw-r--r--. 1 root root 3500 3月 17 19:19 /etc/passwd
[root@localhost perm]# ll -d /etc/shadow
----------. 1 root root 5032 3月 17 19:19 /etc/shadow
思考复制文件以后的问加你是否和原来文件的权限一样
8.查看/tmp目录的权限
[root@localhost perm]# ll -d /tmp
drwxrwxrwt. 39 root root 4096 3月 17 19:19 /tmp
9.查看/root目录的权限,查看/目录的权限
[root@localhost perm]# ll -d /root/
dr-xr-x---. 6 root root 244 3月 16 12:21 /root/
10.查看/home/目录所有目录的权限
所有用户家目录只有属主有读写执行的权限
[root@localhost perm]# ll /home
总用量 0
drwx------. 2 cali123 cali123 62 1月 17 21:41 cali123
drwx------. 2 califeng califeng 62 1月 17 21:41 califeng
drwx------. 2 huangtao nongda 62 3月 10 09:03 changde
drwx------. 2 feng2 feng2 62 2月 27 15:27 feng2
drwx------. 2 feng3 feng3 62 2月 27 15:27 feng3
drwx------. 2 feng4 feng4 62 2月 27 15:27 feng4
drwx------. 2 feng5 feng5 62 2月 27 15:27 feng5
drwx------. 2 kimi kimi 62 2月 5 10:48 kimi
drwx------. 2 kimi3 kimi3 62 2月 5 14:19 kimi3
drwx------. 2 liang liang 62 3月 9 10:31 liang
drwx------. 2 libai libai 62 3月 3 14:45 libai
drwx------. 4 lilanqing lilanqing 121 12月 26 11:24 lilanqing
drwx------. 2 liming liming 119 3月 15 15:36 liming
drwx------. 2 liudehua liudehua 62 2月 27 16:41 liudehua
drwx------. 2 shimengmeng shimengmeng 83 1月 27 22:06 shimengmeng
1进入/tmp目录
2.新建用户zhaomin,然后使用zhaomin登录,进入/tmp目录
3.新建目录guangmingdin
4.新建用户wuji
5.将guangmingdin目录属主修改为wuji所有属组修改为wudang所有
6.新建目录mingjiao/qiankundanuoyi
7.修改mingjiao目录以及子目录属主和属组都为wuji
[root@localhost tmp]# chown wuji:wudang guangmindin/
[root@localhost tmp]# ll -d guangmindin/
drwxrwxr-x. 2 wuji wudang 6 3月 17 19:18 guangmindin/
[root@localhost tmp]# chown -R wuji:wuji mingjiao/
[root@localhost tmp]# ll -d mingjiao/
drwxrwxr-x. 3 wuji wuji 28 3月 17 19:19 mingjiao/
[root@localhost tmp]# ll mingjiao/
总用量 0
drwxrwxr-x. 2 wuji wuji 6 3月 17 19:19 qiankundanuoyi