在linux中的每一个用户必须属于一个组,不能独立于组外。在linux中每一个文件有全部者、所在组、其它组的概念linux
在linux系统中,所建立的用户账号和其相关信息(密码除外)均是存放在/etc/passwd配置文件中。因为全部用户对passwd文件均有读取的权限,所以密码信息并未保存在该文件中,而是保存在了/etc/shadow的配置文件中。centos
1,在passwd配置文件中,从左至右各字段的对应关系及其含义:app
2,用户密码管理ide
在shadow配置文件中,从左至右各字段的对应关系及其含义:ui
3.组信息管理文件centos7
4.组密码文件:/etc/gshadowspa
用户管理命令:
3d
添加用户命令:useraddorm
修改用户命令:passwdblog
修改用户权限:usermod
删除用户:userdel
切换用户:su
添加用户时会生成一个模板文件家目录
/etc/skel
在建立一个用户时,在其家目录下 会(根据模板(模板目录下的文件))自动拷贝生成 一些文件
usermod [选项] 用户名
-u UID修改用户的UID号
-c 用户说明修改用户的说明信息
-G 组名修改用户的附加组
-g 初始组修改初始组
-L临时锁定用户 (Lock)
-U解除用户锁定(Unlock)
例子:将harry添加到admin组中
[root@centos7 app]#usermod -G admin harry
[root@centos7 app]#id harry
uid=1002(harry) gid=1003(harry) groups=1003(harry),1006(admin)
3.修改用户信息 usermod
修改用户密码状态chage
usermod与useradd相似,一个针对老用户,一个是针对新增用户的 选项同样
usermod [选项] 用户名
-u UID 修改用户的UID号
-c 用户说明 修改用户的说明信息
-G 组名 修改用户的附加组
-g 初始组 修改初始组
-L 临时锁定用户 (Lock)
-U 解除用户锁定(Unlock)
修改用户密码状态
chage [选项] 用户名
-l 列出用户的详细密码状态
-d 日期 修改密码最后一次的修改日期(shadow的第三个字段)
-m 天数 两次密码修改间隔(shadow第四个字段)
-M 天数 密码有效期(第5个字段)
-W 天数 密码过时前警告的天数(第6字段)
-I 天数 密码过时后宽限天数(第7字段)
-E 日期 密码失效时间(第8字段)
用户组管理
1.添加用户组
groupadd [选项] 组名
-g GID :指定组ID
2.修改用户组
groupmod [选项] 组名
-g GID: 修改组id
-n 新组名: 修改组名
groupmod -n newgroup_name group_name
把组名group_name 修改成newgroup_name
3.删除组名
groupdel 组名
当组是一个用户的初始组并且这个用户存在时,不能够删除这个组
必须得先删初始用户才行
有附加用户没初始用户的组能够删除
groupadd gr1
useradd -g gr1 u1
useradd -G gr1 u2
不会产生u1还个组,u1用户的初始组为gr1了
4.把用户添加入组或从组中移除
gpasswd [选项] 组名
-a 用户名: 把用户加入组(操做的是附加用户)
-d 用户名: 把用户从组中删除
suid:只能做用在二进制程序上,不能做用在脚本上(scripts)上
执行suid权限的程序时,此用户将继承此程序的全部者权限
sgid:
sgid:做用在二进制程序上,执行sgid程序时,此用户将继承此程序的所属组权限
做用在目录上:再此目录上的新文件的所属组,将自动继承目录的所属组
sticky:只能做用在目录上,普通用户只能本身删除本身的文件
下面是sgid的例子
王和马哥参与一个项目,他们应该能够读写
查看用户组
[root@centos6 app]#groupmems -l -g opts
将用户组剔除
[root@centos6 project]#usermod -G '' wang //这也是一种清除的方法
[root@centos6 app]#gpasswd -d mage opts
在添加用户到组
[root@centos6 app]#groupmems -a wang -g opts
usermod -aG opts wang
将opts设置为目录的组
[root@centos6 app]#ll project1 -d
drwxr-xr-x. 2 root root 4096 Nov 19 19:06 project1
[root@centos6 app]#chgrp opts project1
[root@centos6 app]#ll -d project1
drwxr-xr-x. 2 root opts 4096 Nov 19 19:06 project1
再将目录设置为770就是other不能访问这个目录
最后将目录设置为sgid之后谁建立文件都是ops的组
最后马哥建立文件查看
chattr +i这个是就是给文件加锁
chattr +A file就是文件查看不更新时间
acl:访问控制列表
下面是给f2使用acl
[root@centos6 app]#setfacl -m u:wang:rw f2
[root@centos6 app]#su wang
[wang@centos6 app]$cat f2
[wang@centos6 app]$
查看
[wang@centos6 app]$getfacl f2
# file: f2
# owner: root
# group: root
user::rw-
user:wang:rw-
group::r--
mask::rw-
other::---
删除权限
setfacl -x u:wang d2