【linux命令讲解大全】027.Linux权限管理详解

2024-03-02 11:34:39 浏览数 (1)

bmodinfo

显示给定模块的详细信息

补充说明

bmodinfo命令用于显示给定模块的详细信息。

语法

代码语言:javascript复制
bmodinfo [选项] [参数]

选项

  • -a:显示模块作者
  • -d:显示模块的描述信息
  • -l:显示模块的许可信息
  • -p:显示模块的参数信息
  • -n:显示模块对应的文字信息
  • -0:用ASCII码的0字符分割字段值,而不使用新行

参数

模块名:要显示详细信息的模块名称

实例

显示sg模块的信息:

代码语言:javascript复制
[root@localhost ~]# modinfo sg
filename: /lib/modules/2.6.9-42.ELsmp/kernel/drivers/scsi/sg.ko
author: Douglas Gilbert
description: SCSI generic (sg) driver
license: GPL
version: 3.5.31 B0B0CB1BB59F0669A1F0D6B
parm: def_reserved_size: size of buffer reserved for each fd
parm: allow_dio: allow direct I/O (default: 0 (disallow))
alias: char-major-21-*
vermagic: 2.6.9-42.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
depends: scsi_mod

chmod

用来变更文件或目录的权限

概要

代码语言:javascript复制
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

主要用途

通过符号组合的方式更改目标文件或目录的权限。 通过八进制数的方式更改目标文件或目录的权限。 通过参考文件的权限来更改目标文件或目录的权限。

参数

  • mode:八进制数或符号组合
  • file:指定要更改权限的一到多个文件

选项

  • -c, --changes:当文件的权限更改时输出操作信息
  • --no-preserve-root:不将’/'特殊化处理,默认选项
  • --preserve-root:不能在根目录下递归操作
  • -f, --silent, --quiet:抑制多数错误消息的输出
  • -v, --verbose:无论文件是否更改了权限,一律输出操作信息
  • --reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限
  • -R, --recursive:对目录以及目录下的文件递归执行更改权限操作
  • --help:显示帮助信息并退出
  • --version:显示版本信息并退出

返回值

返回状态为成功除非给出了非法选项或非法参数。

例子

参考man chmod文档的DESCRIPTION段落得知:

  • u符号代表当前用户
  • g符号代表和当前用户在同一个组的用户,以下简称组用户
  • o符号代表其他用户
  • a符号代表所有用户
  • r符号代表读权限以及八进制数4
  • w符号代表写权限以及八进制数2
  • x符号代表执行权限以及八进制数1
  • X符号代表如果目标文件是可执行文件或目录,可给其设置可执行权限
  • s符号代表设置权限suid和sgid,使用权限组合u s设定文件的用户的ID位,g s设置组用户ID位
  • t符号代表只有目录或文件的所有者才可以删除目录下的文件
  • 符号代表添加目标用户相应的权限
  • -符号代表删除目标用户相应的权限
  • =符号代表添加目标用户相应的权限,删除未提到的权限

linux文件的用户权限说明:

代码语言:javascript复制
# 查看当前目录(包含隐藏文件)的长格式
ls -la
-rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules

# 第1位如果是d则代表目录,是-则代表普通文件
# 更多详情请参阅info coreutils 'ls invocation'(ls命令的info文档)的'-l'选项部分
# 第2到4位代表当前用户的权限
# 第5到7位代表组用户的权限
# 第8到10位代表其他用户的权限

# 添加组用户的写权限
chmod g w ./test.log
# 删除其他用户的所有权限
chmod o= ./test.log
# 使得所有用户都没有写权限
chmod a-w ./test.log
# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限
chmod u=rwx,g=rw,o=r ./test.log
# 等价的八进制数表示
chmod 764 ./test.log
# 将目录以及目录下的文件都设置为所有用户拥有读写权限
# 注意,使用'-R'选项一定要保留当前用户的执行和读取权限,否则会报错!
chmod -R a=rw ./testdir/
# 根据其他文件的权限设置文件权限
chmod --reference=./1.log ./test.log

注意

该命令是GNU coreutils包中的命令,相关的帮助信息请查看man chmodinfo coreutils 'chmod invocation'

符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

使用-R选项一定要保留当前用户的执行和读取权限,否则会报错!

0 人点赞