密码
-
/usr/share/doc/setup*/uidgid
保留的用户名和组的ID记录UID,GID -
/etc/login.defs
- 用户邮件目录
- 用户密码 期限
- 用户uid/gid 可用的范围(最小值,最大值)
- 用户uid/gid 可用的范围(最小值,最大值)
- 用户创建时是否创建home目录
- UMASK 创建用户家目录的权限
- 使用userdel时,如果组内没有成员,可以删除用户组
- passwd 创建密码时的加密方式(SHA512)
-
/etc/security/pwquality.conf
密码规则,密码的复杂度要求 -
chage ---更改用户密码有效期信息
chage -M 90 username
设置用户密码在90天内过期
chage <username>
交互式的设置用户密码有效期信息 -
/etc/bashrc
PS1
umask 设置对新创建的文件或目录应用哪些权限
对PS1修改,shell的定制到/etc/profile.d/下进行 -
/etc/profile /etc/profile.d/*.sh
环境变量、 登陆初始化 -
UMASK
出于安全原因,默认情况下,常规文件不能具有执行权限。因此,即使umask为0000(不禁止任何权限),新的常规文件仍然没有执行权限。但是,可以使用执行权限创建目录(目录777 文件666):- -S 显示mask后的实际字符权限
[john@server tmp]$ umask 0000
[john@server tmp]$ touch file
[john@server tmp]$ mkdir directory
[john@server tmp]$ ls -lh .
total 0
drwxrwxrwx. 2 john john 40 Nov 2 13:17 directory
-rw-rw-rw-. 1 john john 0 Nov 2 13:17 file
[tom@localhost ~]$ umask
0002
[tom@localhost ~]$ umask -S
u=rwx,g=rwx,o=rx
[tom@localhost ~]$
目录777 文件666
Utilities | Description |
---|---|
id | 显示用户和组ID。 |
useradd, usermod, userdel | 用于添加,修改和删除用户帐户的标准实用程序。 |
groupadd, groupmod, groupdel | 用于添加,修改和删除组的标准实用程序。 |
gpasswd | 该实用程序主要用于修改/etc/gshadow文件中的组密码,该文件由newgrp命令使用。 |
pwck, grpck | 可用于验证密码,组和关联的shadow文件的实用程序。 |
pwconv, pwunconv | 可用于将密码转换为shadow密码或从shadow密码转换回标准密码的实用程序。 |
grpconv, grpunconv | 与上面的类似,这些实用程序可用于转换组帐户的隐藏信息。 |
-
添加用户
useradd [options] username
Option | - |
---|---|
-c 'comment' | 常用于指定用户的全名。 |
-d home_directory | 要使用的主目录,而不是默认目录/home/username/. |
-e date | 帐户的停用日期,格式为 YYYY-MM-DD. |
-f days | 密码过期后直到禁用帐户的天数。如果指定为0,则密码过期后立即禁用该帐户。如果指定-1,则密码过期后不会禁用该帐户。 |
-g group_name -g group_id |
用户默认(主要)组的组名或组号。该组必须存在,然后才能在此处指定。 |
-G group_list | 用户的附加组,以逗号分隔。这些组必须存在,然后才能在此处指定。 |
-m | 如果主目录不存在,创建它。 |
-M | 不要创建主目录。 |
-N | 不要为用户创建用户私人组。 |
-p password | 用crypt加密的密码 |
-r | 创建UID小于1000且没有主目录的系统帐户。 |
-s | 用户的登录shell,默认为 /bin/bash. |
-u uid | 用户的用户标识,必须唯一且大于999。 |
juan:!!:14798:0:99999:7:::
在/etc/shadow文件的密码字段中会出现两个感叹号(!!),它会锁定该帐户。
-
创建组
groupadd [options] group_name
Option | Description |
---|---|
-f, --force | 与-g gid一起使用且gid已经存在时, groupadd将为该组选择另一个唯一的gid。 |
-g gid | 群组的群组ID,必须唯一且大于999。 |
-K, --key key=value | 覆盖/etc/login.defs默认值。 |
-o, --non-unique | 允许创建具有重复GID的组。 |
-p, --password password | 对新组使用此加密密码。 |
-r | 创建GID小于1000的系统组。 |
-
usermod 将现有用户添加到现有组
usermod -g group_name user_name
# 改变用户的属组 (不保留原有的)
usermod -G group_name1,group_name2,... user_name
# 改变用户的有多个属组(不保留原有)
usermod -aG group_name1,group_name2,... user_name
# 为用户添加多个属组(保留原有的)
-
passwd [选项] user
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
选项 | 说明 |
---|---|
--help | 显示帮助文档 |
--version | 显示命令版本 |
-d | 删除用户的密码,只有root用户才能使用 |
-e | 使用户密码失效,强制用户下次登录改变密码,只有root用户才能使用 |
-n | 设置密码的最短有效时间,只有root用户才能使用 |
-x | 设置密码最大有效时间,只有root用户才能使用 |
-S | 显示简短的密码信息,只有root用户才能使用 |
-l | 锁定用户,只有root用户才能使用 |
-u | 解锁用户,只有root用户才能使用 |
-k | 选项-k用于指示更新只适用于过期的身份验证令牌(密码);用户希望像以前一样保留其未过期的令牌。 |
-i | 这将设置此帐户的过期密码将被视为不活动的天数,如果用户帐户支持密码生存期,则应禁用该帐户。只对根用户可用。 |
-w | 这将设置用户将开始收到警告,如果用户帐户支持密码生存期,其密码将过期的天数。只对根用户可用。 |
--stdin | 此选项用于指示passwd应从标准输入中读取新密码,该输入可以是管道。echo "password" |passwd --stdin user 少用
|
-
/etc/passwd
name:password:UID:GID:GECOS:directory:shell
GECOS: 注释,常用全名 -
/etc/shadow
字段 | 说明 |
---|---|
login name | 登录名 |
encrypted password | 加密密码 |
date of last password change | 自1970年1月1日以来的最后一次更改密码 |
minimum password age | 最小密码使用期限是允许用户再次更改密码之前, 用户必须等待的天数。 |
maximum password age | 最长密码使用期限是用户必须更改密码的天数。 |
password warning period | 密码到期前的天数(请参见上面的最长密码使用 期限),在此期间应警告用户。 |
password inactivity period | 密码过期后的天数(请参见上面的最长密码使用 期限),在此期间仍应接受密码(用户应在下次 登录时更新其密码)。 |
account expiration date | 帐户的到期日期,表示自1970年1月1日以来的天数。 |
reserved field | 该字段保留供将来使用。 |
-
ACLS
-
设置ACL
setfacl -m rules files
rules:-
u:uid:perms
设置用户的访问ACL。可以指定用户名或UID。该用户可以是系统上的任何有效用户。 -
g:gid:perms
设置组的访问ACL。可以指定组名或GID。该组可以是系统上的任何有效组。 -
m:perms
设置有效权限掩码。掩码是拥有组的所有权限以及所有用户和组条目的并集。 -
o:perms
为文件组中的用户以外的用户设置访问ACL。
perms(权限)必须是字符r,w和x的组合,才能进行读取,写入和执行。
例如,向用户andrius授予读写权限:
# setfacl -m u:andrius:rw /project/somefile
例如,要删除用户,组或其他用户的所有权限,请使用-x选项,并且不要指定任何权限:
# setfacl -x rules files
例如,要从具有UID 500的用户中删除所有权限,请执行以下操作:
# setfacl -x u:500 /project/somefile
-
-
恢复默认ACLs
要设置默认ACL,请在规则前添加d:
并指定目录而不是文件名。
例如,要将/ share /目录的默认ACL设置为对不在用户组中的用户读取和执行(单个文件的访问ACL可以覆盖它):
# setfacl -m d:o:rx /share
-
查看ACLs
getfacl
-
设置ACL
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/index
特殊权限 suid sgid sticky
-
SUID(setuid)
功用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行时,进程的属主不是发起者,而是程序文件自己的属主。
设置setuid后在属主的x位表示
文件 | 原权限 | 有无执行权限 | 加suid后的权限 | 是否有效 |
---|---|---|---|---|
file | -rw-r--r-- | 无 | -rwSr--r-- | 无 |
file | -rwxr--r-- | 有 | -rwsr--r-- | 有 |
- sgid(setgid)
功用:当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组的身份在此目录中新建文件或者目录时,新文件的属组不是用户的基本组,而是此目录的属组。
设置setgid后在属组的x位表示
目录 | 原权限 | 有无执行权限 | 加suid后的权限 | 是否有效 |
---|---|---|---|---|
Dir | drwxr--r-x | 无 | drwxr-Sr-x | 无 |
Dir | drwxr-xr-x | 有 | drwxr-sr-x | 有 |
-
sticky
功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除所有的已有文件,如果为此类目录设置sticky权限,则每个用户都能创建新文件,且只能删除自己的文件。
设置sticky后在全局(other)的x位表示
目录 | 原权限 | 有无执行权限 | 加suid后的权限 | 是否有效 |
---|---|---|---|---|
Dir | drwxrwxrwx | 无 | drwxrwxrwT | 无 |
Dir | drwxrwxrwx | 有 | drwxrwxrwt | 有 |
设置方法
名称 | 命令 | 说明 |
---|---|---|
suid |
u+s or 4
|
- |
- | chmod u+s cat | #添加suid |
- | chmod u-s cat | #取消suid |
- | chmod 4755 cat | #添加suid |
- | chmod 0755 cat | #取消suid |
sgid |
g+s or 2
|
- |
- | chmod g+s /testdir/ | #添加sgid |
- | chmod g-s /testdir/ | #取消sgid |
- | chmod 2755 /testdir/ | #添加guid |
- | chmod 0755 /testdir/ | #取消guid |
sticky |
o+s or 1
|
- |
- | chmod o+s /testdir/ | #添加sticky |
- | chmod o-s /testdir/ | #取消sticky |
- | chmod 1755 /testdir/ | #添加sticky |
- | chmod 0755 /testdir/ | #取消sticky |
- | 也可以suid,sgid,sticky位同时设置 | - |
网友评论