Relative Content

LINUX MANUAL PAGES

category

「quotaon(8)」-

打开或关闭文件系统的限额
命令语法格式
quotaon [ -vugfp ] [ -F format-name ] filesystem… quotaon [ -avugPfp ] [ -F format-name ]
quotaoff [ -vugPp ] [ -x state ] filesystem… quotaoff [ -avugp ]
命令描述
quotaon
命令quotaon向系统宣布在一个或多个文件系统上启用磁盘配额。文件系统配额文件必须存在于指定文件系统的根目录中,并命名为aquota.user(对于版本2用户配额),quota.user(对于版本1用户配额),aquota.group(对于版本2组配额)或quota.group(版本1组配额)。
而XFS文件系统是一种特殊情况 — XFS将配额信息视为文件系统元数据,并使用日记功能提供更高级别的一致性保证。在XFS磁盘配额系统中有两个组件:”记帐“;”强制限制“。 XFS文件系统要求在挂载时打开配额”记帐“。在配额”记账“已打开后,可以在XFS文件系统上启用和禁用”强制限制“。默认设置是启用”记账“和”强制限制“。
XFS配额实现不会在用户可见文件中维护配额信息,而是在内部存储此信息。
quotaoff
命令quotaoff向系统宣布在指定的文件系统应该关闭任何磁盘配额。
命令支持的选项及含义
quotaon
-F, –format=format-name 报告指定格式的配额(即不执行格式自动检测)。可能的format-name为:

vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)

-a, –all 所有带有配额功能的在/etc/fstab中自动挂载(无noauto选项)的非NFS文件系统,都将打开其配额。这通常在启动时使用以启用配额。
-v, –verbose 显示打开配额的每个文件系统的消息。
-u, –user 操纵用户配额。 这是默认值。
-g, –group 操纵组配额。
-P, –project 操纵项目配额。
-p, –print-state 只打印配额的打印状态(即配额是打开还是关闭),而不是配额。
-x, –xfs-command enforce 切换XFS文件系统的”强制限制“。 这是任何XFS文件系统的默认操作。 此选项仅适用于XFS,并且[……]

READ MORE

「quotastats(8)」-

查询配额的统计信息
命令语法格式
quotastats
命令描述
命令quotastats查询内核的配额统计信息。它显示:

Supported kernel quota version
Number of dquot lookups
Number of dquot drops
Number of dquot reads
Number of dquot writes
Number of quotafile syncs
Number of dquot cache hits
Number of allocated dquots
Number of free dquots
Number of in use dquot entries (user/group)

相关手册
quota(1)
参考文献

man 8 quotastats, Version 4.04-2+b1

更新日志

12/02/2018 创建文章[……]

READ MORE

「repquota(8)」-

总结文件系统的配额
命令语法格式
repquota [ -vspiugP ] [ -c | -C ] [ -t | -n ] [ -F format-name ] filesystem…
repquota [ -avtpsiugP ] [ -c | -C ] [ -t | -n ] [ -F format-name ]
命令描述
命令repquota打印指定文件系统的磁盘使用情况和配额摘要。对于每个用户,打印当前文件数和空间量(以千字节为单位),以及使用edquota(8)或setquota(8)设置的任何配额限制。在第二列中,repquota打印两个字符,标记超出了哪些限制。如果用户超过他的空间软限制,或者在未设置软限制的情况下达到他的空间硬限制,则第一个字符是’+’,否则打印的字符是’-‘。第二个字符类似地表示inode使用状态。
命令repquota必须将所有用户/组/项目的ID转换为名称(除非指定了选项-n),因此打印所有信息可能需要一段时间。为了尽可能快地进行翻译,repquota尝试检测(通过读取/etc/nsswitch.conf)条目是存储在标准纯文本文件中还是存储在数据库中,并分别翻译1024个名称或每个名称的块。您可以通过-c或-C选项覆盖此自动检测。
命令支持的选项及含义
-a, –all 报告在/etc/mtab中指示的所有带有配额的、读写的文件系统。
-v, –verbose 报告所有配额,即使没有使用。 关于quotafile信息也更加冗长。
-c, –cache 通过扫描所有用户,缓存条目来报告和转换uid/gids到大块名称(默认)。 使用/etc/passwd文件时,这是很好的(快速)行为。
-C, –no-cache 翻译单个条目。 当用户存储在数据库中时,这会更快。
-t, –truncate-names 截断超过9个字符的用户/组名称。 当存在这样的名称时,这导致更好的输出。
-n, –no-names 不要将UID/GID解析为名称。 这可以加快印刷速度。
-s, –human-readable 尝试以比默认单位更合适的单位报告已用空间、使用的inode数量和限制。
-p, –raw-grace 当用户处于宽限期时,报告自他的宽限时间用完(或已用完)以来的时间(以秒为单位)。没有宽限时间生效时,字段为“0”。 在通过脚本解析输出时,这尤其有用。
-i, –no-autofs 忽略自动挂载程序挂载的挂载点。
-F, –format=format-name 报告指定格式的配额(即不执行格式自动检测)。可能的format-name为:

vfsold,具有1[……]

READ MORE

「setquota(8)」-

设置磁盘配额
命令语法格式
setquota [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] name block-softlimit block-hardlimit inode-softlimit inode-hardlimit -a | filesystem…
setquota [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] [ -p protoname ] name -a | filesystem…
setquota -b [ -rm ] [ -u | -g | -P ] [ -F quotaformat ] -a | filesystem…
setquota -t [ -u | -g | -P ] [ -F quotaformat ] block-grace inode-grace -a | filesystem…
setquota -T [ -u | -g | -P ] [ -F quotaformat ] name block-grace inode-grace -a | filesystem…
命令描述
命令setquota是一个命令行配额编辑器。 可以在命令行上指定文件系统、用户/组/项目名称、文件系统的新配额。 请注意,如果在用户/组/项目名称的位置给出了一个数字,则将其视为UID/GID/项目ID。
命令行选项
-r, –remote 编辑非本地配额,使用远程服务器上的rpc.rquotad来设置配额。仅当配置工具编译时启用了”对通过RPC设置配额“的支持时,此选项才可用。
-m, –no-mixed-pathnames 目前,NFSv4挂载点的路径名”在路径中没有前导斜杠的情况下“发送。rpc.rquotad使用它来识别NFSv4挂载,并正确地将NFS文件系统的伪序列预先添加到路径中。
如果指定此选项,edquota将始终发送带有前导斜杠的路径。 这可能有助于遗留原因,但请注意,如果您使用新的rpc.rquotad,RPC上的配额将停止工作。
-F, –format=quotaformat 编辑指定格式的配额(即不执行格式自动检测)。可能的format-name为:

vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)

-u, –user 编辑用户配额。 这是默认值。[……]

READ MORE

「rpm」- 包管理器命令

常用命令
查看某个包的信息:

rpm -q -i filebeat

查看所有已经安装的软件包:

rpm -qa

这个命令有一个神奇的地方,同一个选项可能有多个含义: 1)rpm -i – 该命令中的-i是–install的缩写,表示安装。 2)rpm -q -i – 该命令中的-i是–info的缩写,表示显示包的信息。
SYNOPSIS

QUERYING AND VERIFYING PACKAGES:

rpm {-q|–query} [select-options] [query-options]

rpm {-V|–verify} [select-options] [verify-options]

rpm –import PUBKEY …

rpm {-K|–checksig} [–nosignature] [–nodigest] PACKAGE_FILE …

INSTALLING, UPGRADING, AND REMOVING PACKAGES:

rpm {-i|–install} [install-options] PACKAGE_FILE …

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

MISCELLANEOUS:

rpm {–initdb|–rebuilddb}

rpm {–addsign|–resign} PACKAGE_FILE …

rpm {–querytags|–showrc}

rpm {–setperms|–setugids} PACKAGE_NAME …

select-options
[PACKAGE_NAME] [-a,–all] [-f,–file FILE]
[-g,–group GROUP] {-p,–package PACKAGE_FILE]
[–fileid ID] [–hdrid SHA1] [–pkgid MD5] [–tid TID]
[–querybynumber HDRNUM] [–triggeredby PACKAGE_NAME]
[[……]

READ MORE

「rsync」

安装方法

// macOS

# brew install rsync

安装可执行程序
rsync rsync是rcp和scp的替代品,具有更多功能的。它使用“rsync算法”,提供了一种非常快速的同步远程文件的方法,通过仅发送文件中的差异来同步文件,而且在链路一端的文件不需要必须存在。
注意事项
必须同时在本地和远程进行安装rsync。rsync命令即提供了服务端功能(使用–daemon选项),也提供了客户端功能(不使用–daemon选项时)。
总结
本章节中介绍了rsync的安装,包括从源码安装、安装二进制包等等。接下来就要介绍RSYNC服务搭建,不然我们也没有办法演示rsync的文件推送和拉去。
参考文献

BFLS/rsync-3.1.2[……]

READ MORE

「rsync(1)」- 一种快速,多功能,远程(和本地)文件复制工具

常用命令
通过 SSH 进行文件同步,而无需远程部署 rsync 服务:

rsync -avz -e ‘ssh -i /path/to/id_rsa’ /path/to/src root@hostname:/path/to/dest

快速完成文件同步:

rsync -r –size-only /src /dest # 即,文件大小不同,则进行同步

同步文件,但是无需同步时间:

rsync -r –no-times /src /dest

如果想并行传输以充分利用带宽,建议使用 parallel 或 xargs 等命令:

ls /srv/mail | xargs -n1 -P4 -I% rsync -Pa % myserver.com:/srv/mail/

补充说明: 1)目前,暂时无法指定 rsync 同步文件的顺序。
语法格式

Local:
rsync [OPTION…] SRC… [DEST]

Access via remote shell:
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

Access via rsync daemon:
Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST

仅使用一个SRC参数,且没有DEST参数的用法,将列出源文件,而不是复制。
命令描述
Rsync是一个快速、灵活的文件复制工具。通过远程Shell或者Rsync守护进程,可以从另一台主机上拉取文件,或者向另一台主机发送文件,也可以在本地进行文件复制。Rsync提供了大量的选项用于控制其行为的各个方面,并可以对要复制的文件进行非常灵活的控制。它以差异传输算法著称,该算法发送源文件与目的文件的差异,以此来减少在网络上发送的数据量。Rsync广泛的用于备份、镜像及作为一种改进的日常使用copy命令。
Rsync使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间发生变化的文件。 当”快速检查“表明不需要更[……]

READ MORE

「rsyncd.conf」- 配置选项详解

以服务模式运行「rsync」(LAUNCHING THE RSYNC DAEMON)
以服务模式启动rsync是通过在rsync启动时指定–daemon选项。
如果要使用chroot、绑定1024以下的端口号、设置文件的所有权,则rsync守护进程必须以root权限运行。否则的话,只需要有读写相应的数据、日志、锁定文件的权限就可以了。
可以使用inetd来运行rsync,也可以以独立守护进程来运行rsync,或者通过远程shell来访问rsync。如果以守护进程的方式启动rsync,只需要使用”rsync –daemon”命令。
当通过inetd来运行rsync时 首先,需要在/etc/services中配置如下行:

rsync 873/tcp

然后,需要在/etc/inetd.conf配置如下行:

rsync stream tcp nowait root /usr/bin/rsync rsyncd –daemon

最后,向inetd发送HUP信号来告诉inetd重新读取配置文件。
注意:你不应该向rsync守护进程发送HUP信号来强制rsync重新读取rsyncd.conf配置文件。该文件在每个客户端连接中会重新读取。
仅用于全局参数
文件中的第一个参数([module]头之前)是全局参数。 Rsync还允许使用“[global]”模块名称来指示一个或多个全局参数节的开始(global必须小写)。
您也可以在配置文件的全局部分包含任何模块参数,在这种情况下,提供的值将覆盖该参数的默认值。
您可以在参数值中使用对环境变量的引用。字符串参数将尽可能延迟%VAR%引用(当在程序中使用该字符串时),从而允许在rsync连接时使用设置的变量,例如RSYNC_USER_NAME。从配置文件读取时,非字符串参数(如真/假设置)会被展开。如果环境中不存在变量,或者一系列字符不是有效的引用(例如未配对的百分号),则原始字符将保持不变。这有助于向后兼容性和安全性(例如,将不存在的%VAR%扩展为路径中的空字符串可能会导致非常不安全的路径)。将%插入值的最安全方法是使用%%。
motd file 该选项允许你指定一个“”message of the day”“来向每个连接上的客户端展示。类似于Linux中的/etc/motd的功能。 默认值:无默认值。 通常是一些站点信息或者一些其他内容。可以在命令行选项中使用–dparam=motdfile=FILE来覆盖该选项的设置。
pid file 该参数告诉rsync守护进程将PID写入指定的文件中。如果文件已经存在,rsync守护进程将终止,而不是覆盖文件。 可以在[……]

READ MORE

「在Samba中,包含的可执行程序」

在「Server端」使用的命令程序
samba is a server to provide AD and SMB/CIFS services to clients.
samba_dnsupdate is used to update our DNS names using TSIG-GSS.
samba_spnupdate is a script to update the servicePrincipalName names from spn_update_list.
samba_upgradedns is a Unix SMB/CIFS implementation.
nmbd is the Samba NetBIOS name server.
smbd is the main Samba daemon which provides SMB/CIFS services to clients.
smbstatus reports current Samba connections.
smbcontrol is used to control running smbd, nmbd and winbindd daemons.
sharesec manipulates share ACL permissions on SMB file shares.
oLschema2ldif converts LDAP schema’s to LDB-compatible LDIF.
pdbedit is a tool used to manage the SAM database.
eventlogadm is used to write records to eventlogs from STDIN, add the specified source and DLL eventlog registry entries and display the active eventlog names (from smb.conf).
mvxattr is used to recursively rename extended attributes.
profiles is a utility that reports and changes SIDs in Windows registry files. It currently only supports Windows NT.
软件包「smbclient」中包含的命令;有关「SMB」/「CIFS」的客户端命令;
smbclient SMB/CIFS的访问工具,类似于ftp命令。 在CentOS 6.9中,[……]

READ MORE

「nmblookup」

nmblookup,NetBIOS over TCP/IP的Client用于查找NetBIOS Name。
命令行语法格式(SYNOPSIS)
nmblookup [-M|–master-browser] [-R|–recursion] [-S|–status] [-r|–root-port] [-A|–lookup-by-ip]

[-B|–broadcast <broadcast address>] [-U|–unicast <unicast address>] [-d <debug level>]
[-s <smb config file>] [-i <NetBIOS scope>] [-T|–translate] [-f|–flags] {name}

命令简述(DESCRIPTION)
This tool is part of the samba(7) suite.
nmblookup is used to query NetBIOS names and map them to IP addresses in a network using NetBIOS over TCP/IP queries. The options allow the name queries to be directed at a particular IP broadcast area or to a particular machine. All queries are done over UDP.
命令支持的选项及含义(OPTIONS)
-M|–master-browser Searches for a master browser by looking up the NetBIOS name with a type of 0x1d. If

name is “-” then it does a lookup on the special name MSBROWSE. Please note that in order to use the
name “-“, you need to make sure “-” isn’t parsed as an argument, e.g. use : nmblookup -M — -.

-R|–recursion Set the recursion desired bit in the packet to do a recursive lookup. This is used when sending a name query to a mach[……]

READ MORE

「smbclient」

smbclient,用于访问Server上的资源的像ftp一样的客户端。
命令行语法格式(SYNOPSIS)
smbclient [-b <buffer size>] [-d debuglevel] [-e] [-L <netbios name>] [-U username] [-I destinationIP] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-C] [-g] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-t <per-operation timeout in seconds>] [-k] [-P] [-c <command>]
smbclient {servicename} [password] [-b <buffer size>] [-d debuglevel] [-e] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-C] [-g] [-l log-basename] [-I destinationIP] [-E] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-t <per-operation timeout in seconds>] [-T<c|x>IXFqgbNan] [-k]
命令简述(DESCRIPTION)
该命令是samba(7)套件的一部分。
smbclient用于与SMB/CIFS Server进行“交流”。它提供了类似于终端下的ftp(1)程序的界面。支持的操作包括从服务器获取文件到本地机器,将文件从本地机器上传到服务器,从服务器检索目录信息等等。
命令支持的选项及含义(OPTIONS)
servicename servicename是要在server上使用的service的描述。servicename采用//server/service的形式:其中server是提供所需服务的SMB/CIFS Server的NetBIOS Name;se[……]

READ MORE

「sed」

sed,属于sed软件包,这个软件包里没有其他的命令。
在GNU/Linux中,从发行版的源中安装
apt-get install sed
在GNU/Linux中,使用源码编译安装
下载源码 https://www.gnu.org/software/sed/#download
解压并进入源码目录
配置并编译安装 ./configure –prefix=/usr –bindir=/bin
make -j8
make install
运行命令 sed –help
在macOS中,使用源码编译安装
下载源码 https://www.gnu.org/software/sed/#download
解压并进入源码目录
配置并编译安装 ./configure –prefix=/gnu –bindir=/gnu/bin
make -j8
make install
运行命令 /gnu/bin/sed –help
参考文献

LFS/6.27. Sed-4.5[……]

READ MORE

「sed(1)」- 文本过滤和转化的流编辑器

常用命令
字符串替换:

sed -i ‘s/bar/baz/gI’ /path/to/file

# I:忽略大小写。如果希望大小写敏感,则使用 i 或者忽略。

向文件末尾追加文本:

sed -i ‘$a some-string’ /path/to/file

删除文件的第一行内容:

sed ‘1d’ /path/to/file

替换中文字符,但鉴于 sed 并不支持 Unicode 转义,所以需要特殊处理:

# printf “\u4e00-\u9fa5” # 中文的 Unicode 范围,并不包含标点符号
一-龥

# sed -E ‘s/[一-龥]//g’ /path/to/file.txt

根据行号范围进行替换:

sed ‘19,33s/google/facebook/g’ file

语法格式

sed [OPTION]… {script-only-if-no-other-script} [input-file]…

命令描述
sed,stream editor,是一个非交互式、命令行式的文本编辑器,用于过滤和转化文本内容。
sed,以‘行’为单位,从文件中读取一行,然后使用给出的命令处理读取到的行。sed可以从文件中读取编辑的内容,也可以从管道中(pipeline)中读取文本内容,这也是sed区别与其他编辑器的一个地方。
如果没有特殊说明,本文的sed版本为4.2.2。
sed是如何工作的?
sed 维护了两个数据缓冲:

活动的模式空间(the active pattern space)。
辅助的保持空间(the auxiliary hold space)。

这两个空间初始化的时候都为空。
sed对文本循环执行如下操作:

(1). 读取一行,移除任何尾随的换行符号,然后放入pattern space里。
(2). 执行命令;每一条命令都有一个关联的地址:地址是一种条件代码,只有条件匹配的时候才执行命令。
(3). 当脚本(命令)执行结束时,将pattern space的内容打印到输出流,如果之前移出的结尾换行符,则添加上。
(4). 然后回到(1)开始处理下一行。

除非使用了特殊命令(如 D,下面会介绍D命令),否则在进入下一轮循环的时候,pattern space会被删除。
另一方面,hold space会保存它的[……]

READ MORE

「SELinux :: Security-Enhanced Linux」

从发行版的源中安装

#!/bin/bash

###################################################################################
# Kali GNU/Linux Rolling
###################################################################################

# 安装selinux-utils,SELinux管理配置工具。
apt-get install selinux-utils

# 安装policycoreutils:用于SELinux核心策略配置的基本程序。
apt-get install policycoreutils

安装的可执行程序
avcstat
compute_av
compute_create
compute_member
compute_relabel
compute_user
getconlist
getdefaultcon
getfilecon
getpidcon
getsebool
getseuser
matchpathcon
policyvers
sefcontext_compile
selabel_digest
selabel_lookup
selabel_lookup_best_match
selabel_partial_match
selinux_check_securetty_context
selinux_restorecon
selinuxenabled
selinuxexeccon
setfilecon
togglesebool
setenforce
getenforce
「policycoreutils」中包含的程序
fixfiles
load_policy
restorecon
restorecon_xattr
setfiles
secon
genhomedircon
semodule
sestatus
setsebool
相关书籍
关于SELinux的比较少,而且都是英文的《SELINUX NSA’s Open Source Security Enbanced Linux》、《SELinux System Administrator》、《SELinux by Example》
同类型的产品
AppA[……]

READ MORE

「getenforce(8)」-

报告当前SELinux的模式
命令语法格式
getenforce
命令描述
命令getenforce报告当前SELinux是否enforcing, permissive, disabled。
相关手册
selinux(8), setenforce(8), selinuxenabled(8)
参考文献

man 8 getenforce, Version 2.8-1+b1

更新日志

10/17/2018 创建文章[……]

READ MORE

「sestatus(8)」-

查看SELinux状态的工具
命令语法格式
sestatus [-v] [-b]
This tool is used to get the status of a system running SELinux.
命令描述
命令sestatus用于获取运行SELinux的系统的状态。该手册页描述了sestatus程序。
此工具用于获取运行SELinux的系统的状态。 它显示有关SELinux是启用还是禁用、关键目录的位置、加载的策略、状态的数据。如示例所示:

> sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allow
Memory protection checking: actual (secure)
Max kernel policy version: 26

命令sestatus还显示

在/etc/sestatus.conf中列出的文件和进程的安全上下文。手册sestatus.conf(5)中描述了该文件的格式。
布尔值的状态。

更多内容可以参考官方的手册。
命令支持的选项及含义
-v 显示/etc/sestatus.conf中列出的文件和进程的上下文。它还检查文件是否是符号链接,如果是,则还显示目标文件的上下文。
将始终显示以下上下文:

当前进程的上下文;
初始(init)进程的上下文;
控制终端文件上下文;

-b 显示布尔值的当前状态。
相关文件
/etc/sestatus.conf 命令sestatus的配置文件。
相关手册
selinux(8), sestatus.conf(5)
参考文献

man 8 sestatus, Version 2.8-1

更新日志

10/17/2018 创建文章[……]

READ MORE

「setenforce(8)」-

修改SELinux运行的模式
命令语法格式
setenforce [Enforcing|Permissive|1|0]
命令描述
使用Enforcing或者1来将SELinux设置为enforcing模式。 使用Permissive或者0来将SELinux设置为permissive模式。
如果SELinux被禁用并且您想要启用它,或者启用了SELinux并且您想要禁用它,请参阅selinux(8)。
相关手册
selinux(8), getenforce(8), selinuxenabled(8)
参考文献

man 8 setenforce, Version 2.8-1+b1

更新日志

10/17/2018 创建文章[……]

READ MORE

「mailq(1)」-

打印邮件队列
命令语法格式
mailq [-Ac] [-q…] [-v]
命令描述
命令Mailq打印排队等待将要发送的邮件的摘要。
为每条消息打印的:第一行显示了此主机上用于”具有可能状态字符的消息“的内部标识符,消息的大小(以字节为单位),消息被加入到队列中的日期和时间,信封的发送者。第二行显示导致此消息保留在队列中的错误消息;如果第一次处理消息,它将不会出现。状态字符为”*“表示正在处理作业;”X“表示负载太高而无法处理作业;”-“表明工作太年轻而无法处理。以下行显示邮件收件人,每行一个。
命令Mailq与“sendmail -bp”完全相同。
命令行选项
命令支持的选项如下:
-Ac 显示/etc/mail/submit.cf中指定的邮件提交队列,而不是/etc/mail/sendmail.cf中指定的MTA队列。
-qL 显示邮件队列中的“丢失”项,而不是正常的队列项。
-qQ 显示邮件队列中的隔离项,而不是正常的队列项。
-q[!]I substr 将已处理的作业限制为包含substr作为队列ID的子字符串的那些作业。如果指定”!“,则表示相反。
-q[!]Q substr 将已处理的作业限制为包含substr作为隔离原因的子字符串的隔离作业。如果指定”!“,则表示相反。
-q[!]R substr 将已处理的作业限制为包含substr作为其中一个收件人的子字符串的作业。如果指定”!“,则表示相反。
-q[!]S substr 将已处理的作业限制为包含substr作为发送者的子字符串的作业。如果指定”!“,则表示相反。
-v 打印详细信息。 这会添加消息的优先级和单个字符指示符(“+”或空白),指示是否已在消息的第一行发送警告消息。 另外,额外的行可以与指示“控制用户”信息的接收者混合;这表明谁将拥有代表此消息执行的任何程序以及此命令扩展的别名的名称(如果有)。此外,如果可用,则打印每个收件人的状态消息。
注意事项
多个sendmail.cf选项会影响mailq实用程序的行为:如果设置了该值,则每个队列组打印的项目数受MaxQueueRunSize限制。 除非使用-q选项限制已处理的作业,否则不会为QueueSortOrder的某些值(例如,filename, random, modification, none)打印状态字符”*“。
退出状态
0 成功
>0 失败
相关手册
sendmail(8)
参考文献

man 1 mailq, Version 8.15.2-12

更新日志

10/30/2018 创建文章[……]

READ MORE

「shadow」

主题:介绍Shadow软件包及其中的命令的简单介绍。
Shadow,该软件包中包含的程序与系统的密码处理有关,这些程序提供了一种处理密码的安全方式。
项目主页:https://github.com/shadow-maint/shadow
包含的命令列表
chage Used to change the maximum number of days between obligatory password changes
chfn Used to change a user’s full name and other information
chgpasswd Used to update group passwords in batch mode
chpasswd Used to update user passwords in batch mode
chsh Used to change a user’s default login shell
expiry Checks and enforces the current password expiration policy
faillog Is used to examine the log of login failures, to set a maximum number of failures before an account is blocked, or to reset the failure count
gpasswd Is used to add and delete members and administrators to groups
groupadd 使用给出的组名来创建新组。
groupdel Deletes the group with the given name
groupmems Allows a user to administer his/her own group membership list without the requirement of super user privileges.
groupmod Is used to modify the given group’s name or GID
grpck Verifies the integrity of the group files /etc/group and /etc/gshadow
grpconv Creates or updates the shadow group file from the normal group file
grpunconv Upd[……]

READ MORE

「chage(1)」-

修改用户密码过期时间
命令语法格式
chage [options] LOGIN
命令描述
命令chage修改密码更改日期与上次密码更改日期之间的天数。系统使用这些信息来确定用户何时必须更改其密码。
如果未使用任何选项,则命令chage会以交互的方式运行,并提示用户所有字段的当前值,当前值显示在一对方括号([])中。输入新值来更改字段,或留空表示使用原值。
参数LOGIN指定了帐号,是一个必传参数。
命令支持的选项及含义
命令change支持如下的选项:
帐号时效
-E, –expiredate EXPIRE_DATE 设置用户账户过期日期。如果账户过期,则用户将无法访问。参数EXPIRE_DATE的格式为YYYY-MM-DD,或使用当前区域比较通用的格式。参数EXPIRE_DATE也可以是一个整数数值,从1970-01-01算起的天数。如果EXPIRE_DATE为-1,将移除帐号的失效日期。
如果帐号无法访问或者被锁定,只能联系管理员。
密码时效
-d, –lastday LAST_DAY 修改上次的密码修改时间。参数LAST_DAY的格式为YYYY-MM-DD,或这当前区域比较通用的格式。参数LAST_DAYS也可以是一个整数数值,从1970-01-01算起的天数。
-M, –maxdays MAX_DAYS 设置密码有效的天数。如果LAST_DAY加上MAX_DAYS小于当前时间,则在登录的时候会要求用户修改密码。该选项可以配合-W选项,在密码到期之前的几天内,向用户发出密码过期警告。如果MAX_DAYS为-1,将移除密码有效性检查。
-W, –warndays WARN_DAYS 设置在需要更改密码之前的警告天数。参数WARN_DAYS是一个在密码到期之前的天数,在该天数内用户将被警告密码即将过期。
如果将该值设置为-1,将禁用密码过期警告。
-I, –inactive INACTIVE 在帐户锁定之前,设置密码过期后不活动的天数。INACTIVE选项是不活动的天数。如果帐号无法访问或者被锁定,只能联系管理员。
通常,如果密码已过期,则用户在下次登录时必须更改密码。 您还可以设置其他条件,在密码过期后,如果用户在10天从未尝试登录,您可以使用选项-I自动锁定其帐户,如下所示,“密码不活动”日期设置为从“密码过期”值开始的10天:

# chage -I 10 dhinesh

如果INACTIVE为-1,将移除账户的不活动。
-m, –mindays MIN_DAYS 将两次密码更改之间的最小天数设置为MIN_DAYS天。此字段的值为零表示用户可以随时更改其密码,否则在MIN_DA[……]

READ MORE

「chfn(1)」-

修改用户名和信息
命令语法格式
chfn [options] [LOGIN]
命令描述
命令chfn更改用户帐户的用户全名、办公室房间号、办公室电话号码、家庭电话号码信息。该信息通常由finger(1)和类似程序打印。普通用户只能更改自己帐户的字段,但需遵守/etc/login.defs中的限制。(默认配置是阻止用户更改其全名。)超级用户可以更改任何帐户的任何字段。 此外,只有超级用户可以使用-o选项来更改GECOS字段的未定义部分。
这些字段不得包含任何冒号。除了其他字段,它们不应包含任何逗号或等号。 还建议避免使用非US-ASCII字符,但这对于电话号码是强制的。另一个字段用于存储其他应用程序使用的记帐信息。
其实,这些信息是存储在/etc/passwd文件中的GECOS字段(或者称为Comment字段,即倒数第三个字段)。
如果未指定任何选项,则命令chfn会以交互方式运行,提示用户当前所有字段的值,当前值显示在一对方括号([])之间,并提示输入新值以更改字段,或留空表示不进行就该。
参数LOGIN为帐号名,如果未指定,则为当前用户账户。
命令支持的选项及含义
命令chfn支持如下选项:
-f, –full-name FULL_NAME 修改用户全名。
-h, –home-phone HOME_PHONE 修改用户的电话号码。
-w, –work-phone WORK_PHONE 修改用户的办公电话号码。
-o, –other OTHER 修改用户的其他GECOS信息。这个字段用于存储其他应用程序使用的用户信息,并且只能由root用户修改。
-r, –room ROOM_NUMBER 修改用户的房间号。
-R, –root CHROOT_DIR 在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。
-u, –help 显示帮助并退出。
配置文件
在/etc/login.defs中的以下配置变量会改变chfn命令的行为:
CHFN_RESTRICT (string) 此参数指定使用chfn程序的普通用户可以更改/etc/passwd文件的GECOS字段中的哪些值。它的值可以是字母f,r,w,h的任意组合,分别代表了Full name, Room number, Work phone, Home phone。
为了向后兼容,“yes”等同于“rwh”,“no”等同于“frwh”。如果未指定,则只有超级用户可以进行任何更改。通过不设置chfn的SUID位可以更好地实现最严格的设置。
相关文件
/etc/passwd 用户帐户信息。
/etc/logi[……]

READ MORE

「chgpasswd(8)」-

批量更新组密码
命令语法格式
chgpasswd [options]
命令描述
命令chgpasswd从标准输入中读取一个组名和密码对的列表,并使用此信息更新一组现有组。每行的格式如下:

group_name:password

默认情况下,提供的密码必须是明文形式,并由chgpasswd加密。
可以使用/etc/login.defs的ENCRYPT_METHOD变量为系统定义默认加密算法,并且可以使用-e,-m,-c选项覆盖该算法。
此命令旨在用于一次创建许多帐户的大型系统环境中。
命令支持的选项及含义
命令chgpasswd支持如下选项:
-c, –crypt-method METHOD 使用指定的方法加密密码。如果你的libc支持这些方法,可用的METHOD是DES,MD5,NONE,SHA256,SHA512。
-s, –sha-rounds ROUNDS 使用指定的轮数加密密码。值为0表示系统将选择crypt方法的默认轮数(5000)。将强制执行最小值1,000和最大值999,999,999。您只能将此选项与SHA256或SHA512加密方法一起使用。
默认情况下,用PAM加密密码。
-e, –encrypted 告诉chgpasswd密码是加密的形式。
-m, –md5 当提供的密码未加密时,使用MD5加密,而不是DES。
默认情况下,轮数是由/etc/login.defs中的SHA_CRYPT_MIN_ROUNDS和SHA_CRYPT_MAX_ROUNDS变量定义。
-R, –root CHROOT_DIR 在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助信息并退出。
注意事项
请记住设置适当的权限或umask值,以防止其他用户对未加密文件的读取。
你要确认密码和加密方法符合系统的密码策略。
配置文件
在/etc/login.defs中的以下配置变量会影响命令chgpasswd的行为:
MAX_MEMBERS_PER_GROUP (number) 每组条目的最大成员数。达到最大值时,将在/etc/group中创建新的组条目(行),并具有相同的名称、相同的密码、相同的GID值。
该属性默认值为0,表示组中的成员数没有限制。
此功能(拆分组)允许限制group文件中的行长度。这有助于确保NIS组的行不超过1024个字符。
如果你需要强制执行此类限制,则可以使用25。
注意:并不是所有工具都支持拆分组,即使在Shadow软件包中也有些工具不支持。除非确实有必要,否[……]

READ MORE

「chpasswd(8)」-

批量更新密码
命令语法格式
chpasswd [options]
命令描述
命令chpasswd从标准输入中读取用户名和密码对的列表,并使用此信息更新一组现有用户。每行的格式如下:

username:password

默认情况下,密码必须以明文形式提供,并由chpasswd加密。密码时效也将更新(如果存在)。
默认情况下,密码由PAM加密,但(即使不推荐)您可以使用-e、-m、-c选项选择不同的加密方法。
除了使用PAM加密密码外,chpasswd首先更新​​内存中的所有密码,然后在没有任何错误发生的情况下将所有更改提交到磁盘。
当PAM用于加密密码(并更新系统数据库中的密码)时,如果密码无法更新,chpasswd将继续更新下一个用户的密码,并在退出时返回错误代码。
此命令旨在用于一次创建许多帐户的大型系统环境中。
命令支持的选项及含义
命令chpasswd支持如下选项:
-c, –crypt-method METHOD 使用指定的方法加密密码。如果你的libc支持这些方法,可用的METHOD是DES,MD5,NONE,SHA256,SHA512。
-s, –sha-rounds ROUNDS 使用指定的轮数加密密码。值为0表示系统将选择crypt方法的默认轮数(5000)。将强制执行最小值1,000和最大值999,999,999。您只能将此选项与SHA256或SHA512加密方法一起使用。
默认情况下,用PAM加密密码。
-e, –encrypted 告诉chpasswd密码是加密的形式。
-m, –md5 当提供的密码未加密时,使用MD5加密,而不是DES。
默认情况下,轮数是由/etc/login.defs中的SHA_CRYPT_MIN_ROUNDS和SHA_CRYPT_MAX_ROUNDS变量定义。
-R, –root CHROOT_DIR 在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助信息并退出。
注意事项
请记住设置适当的权限或umask值,以防止其他用户对未加密文件的读取。
配置文件
在/etc/login.defs中的以下配置变量会影响命令chpasswd的行为:
SHA_CRYPT_MIN_ROUNDS (number), SHA_CRYPT_MAX_ROUNDS (number) 当ENCRYPT_METHOD设置为SHA256或SHA512时,这两个配置项定义了默认情况下加密算法使用的SHA轮数(当命令行中未指定轮数(-s)时)。
当轮次有很多时,暴力破解密码会[……]

READ MORE

「chsh(8)」-

功能简述
修改登录 Shell
常用命令
允许或禁止 apache 用户登录:

chsh -s /bin/bash apache # 允许

chsh -s /sbin/nologin apache # 禁止

语法格式

chsh [options] [LOGIN]

命令描述
命令chsh更改用户登录Shell。这确定了用户初始登录命令的名称。
普通用户只能更改自己帐户的登录Shell;超级用户可以更改任何帐户的登录Shell。
命令行中的LOGIN参数用于指定要修改的用户。
命令选项
命令chsh支持如下的选项:
-s, –shell SHELL 用户的新登录 Shell 的名称。将此字段设置为空则系统会选择默认登录 Shell。
如果未指定-s选项,则命令chsh以交互方式运行,并提示用户当前正在使用的登录Shell。输入新值以更改原有的登录Shell,或留空则不做修改。当前的登录Shell显示在一对方括号([])之间。
-R, –root CHROOT_DIR 在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助信息并退出。
注意事项
对由选项-s指定的登录Shell的唯一限制是必须存在于/etc/shells中,除非chsh的调用者是超级用户,然后可以添加任何值。
具有受限登录Shell的帐户可能不会更改其登录Shell。因此,不建议在/etc/shells中放置/bin/rsh,因为意外更改为受限制的Shell会阻止用户将其登录Shell更改回其原始值。
相关文件
/etc/passwd 用户账户信息。
/etc/shells 列出了可用的登录Shell。
/etc/login.defs 软件包Shadow中各个工具的配置文件,用于改变这些工具的行为。
相关手册
chfn(1), login.defs(5), passwd(5).
参考文献

man 1 chsh, Version shadow-utils 4.4
How to Block or Disable Normal User Logins in Linux[……]

READ MORE

「expiry(1)」-

检查或强制执行密码到期策略
命令语法格式
expiry option
命令描述
命令expiry检查(-c)当前密码是否到期,并在需要时强制(-f)用户更改。
普通用户也可以调用该命令。
命令支持的选项及含义
命令chsh支持如下的选项:
-h, –help 显示帮助信息并退出。
-c, –check 检查当前用户的密码是否到期。
-f, –force 如果当前用户的密码已经到期,则强制进行修改。
相关文件
/etc/passwd 用户账户信息。
/etc/shadow 安全的用户帐号信息。
相关手册
passwd(5), shadow(5).
参考文献

man 1 expiry, Version shadow-utils 4.4

更新日志

07/16/2018 创建文章[……]

READ MORE

「faillog(8)」-

显示失败日志记录或者设置登录失败限制
命令语法格式
faillog [options]
命令描述
命令faillog显示失败日志数据库的内容(/var/log/faillog)。它还可以设置失败计数和失败次数限制。
当在没有指定参数的情况下运行faillog时,它只显示具有登录失败的用户的记录。
命令支持的选项及含义
命令faillog支持如下选项:
-h, –help 显示帮助信息并退出。
-R, –root CHROOT_DIR 在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
指定操作的用户
-u, –user LOGIN|RANGE 如果与-l、-m、-r选项一起使用,仅显示指定用户的faillog记录或着维护的失败计数器和失败限制。参数可以是登录名、数字用户ID、用户ID范围。
范围可以是最小值和最大值(UID_MIN-UID_MAX)、最大值(-UID_MAX)、最小值(UID_MIN-)指定此RANGE用户。如下示例:

# faillog -u 12-
# faillog -u -0
# faillog -u 100-400

第一条命令将打印用户ID大于等于12的记录;第二条命令将只打印属于root的记录,因为小于等于0的只有root;第三条命令将打印用户ID介于100到400之间的记录。
-a, –all 显示或作用于在faillog数据库中具有条目的所有用户的失败日志记录。可以使用-u选项可以指定一个范围内的用户。
在显示模式中,这仍然仅限于现有用户,但强制显示faillog条目,即使它们是空的。
使用-l,-m,-r,-t选项,即使用户在系统上不存在,也会更改用户的记录。这对于重置已删除的用户的记录或预先为一系列范围内的用户设置策略很有用。
记录显示控制
-t, –time DAYS 显示DAYS天以内的记录。
重置计数和限制的选项
如果未使用-l、-m、-r选项,则命令faillog将显示指定(或全部)用户的失败日志记录。这三个选项用于重置计数器、限制失败登录次数,要求faillog命令对/var/log/filelog文件具有写入权限。
-l, –lock-secs SEC 登录失败后,锁定帐户SEC秒。
-m, –maximum MAX 设置最大登录失败次数。当登录失败次数达到MAX指定的值时,将禁用帐户。将MAX的值设置为零,将不对登录失败次数进行限制。
注意,对于root账户,该值应始终为0,以防止对系统的DDOS攻击。
-r, –reset 重置登录失败计数器。
注[……]

READ MORE

「gpasswd(1)」-

设置组管理员与组成员
命令语法格式
gpasswd [option] group
命令描述
命令gpasswd用于管理/ etc / group和/ etc / gshadow文件。 每个组都可以拥有管理员、成员、密码。
系统管理员可以使用-A选项定义组管理员,使用-M选项定义成员。管理员拥有组管理员和成员的所有权限。
具有组权限的组管理员执行的gpasswd命令时,仅提示输入该组的新密码。
如果设置了组密码,则组成员仍然可以在没有密码的情况下使用newgrp(1)命令,但是非组内成员必须提供密码。
关于组密码的注意事项
组密码是一个固有的安全问题,因为允许多个人知道密码。但是,组是允许不同用户之间合作的有用工具。
命令支持的选项及含义
命令gpasswd支持如下的选项:
-a, –add user 添加一个用户到指定的组group中。
-d, –delete user 从指定的组group中,删除一个用户。
-r, –remove-password 删除指定的组group中的密码。此时,组密码将为空。只有组成员被允许使用newgroup(1)来改变当前组。
-R, –restrict 限制对指定组group的访问。该命令将组密码设置为“!”。只允许具有密码的组成员使用newgrp加入指定的组。
-A, –administrators user,… 设置组管理员用户。
-M, –members user,… 设置组成员用户。
-Q, –root CHROOT_DIR 在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助信息并退出。
注意,除了-A与-M选项,剩余的选项不能结合使用。
注意事项
该命令只操作/etc/group和/etc/gshadow文件,因此不能修改NIS和LDAP中的组,必须在相应的服务器上操作。
配置文件
在/etc/login.defs中的以下配置变量会影响命令chgpasswd的行为:
ENCRYPT_METHOD (string) 定义了用于加密密码的系统默认加密算法(如果在命令行上未指定加密算法时使用)。它可以采用的值有:DES(默认),MD5,SHA256,SHA512。
注意:此参数会覆盖MD5_CRYPT_ENAB变量。
注意:这仅影响组密码的生成。用户密码的生成由PAM完成,并受PAM配置的约束。建议PAM配置与此变量保持一致。
MAX_MEMBERS_PER_GROUP (number) 每组条目的最大成员数。达到最大值时,将在/etc/g[……]

READ MORE

「groupadd(8)」-

创建一个新组
命令语法格式
groupadd [options] group
命令描述
命令groupadd使用命令行中指定的参数值以及系统设置的默认值来创建新的组帐户。新组将根据需要进入系统文件。
命令支持的选项及含义
命令groupadd支持如下的选项:
-f, –force 如果指定的组已存在,则此选项会强制命令groupadd以成功状态退出。当与-g一起使用时,如果指定的GID已经存在,选择另一个唯一的GID值,即关闭-g选项。
-g, –gid GID 数值类型的GID。除非使用了-o选项,否则此值必须是唯一的。该值必须是非负数。默认设置是使用大于或等于GID_MIN的最小ID值,并比其他所有GID都大。
-o, –non-unique 该选项允许命令groupadd添加一个GID不唯一的组。
另请参阅-r选项和GID_MAX描述。
-r, –system 创建一个系统组。关于什么是系统组及与普通组的区别,参考「What is a “system” group, as opposed to a normal group?」。
新创建的系统组的GID在login.defs中定义的SYS_GID_MIN-SYS_GID_MAX范围内进行选择,而不是GID_MIN-GID_MAX。
-K, –key KEY=VALUE 覆盖/etc/login.defs中的默认值,比如GID_MIN、GID_MAX等等。可以指定多个-K选项,比如-K GID_MIN=100 -K GID_MAX=499。
注意,目前还不支持-K GID_MIN=10,GID_MAX=499这种格式。
-p, –password PASSWORD 加密的密码,由crypt(3)返回。默认设置是禁用密码的。
注意:建议不要使用此选项,因为列出进程的用户可以看到密码(或加密密码)。你应该确保密码符合系统的密码策略。关于组密码的用途,或者说为什么组密码为什么用途不大可以参考「Typical use case for a group password」一文。
-R, –root CHROOT_DIR 在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助信息并退出。
配置文件
在/etc/login.defs中的以下配置变量会影响命令groupadd的行为:
GID_MAX (number), GID_MIN (number) 限制了由命令useradd、groupadd、newusers创建的普通组的GID范围。
参数GID_MIN的默认值为1000,相应的GID[……]

READ MORE

「groupdel(8)」-

删除一个组
命令语法格式
groupdel [options] GROUP
命令描述
命令groupdel修改系统帐户文件,删除所有引用GROUP的条目。命名组必须存在。
命令支持的选项及含义
命令groupdel支持的选项如下:
-R, –root CHROOT_DIR 在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help 显示帮助选项并退出。
注意事项
无法删除一个存在用户的基本组(Primary Group)。在删除组之前必须先删除用户,至少是解除二者之间的关系。
你可能需要手动进行检查,以确认文件系统中没有剩余属于该组的文件。
配置文件
在/etc/login.defs中的以下配置变量会影响命令groupadd的行为:
MAX_MEMBERS_PER_GROUP (number) 每组条目的最大成员数。达到最大值时,将在/etc/group中创建新的组条目(行),并具有相同的名称、相同的密码、相同的GID值。
该属性默认值为0,表示组中的成员数没有限制。
此功能(拆分组)允许限制group文件中的行长度。这有助于确保NIS组的行不超过1024个字符。
如果你需要强制执行此类限制,则可以使用25。
注意:并不是所有工具都支持拆分组,即使在Shadow软件包中也有些工具不支持。除非确实有必要,否则不应使用此变量。
相关文件
/etc/group 组帐号信息。
/etc/gshadow 组帐号的安全信息。
退出状态
命令groupdel会以下列状态值退出:
0 成功
2 命令语法无效
6 指定的组不存在
8 无法删除用户的基本组
10 无法更新组文件
相关手册
chfn(1), chsh(1), passwd(1), gpasswd(8), groupadd(8), groupmod(8), useradd(8), userdel(8), usermod(8).
参考文献

man 8 groupdel, Version shadow-utils 4.4

更新日志

07/16/2018 创建文章[……]

READ MORE