本次记录以下命令如chmod, chown, chgrp, unmask的使用格式、常用选项及它们有哪些使用实例等。

  • 权限管理相关命令

1. chgrp改变文件所属用户组命令

改变指定文件所属的用户组,其中组名可以是用户组id,也可以是用户组的组名。如果用户不是该文件的文件主或超级用户,则不能改变该文件的组。

改变文件所属用户组命令格式:

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

OPTION:

-R 递归处理,将指令目录下的所有文件及子目录一并处理

-v 显示指令执行过程

[root@www ~]# chgrp -Rv gentoo /usr/test

"/usr/test/123/456/789" 的所属组已更改为gentoo

"/usr/test/123/456" 的所属组已更改为gentoo

"/usr/test/123" 的所属组已更改为gentoo

"/usr/test" 的所属组已更改为gentoo

[root@www ~]# ll -R /usr/test

/usr/test:

总用量 4

drwxrwxr-x. 3 Allen gentoo 4096 9月 3 20:39 123

/usr/test/123:

总用量 4

drwxrwxr-x. 3 Allen gentoo 4096 9月 3 20:39 456

/usr/test/123/456:

总用量 4

drwxrwxr-x. 2 Allen gentoo 4096 9月 3 20:39 789

/usr/test/123/456/789:

总用量 0

--reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

[root@www lab]# ll abc ttt

-rw-rw-rw-. 1 root Allen 0 9月 3 20:52 abc

-rw-r--r--. 1 root root 0 9月 3 20:52 ttt

[root@www lab]# chgrp --reference=./abc ttt

[root@www lab]# ll abc ttt

-rw-rw-rw-. 1 root Allen 0 9月 3 20:52 abc

-rw-r--r--. 1 root Allen 0 9月 3 20:52 ttt

2. chown改变文件所有者或所属工作组命令

改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或改变文件所属的组。用户可以是用户或者用户ID,用户组可以是组名或组ID。

改变文件所有者或所属工作组命令格式:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...

OPTION:

-R 递归处理,将指令目录下的所有文件及子目录一并处理

-v 显示指令执行过程

[root@www lab]# ll abc ttt

-rw-rw-rw-. 1 root Allen 0 9月 3 20:52 abc

-rw-r--r--. 1 root Allen 0 9月 3 20:52 ttt

[root@www lab]# chown -v gentoo abc ttt

"abc" 的所有者已更改为gentoo

"ttt" 的所有者已更改为gentoo

[root@www lab]# ll abc ttt

-rw-rw-rw-. 1 gentoo Allen 0 9月 3 20:52 abc

-rw-r--r--. 1 gentoo Allen 0 9月 3 20:52 ttt

--reference 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同

[root@www lab]# chown Oracle:agetest abc ttt

[root@www lab]# ll abc ttt

-rw-rw-rw-. 1 Oracle agetest 0 9月 3 20:52 abc

-rw-r--r--. 1 Oracle agetest 0 9月 3 20:52 ttt

3. chmod改变文件权限命令

变更文件或目录的权限。设置方式采用文字或数据代号皆可。

改变文件权限命令格式:

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

OPTION:

-R 递归处理,将指令目录下的所有文件及子目录一并处理

-v 显示指令执行过程

[root@www lab]# ll ttt

-rw-r--r--. 1 Oracle agetest 0 9月 3 20:52 ttt

[root@www lab]# chmod -v 755 ttt

"ttt" 的权限模式已更改为0755 (rwxr-xr-x)

[root@www lab]# ll ttt

-rwxr-xr-x. 1 Oracle agetest 0 9月 3 20:52 ttt

--reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

4. umask设置文件默认权限命令

设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

基于安全考虑,不能有执行权限

设置限制文件默认权限命令格式:umask [OPTION] [ARGS]

OPTION:

-S 以符号方式输出权限掩码

[root@www lab]# umask -S

u=rwx,g=rx,o=rx

默认root的遮罩码:0022

默认普通用户的遮罩码:0002

普通文件初始化权限为:666

目录文件初始化权限为:777

新建文件时(-rw—rw--rw-)-(-----w--w-)==>-rw-r--r—

新建目录时(drwxrwxrwx)- (d----w--w-)==>drwxr-xr-x

[root@www lab]# touch jjj

[root@www lab]# ll jjj

-rw-r--r--. 1 root root 0 9月 3 23:38 jjj

如果希望umask设置,使得其他用户可以访问jjj文件的话

[root@www lab]# umask 0

[root@www lab]# umask

0000

[root@www lab]# touch jjj

[root@www lab]# ll jjj

-rw-rw-rw-. 1 root root 0 9月 4 09:22 jjj