Linux - 用户权限-chmod-chown-chgrp

目录

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:


1.1权限

用户和组的主要作用是方便对资源的管控

Linux - 用户权限-chmod-chown-chgrp_第1张图片

用户和组 -》 uid gid 嵌入到进程里面 --》 进程访问文件 --》 内核会检查进程uid和gid对比文件允许的用户和组,

1.2访问权限:

可读(read):允许查看文件内容,显示目录列表

可写(write):允许修改文件内容,允许在目录中新建,移动,删除文件或者子目录

可执行(execute):允许运行程序,切换目录

r --》 read

文件:cat,vim 只是查看文件里面的内容

文件夹:ls能查看文件夹里面有哪些文件和文件夹

w --》write

文件 : vim,重定向 --》改变文件的内容

删除文件夹里面的文件或者文件夹,需要看当前所在文件夹的权限,是否有写的权限,不然无法删除

x --》 execute

文件 : 能够执行文件里面的命令

文件夹:能够进入文件夹 cd

示例:新建一个文本文件,可以看到,对于属主它有 rw 的权限,对于属组和其他人只有r的权限

Linux - 用户权限-chmod-chown-chgrp_第2张图片

###############################

1.2.1 r : 可读权限

现在我们切换一个普通用户登录:

我们可以进行cat和vim操作,也就是可以进行r(读操作)

Linux - 用户权限-chmod-chown-chgrp_第3张图片

但是普通用户是没有w(写权限)的

当我们vim这个文件的时候,它会提示对于普通用户是一个只读文件,不能写入

###############################

1.2.2 w 可读权限

现在使用root用户新建一个目录baodian,在目录下面新建一个文件jianpu

然后使用chmod命令将文件其他人的rx权限都去除

Linux - 用户权限-chmod-chown-chgrp_第4张图片

再使用普通用户登录,可以看到r(读)和x(执行)权限都没有了,

Linux - 用户权限-chmod-chown-chgrp_第5张图片

###############################

1.2.3 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

#########################################

1.3归属(所有权):

文件拥有者(user):拥有该文件或者目录的用户账号

属组(group):拥有该文件或目录的组账号

其他人(others):除了属主和属组的其他人

Linux - 用户权限-chmod-chown-chgrp_第6张图片

2.1 chmod命令

root用户和普通用户都可以使用chmod命令

格式:

2.1.1 字符串格式:

chmod ++ [ugoa] + [+-=] + [rwx] + 文件名

u表示 属主

g代表属组

o代表其他人

a代表所有人

Linux - 用户权限-chmod-chown-chgrp_第7张图片

Linux - 用户权限-chmod-chown-chgrp_第8张图片

2.1.2还可以用等号的方式来加减权限

Linux - 用户权限-chmod-chown-chgrp_第9张图片

2.1.3 g=-,o=-用法,去除所有权限

Linux - 用户权限-chmod-chown-chgrp_第10张图片

2.1.4 -R选项,递归修改指定目录下面所有文件和子目录的权限

Linux - 用户权限-chmod-chown-chgrp_第11张图片

 ###############################

2.2 格式二:数字形式

格式:chmod nnn 文件或者目录

Linux - 用户权限-chmod-chown-chgrp_第12张图片

Linux - 用户权限-chmod-chown-chgrp_第13张图片

######################################

3.1 chown命令

作用:更改属主和属组的命令

文件是哪个用户创建的就是属于这个用户的

chown命令使用者必须是root用户

用户和组必须存在

格式:chown 属主 文件

chown :属组 文件

chown 属主 :属组 文件

常用选项:-R 递归修改指定目录下面所有文件,子目录的归属

3.2修改属主和属组

Linux - 用户权限-chmod-chown-chgrp_第14张图片

3.3单独修改属组

Linux - 用户权限-chmod-chown-chgrp_第15张图片

3.4单独修改属主

Linux - 用户权限-chmod-chown-chgrp_第16张图片

3.5-R递归修改

Linux - 用户权限-chmod-chown-chgrp_第17张图片

 ###############################

4.1chgrp命令

修改文件的属组

格式:chgrp 属组 文件

必须是root或者是文件的所有者

必须是新组的成员

-R 递归修改指定目录下面所有文件和子目录

Linux - 用户权限-chmod-chown-chgrp_第18张图片

 ###############################

5.1chomd chown chgrp的区别

操作 可以执行的用户

chmod root和文件所有者

chgrp root和文件所有者(必须是组成员)

chown 只有root

###############################

6.1 普通用户如果是文件所有者可以使用chown命令吗?

首先将文件属主和属组都给liming,然后登陆liming

Linux - 用户权限-chmod-chown-chgrp_第19张图片

然后修改属主和属组为user01

发现即使文件属主是liming,但是我们还是不能修改它的属主

chown命令只能root用户使用

 ###############################

7.1默认权限

umask 设定文件创建的初始权限
在内核级别,文件的初始权限是666
在内核级别,文件夹的初始权限是777
文件创建的权限=666-umask
文件夹创建的权限=777-umask

用umask命令控制默认权限,临时有效

umask的值,其实用来和内核里面的文件权限进行运算得到用户的默认新建的文件或者文件夹的权限。

查看umask的值:

###############################

7.2普通用户默认umask值

[liming@localhost 3yue17]$ umask

0002

[liming@localhost perm]$ umask -S
u=rwx,g=rwx,o=rx
###############################

7.3root用户默认umask值

[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

###############################

7.3.1  为什么root用户和普通用户创建文件或目录的默认权限不一样?

因为配置文件里面对于两种用户的设置不同

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

 
7.3.2  如果要修改某个用户的umask,永久修改
在家目录 .bashrc 下添加umask
/etc/profile  /etc/bashrc 基本不要更改

###############################

7.4指定umask值:

umask 0077

直接umask 后面接 要修改的值就可以了

但是一般不推荐修改系统默认umask值

###############################

7.5/etc/profile 文件里面 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

###############################

8.1实现zhangwuji登录系统后umask是002,并且永久生效

直接修改zhangwuji家目录下面的.bash_profile 文件就可以了

vim ~zhangwuji/.bash_profile

###############################

9.1  /etc/shadow文件权限:

[root@localhost perm]# ll -d /etc/shadow

----------. 1 root root 5032 3月 17 19:19 /etc/shadow

shadow文件的权限是任何用户都不能去读写执行,当然root用户是可以的,

9.2 为什么普通用户可以修改自己的密码?

[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命令来修改自己密码

9.3为什么普通用户不可以看shadow文件?

[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用户可以

###############################

10.1 练习1

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

10.2练习2:

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

你可能感兴趣的:(Linux笔记,linux,运维,服务器)