更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux chcon、chattr、charmap、chage命令的用法及解释

Linux chcon、chattr、charmap、chage命令的用法及解释

更新时间:2022-01-23 08:59:39浏览次数:352+次

以下为你详细解释chcon、chattr、charmap、chage命令的用法。

\

Linux chcon命令的用法及解释

Linux chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用--reference选项时,把指定文件的安全环境设置为与参考文件相同。chcon命令位于/usr/bin/chcon。

1、语法

chcon [选项]... 环境 文件...

chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件...

chcon [选项]... --reference=参考文件 文件...

2、选项

-h, --no-dereference:影响符号连接而非引用的文件。

    --reference=参考文件:使用指定参考文件的安全环境,而非指定值。

-R, --recursive:递归处理所有的文件及子目录。

-v, --verbose:为处理的所有文件显示诊断信息。

-u, --user=用户:设置指定用户的目标安全环境。

-r, --role=角色:设置指定角色的目标安全环境。

-t, --type=类型:设置指定类型的目标安全环境。

-l, --range=范围:设置指定范围的目标安全环境。

以下选项是在指定了-R选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效。

-H:如果命令行参数是一个通到目录的符号链接,则遍历符号链接。

-L:遍历每一个遇到的通到目录的符号链接。

-P:不遍历任何符号链接(默认)。

--help:显示此帮助信息并退出。

--version:显示版本信息并退出。

3、实例

如果你想把这个ftp共享给匿名用户的话,需要开启以下:

chcon -R -t public_content_t /var/ftp

如果你想让你设置的FTP目录可以上传文件的话,SELINUX需要设置:

chcon -t public_content_rw_t /var/ftp/incoming

允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页:

setsebool -P httpd_enable_homedirs 1

chcon -R -t httpd_sys_content_t ~user/public_html

如果你希望将samba目录共享给其他用户,你需要设置:

chcon -t samba_share_t /directory

共享rsync目录时:

chcon -t public_content_t /directories

Linux chattr命令的用法及解释

Linux chattr命令用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

a:让文件或目录仅供附加用途;

b:不更新文件或目录的最后存取时间;

c:将文件或目录压缩后存放;

d:将文件或目录排除在倾倒操作之外;

i:不得任意更动文件或目录;

s:保密性删除文件或目录;

S:即时更新文件或目录;

u:预防意外删除。

1、语法

chattr(选项)

2、选项

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

-v<版本编号>:设置文件或目录版本;

-V:显示指令执行过程;

+<属性>:开启文件或目录的该项属性;

-<属性>:关闭文件或目录的该项属性;

=<属性>:指定文件或目录的该项属性。

3、实例

用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/fstab

然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。

让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:

chattr +a /data1/user_act.log

Linux charmap命令的用法及解释

Linux charmap命令用于定义字符编码的字符符号。

1、描述

一个字符集描述(字符映射-charmap)定义了一个有效字符集合及它们的编码。所有被支持的字符集都应该把可移植字符集作为其一个子集。

2、语法

一个字符映射文件开始于一个头,它可能包含下面关键字:

<codeset>:其后给出编码集名字。

<mb_cur_max>:其后给出多字节字符的最大字节数。多字节字符目前还不支持。默认值是 1。

<mb_cur_min>:其后给出一个字符最少需要的字节个数。这个值必须小于或等于 mb_cur_max。如果没有指定,它的默认值是 mb_cur_max。

<escape_char>:其后是一个被用于转义的字符,转义字符用于标记本文件后需要特殊处理的字符。默认地址,它是反斜杠(\)。

<comment_char>:其后是一个在本文件后用于注释用的字符。默认值是井号(#)。

字符映射定义自身开始于第一列的关键字 CHARMAP。

下面行可能含有下面两种定义字符编码的形式:

<symbolic-name> <encoding> <comments>

这个形式直接定义一个字符和它的编码。

<symbolic-name>...<symbolic-name> <encoding> <comments>

这个形式定义一组编码。这只对多字节字符有用,但目前还没有实现。

字符映射文件的最后一行必须包含 END CHARMAP。

Linux chage命令的用法及解释

Linux chage命令是用来修改帐号与密码的有效期限。

1、语法

chage [选项] 用户名

2、选项

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

3、实例

可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准:

PASS_MAX_DAYS   99999

PASS_MIN_DAYS   0

PASS_MIN_LEN    5

PASS_WARN_AGE   7

当然在/etc/default/useradd可以找到如下2个参数进行设置:

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。

我的服务器root帐户密码策略信息如下:

[root@linux ~]# chage -l root

最近一次密码修改时间                    :3月 12, 2021

密码过期时间                            :从不

密码失效时间                           :从不

帐户过期时间                           :从不

两次改变密码之间相距的最小天数          :0

两次改变密码之间相距的最大天数          :99999

在密码过期之前警告的天数                :7

我可以通过如下命令修改我的密码过期时间:

[root@linux ~]# chage -M 60 root

[root@linux ~]# chage -l root

最近一次密码修改时间                          :3月 12, 2021

密码过期时间                                       :5月 11, 2023

密码失效时间                                       :从不

帐户过期时间                                       :从不

两次改变密码之间相距的最小天数          :0

两次改变密码之间相距的最大天数          :60

在密码过期之前警告的天数                    :9

然后通过如下命令设置密码失效时间:

[root@linux ~]# chage -I 5 root

[root@linux ~]# chage -l root

最近一次密码修改时间                          :3月 12, 2021

密码过期时间                                  :5月 11, 2023

密码失效时间                                  :5月 16, 2023

帐户过期时间                                  :从不

两次改变密码之间相距的最小天数          :0

两次改变密码之间相距的最大天数          :60

在密码过期之前警告的天数                 :9

从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。