1. chmod命令
1.1 一个Linux目录或文件,都有一个所有者和所属组。使用ll命令查看一个文件的详细信息,如图所示:
-rw-r--r--,第一位表示文件类型,这个在前面已经讲过;
后面的这些字符,每3位组成一个权限位,分别对应所有者、所属组和其他用户。
r代表可读,w代表可写,x代表可执行。
为了方便更改文件的权限,Linux使用数字代替rwx,规则为:r=4,w=2,x=1,-=0。
如上图中,所有者的权限为可读可写,所属组和其他用户的权限为可读。
1.2 chmod命令
chmod命令可更改用户对文件或目录的读写执行权限,其格式为:chmod aaa【文件名】,这里的aaa指的是数字。
比如将txt文件的权限改为可读可写可执行,即每一位的权限为:r+w+x=7;
也可使用-R选项,级联更改权限;
可以看到/tmp/test目录和txt文件的权限都改为了655(rw-r-xr-x)。
也有人说,使用数字更改权限有点麻烦,还得先算好权限对应的数字,Linux系统也支持使用rwx的方式更改权限。可以使用u、g、o来分别表示user、group、others的属性,用a代表all。
在用这种方式更改权限位时,只用写出要更改的权限位。
也可以针对u、g、o来减少它们的某个权限;
2. chown命令
chown是change owner的缩写,可以更改文件的所有者,
格式为:chown 【-R】账户名 文件名,
或者为:chown 【-R】账户名:组名 文件名。
使用-R选项,级联更改文件的所有者。
级联更改文件的所有者和所属组。
3. umask命令
创建一个目录,查看它的默认权限,可以看到新创建的目录权限为755;
创建一个文件,查看它的默认权限,可以看到新创建的文件权限为644。
这个是因为umask命令在起作用,输入umask命令,查看执行结果,可以看到执行结果为:0022;
[[email protected] ~]# umask
0022
umask命令用于改变文件的默认权限,建立目录的默认权限为777,建立文件的默认权限为666.而umask命令就是默认权限需要减去的权限。
umask的值是可以自定义的,将其值改为002,重新创建文件和目录,查看它们的权限,
可以看到目录的权限变为775,文件的权限变为664。为了不影响使用,将umask的值改为默认的022。
通过umask的值,计算文件或目录的默认权限时,并不是去将数字直接进行相减,而是要换算为rwx去进行每一位的相加减。
比如umask的的值为033时,文件的默认权限,使用数字相减,得到的值为633,
实际上则为rwxrwxrwx - ----wr-wr = rwx-r--r- = 644。
4. 命令chattr和命令lsattr
4.1 chattr命令
chattr命令的格式为:chattr【+-=】【选项】【文件名或目录名】,+、-、=分别表示增加、减少和设定,
各个选项的含义如下:
A:增加该属性后,表示文件或目录的atime将不可修改;
s:增加该属性后,会将数据同步写入磁盘中;
a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性;
c:增加该属性后,表示自动压缩该文件,读取时会自动解压;
i:增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据。
给/tmp/test1目录增加i权限后,即使是root用户,也不能对其进行操作。
取消i权限后,可对该目录进行创建文件、创建目录、删除等操作。
4.2 lsattr命令
lsattr命令,用于读取文件或者目录的特殊权限,格式为:lsattr【-aR】【文件名或目录名】。
-a:类似于ls的-a选项,将隐藏文件一同列出;
-R:连同子目录的数据一同列出。
创建一些文件,并增加一些隐藏权限;
使用lsattr -aR命令,查看/tmp/test2/的隐藏属性。