1.Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
getnet shadow 用户名 #单独查看该用户名的配置
对配置文件进行安全操作命令
vipw和vigr #安全修改配置
pwck和grpck #检查语法
$6 显示sha512加密算法
openssl rand 生产随机口令 -base64 9
mkpasswd 生产随机口令
2.window系统命令
net accounts
net user 用户名 密码 /add #添加用户
net user 用户名 /del #删除用户
net localgroup 组名 #查看组信息
用户管理命令
useradd #添加用户,默认主组归为自己,默认添加的家目录内容来源/etc/skel/
usermod #可用chage方便
userdel
组帐号维护命令
groupadd #组添加
groupmod #组修改
groupdel #组删除
gpasswd #组密码
newgrp #组切换
groupmems #更改和查看组成员
主组,有且唯一
UID唯一,一个UID可配多个用户
useradd [options] 用户名
-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
默认值设定:/etc/default/useradd文件中
显示或更改默认设置
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
chage 用户名 #更改用户密码策略
newusers passwd格式的文件 #批量创建用户
chpasswd #批量修改用户口令
#非交互式修改密码
echo 用户名:密码 | chpasswd
echo 密码 | passwd --stdin 用户名
finger 用户名 #查看用户描述
chfn 用户名 #修改个人信息
chsh 用户名 #指定shell
3.su 用户名 不完全切换
su - 用户名 完全切换
root su至其他用户无须密码;非root用户切换时需要密码
Ubuntu
sudo -i 切换root
4.文件的权限主要针对三类对象进行定义
owner: 属主, u
group: 属组, g
other: 其他, o
all:所有,a
每个文件针对每类访问者都定义了三种权限
r: 读
w: 写
x: 执行
目录:
r: 列出文件名
w: 创建删除文件
x: 可用进入目录,可以访问文件
X:只给目录x权限,不给文件x权限
root超出所有权限
chown #设置文件的所有者
chgrp #设置文件的属组信息
chmod #文件权限操作命令
模式法:ugoa +-= rwx
数字法:rwx 421
mkdir 文件夹 -m 700
/.[^.]* 所有隐藏文件
/* 所有非隐藏文件
/. 所有文件
suid:
4,s,S
作用于可执行的二进制的程序,用户执行时将继承此程序的所有者的权限
sgid:
2,s,S
作用于可执行的二进制的程序,用户执行时将继承此程序的所属组的权限
作用于目录,新建的文件将继承此目录的所属组
sticky:
1,t,T
作用于目录,只有删除自己的文件,/tmp
cp 命令需要什么最少权限
cp需要x权限就可以
被拷贝文件 文件夹需要x权限,文件需要有r权限
目标文件,父文件夹需要x权限,子文件夹需要wx权限
root也无权限的文件特定属性
chattr +i 不能删除,改名,更改
chattr +a 只能追加内容
lsattr 显示特定属性
全局设置: /etc/bashrc 用户设置:~/.bashrc
root的umask 是 022
非特权用户umask是 002
新建文件权限:666-umask,奇数加1偶数不变,避免出现执行权限
新建文件夹权限:777-umask
5.ACL 实现灵活的权限管理
ACL生效顺序:所有者,acl用户,acl组,其他人
setfacl -m ugo:名字:rwx 文件名 #设置acl
setfacl –b -R file1 #清除所有ACL权限
getfacl 文件名
mask 只影响除所有者和other的之外的人和组的最大权限
acl设置的用户或组的权限必须存在于mask权限设定范围,
setfacl -m mask::rx file