linux有什么文件权限操作?如何正确设置文件权限?

linux有3种人的权限,文件的所有者(属主)、文件属组用户和其他人。

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(1)

而root账号有什么权限呢?

root用户可以查看、修改、删除所有人的文件。Root用户还拥有控制一台计算机的完整权限。

文件和目录用什么来表示权限呢?

读取(r)、写入(w)和执行(x)

我们使用ls -l 命令来查看文件的属性包括哪些权限?

#ls -l /bin/login

-rwxr-xr-x 1 root root 38096 2022-06-01 8:00 /bin/login

这条命令列出来了/bin/login文件的主要属性信息。第一个字符表示文件类型,在上例中是“_”,表示是一个普通文件。接下来“rwxr-xr-x”就是3组权限位。这9个字符应该被这样断句:rwx、r-x、r-x, r表示可读,w表示可写,x表示可执行,分别表示属主(拥有读写执行权限)、属组和其他人所拥有(读和执行)的权限。如果某个权限被禁用,那么就用一个短画线“_”代替。由上面例子可以看出login文件的属主是root用户,而属组是root组。

文件权限后面的1表示的是该文件的链接数目。1表示该文件只有一个硬链接。38096表示的是文件的大小(38096字节)2022-06-01 8:00指最后修改日期,/bin/login 表示文件的完整路径。

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(2)

查看目录的属性可以使用什么参数呢?

可以用-ld

#ls -ld /etc/

不带文件名有什么参数呢?

ls -l命令可以列出当前目录下所有文件(不包含隐藏文件)的属性。

#ls -l

接下来我们来看一下八进制计法。每一组权限rwx在计算机中实际上占用了3位,每一位都有2种情况。例如对于写入位,只有“设置(r)”和“没有设置(-)”两种情况。这样计算机就可以使用二进制0和1来表示每一个权限位,其中0表示没有设置,而1表示设置。例如rwx就被表示为111,“-w-”表示为010等。在实际使用中,我们要记住1代表x、2代表w、4代表r,再进行加法。如rwx=4 2 1=7,r-x=4 0 1=5 --x=0 0 2=2 可以写成752

我们可以使用chmod命令来修改文件的权限例如:

#chmod 711 cxw

#ls -l cxw

-rwx- -x- -x 1 root root 61 2022-06-01 8:30 cxw

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(3)

用户主包括了文件属主(u)、文件属组(g)、其他人(o)和所有人(a),而权限则包括了读取(r)、写入(w)和执行(x).

如何增加属主对文件days的执行权限。

#chmod u x days

如何用chmod 同时指定所有人,删除所有人(属主、属组和其他人)对days的执行权限。

#chmod a-x days

如何通过“用户组=权限”的规则直接设置文件权限。同样应用于文件days,赋予属主和属主的读取/写入权限,其他用户读取权限。

#chmod ug=rw,o=r days

最后“用户组1=用户组2”,应用days文件,将其他人的权限设置为和属主的权限一样。

#chmod o=u days

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(4)

最后,我们要记住只有文件的属主和root用户才有权限修改文件的权限。

接下来我们来看一下更改文件的所有权chown和chgrp

#sudo chown cxw:root days //修改day的所有权

如果只需要更改文件的属主,那么可以省略参数“group”把days文件的属主更改为guest用户,保留其属组设置。

#sudo chown guest days

把days文件的属组更改为nogroup组,而保留其属主设置。

#sudo chown :nogroup days

改变一个目录及其下所有文件(和子目录)的所有权设置用-R参数

#sudo chown -R cxw iso/

#ls -l iso/

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(5)

Linux还有另外一个命令chgrp用于设置文件的属组。

#sudo chgrp nogrup days

chgrp也可以使用-R选项递归对一个目录实施设置。

#sudo chgrp root iso/

Chgrp命令实现了chown的一部分功能,但更直观告诉人们它要干什么。在实际工作中是否使用chgrp根据个人使用习惯。

在linux系统中文件可以拥有的权限(Linux有什么文件权限操作)(6)

,