1.简介
ch是change的简写 own是所有者意思,mod是修改的意思
chown
即: 改变文件/目录的所有者chmod
即: 改变文件/目录的访问权限
2. chown用法
简单案列:
-rw-r--r-- 1 root root 93 11月 23 10:56 du.sh
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing1
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing10
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing2
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing3
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing4
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing5
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing6
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing7
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing8
drwxr-xr-x 12 root root 4096 11月 23 10:39 qing9
[wang@Centos-root473791 wang]$ rm -rf qing1
rm: 无法删除"qing1/long5": 权限不够
这是因为qing1的文件所有者是属于root用户权限,这个时候需要赋权限才能删除
查看当前用户信息 id
,发现当前用户是wang,所属组也是wang
[wang@Centos-root473791 wang]$ id
uid=500(wang) gid=500(wang) 组=500(wang)
[wang@Centos-root473791 wang]$
如果直接使用wang的用户改是改不了的,因为它本身没操作权限,必须使用文件/目录的属主用户修改
[wang@Centos-root473791 wang]$ id
uid=500(wang) gid=500(wang) 组=500(wang)
[wang@Centos-root473791 wang]$ chown wang:wang qing1
chown: 正在更改"qing1" 的所有者: 不允许的操作
[wang@Centos-root473791 wang]$
切换到root用户,授予他权限,这里比如切换到root用户将文件夹qing2的所有者赋权限给wang用户
切换到wang用户之后,再对它删除,会发现还是没权限
这是因为,能够删除文件不是看文件的权限,是看目录的权限,是否有目录的写权限和执行权限
比如根目录下wang这个文件夹,属于wang这个用户
但是里面的文件全是属于root用户,没关系,照样删除
3. linux中目录与文件权限的意义
3.1.文件权限的意义
r:可以读这个文件的具体内容;
w:可以编辑这个文件的内容,包括增加删除文件的具体内容;
x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe、bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系。
3.2. 目录权限的意义
r:read contents in directory。表示具有读取目录结构列表的权限。
w:modify contents in directory。表示具有更改该目录结构列表的权限。如:新建文件与目录;删除已经存在的文件与目录(不论该文件的权限如何),将已经存在的文件或目录进行重命名,转移该目录内的文件、目录位置
x :access directory。目录的x代表用户能否进入该目录称为工作目录的用途。
4. drwxr-xr-x
代表的权限解释
linux里的drwxr-xr-x
代表的权限解释,以及linux中文件和目录的类型
权限的计算是除去第一位字母开始,权限都是三个符号为一组合,其中-表示没有这个权限
d 第 1 位表示文件类型: d是目录文件,l是链接文件,-是普通文件,p是管道
rwx 第 2-4 位表示这个文件的属主拥有的权限,r是读,w是写,x是执行。
r-x 第 5-7 位表示和这个文件属主所在同一个组的用户所具有的权限。
r-x 第 8-10 位表示其他用户所具有的权限。
举个列子:
drwxr-xr-x 10 wang wang 4096 3月 6 12:57 wang
表示wang是个目录,wang拥有读写执行的权限,和wang所在同一个group1组里的用户拥有只读和执行权限,剩下其他用户拥有只读和执行权限。
5. 查看用户用户组
5.1 查看所有用户 sudo cat /etc/shadow
[root@Centos-root473791 ~]# sudo cat /etc/shadow
root:$6$xG9L/uapGKFJ7pgG$0OPhw7upxGvK2R.krEJunpc8fk1xVgU.iO4.fKjaFdSqso2Xv.3LkLfvZ4QSom1PulF5.8w74IF1IQ1EuR4Hg0:18495:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
5.2 查看所有用户组 cat /etc/group
[root@Centos-root473791 ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
5.3 查看这个用户属于哪个用户组 groups xxx
[root@Centos-root473791 ~]# groups root
root : root
[root@Centos-root473791 ~]#
5.4 新建用户,然后加入某个组 sudo adduser xxx xxx
sudo adduser xxx
sudo adduser xxx xxx
5.5 删除用户,记得加 -r 递归 sudo userdel -r username
sudo userdel -r username
5.6 常用的案列:
5.6.1 更改文件的所有者:
chown wang abc.txt
文件 abc.txt 的所有者更改为wang。作为所有者,wang 可以使用 chmod 命令允许或拒绝其他用户访问 abc.txt。
5.6.2 更改目录的所有者:
chown -R wang:wang /tmp/abc
- R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
- v 显示chown命令所做的工作。
将目录 /tmp/abc 中所有文件的所有者和组更改为用户wang 和组wang
6. chmod 命令
- 用途:改变文件或目录的访问权限。
- 该命令有两种用法:
6.1 文字设定法
chmod [who] [+ | - | =] [mode] 文件名
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example
使同组和其他用户对文件 example 有读权限。
6.2 数字设定法
chmod [mode] 文件名
数字表示的属性的含义:
0 表示没有权限
1 表示可执行权限 x
2 表示可写权限 w
4 表示可读权限 r
然后将其相加。
所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)+1(可执行)=7(读/写/执行)。
sudo chmod -R 777
rwx = 111 = 7
rw- = 110 = 6
r-x = 101 = 5
r-- = 100 = 4
-wx = 011 = 3
-w- = 010 = 2
--x = 001 = 1
--- = 000 = 0