1.用户添加
useradd adduser是这个命令的别名
useradd USERNAME
添加用户就是在/home、/etc/passwd、/etc/shadow、/etc/group中添加用户相关信息
默认属性都来自/etc/default/useradd
/etc/default/useradd
文件格式
GROUP=100 组
HOME=/home 家目录
INACTIVE=-1 密码宽限期限
EXPIRE= 账户过期期限
SHELL=/bin/bash 指定shell
SKEL=/etc/skel 默认文件
CREATE_MAIL_SPOOL=yes 邮件配置
(1.)手动添加账号
首先跳到这个文件 跳到最后
添加一个用户,依次是用户名,密码占位符,UID,GID,昵称(描述),家目录,shell。然后保存退出。
账号就创建好了
添加组
进入最后一项,依次是用户名,组密码(这里不设置密码),id,最后冒号表示哪一个组把他作为附加组就写哪个组(这里不设置附加组)
保存退出,查看组就有了
创建家目录
切换到家目录
创建家目录然后查询
这里权限不对,删除权限
所属用户和所属组不对,更改
查询家目录文件,没有文件
切换到目标文件
拷贝文件
拷贝目录
添加一个组
创建邮箱
切换到邮箱目录
创建邮箱
更改权限
更改所有者和所属组
创建完成
2.认识文件
/etc/passwd 冒号隔开的七个字段
account 用户名
password 密码,x为密码占位符,目标为/etc/shadow第二个字段
UID 用户ID
GID 基本组ID,额外组信息在/etc/group文件中
CECOS 用户基本信息
HOME DIR 用户家目录,系统用户不允许登陆
shell 用户的默认shell,/etc/shells保存了所有的合法shell
/etc/shadow 冒号隔开的九个字段
account 用户名
password 加密后的密码,格式为
1
1
1???$*
!!或者* 账户锁定 salt
最后一次修改时间 从1970年1月1日到最后一次密码改变的时间所经过的天数
密码最短使用期限 为0表示不限制
密码最长使用期限 密码使用多长时间之后必须要改密码,99999表示可不更改
密码过期警告时间 密码过期前多少天进行警告,提示用户改密码,但是不锁定用户
密码过期宽限期限 密码过期后必须改密码的时间,如果还没改,锁定用户,就只能找网管了
账号过期精确时间 如果为99999,意味着永不过期
保留字段
/etc/group
文件格式为:
组名:组密码:GID:以该组作为额外组的用户名,以逗号为分隔符
/etc/gshadow
3.权限掩码
umask 查看权限掩码,文件默认权限为666,目录默认权限为777
umask 权限掩码 更改权限掩码
666 umask 拿掉的权限
033 表示那点wx的权限,但是新建一个目录本身默认是没有wx权限的,所以033就跟022没区别(不要用基数权限)
633
安全上下文
secure context
进程访问文件时,先查看用户权限,如果不是,再查看进程的发起用户是不是目标文件所属组成员
系统任何进程开始都保存为一个文件,由用户执行可执行程序后成为进程,而能否执行,取决于用户对可执行文件有没有权限,而程序一旦执行后转为进程,那么进程就与之前的可执行文件无关,进程的权限为进程发起者的权限,而进程能否访问某个文件,则取决于发起者是否有权限访问目标文件,而这一切就叫做安全上下文
特殊权限
SUID: 运行程序时,进程的属主是程序文件自身的权限,而不是进程发起者
chmod u[+|-]s FILENAME 如果文件原来有执行权限就显示为s,反之显示S
SGID: 运行程序时,进程的属组是程序文件自身的属组,而不是进程发起者的基本组
chmod g[+|-]s DIRNAME
Sticky:在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件 对目录有效
chmod o[+|-]t DIRNAME
扩展权限
setfacl Filesystem Access Control list
getfacl
-m 设定
u: 用户
g: 组
setfacl -m u:UID:perm
-x 取消
u: 用户
g: 组
隐藏属性
chattr