1.1用户和组的关系
用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户同名的组,作为用户主要组
用户附加组:一个用户可以属于零个或多个辅助组,附属组
1.2用户和组的配置文件
1.2.1用户和组的主要配置文件
1. /etc/passwd :用户及其属性信息
2./etc/shadow:用户密码及其相关属性
3./etc/group:组及其属性信息
4./etc/gshadow:组密码及其相关属性
1.2.2passwd文件格式
login name:登录用名(wang)
passwd:密码 (x)
UID::用户身份编号 (1000)
GID::登录默认所在组编号 (1000)GECOS:用户全名或注释
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
1.2.3shadow文件格式
登录用名
1.用户密码:一般用sha512加密
2.从1970年1月1日起到密码最近一次被更改的时间
3.密码再过几天可以被变更(0表示随时可被变更)
4.密码再过几天必须被变更(99999表示永不过期)
5.密码过期前几天系统提醒用户(默认为一周)
6.密码过期几天后帐号会被锁定
7.从1970年1月1日算起,多少天后帐号失效
1.2.4gshdow文件格式
群组名称:就是群的名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔
2.用户和组管理命令
用户管理命令:useradd/usermod/userdel
组账号维护命令:groupadd/groupmod/groupdel
2.1用户创建
user 选项 cmd
-u:UID
-g:GID指明用户基本组名,可以是组名也可以是GID
-d:已指定的路径为家目录
-s:指明用户的默认shell程序
-G:为用户指明附加组(所指明的附加组必须存在)
-r:创建系统用户(C7ID<1000;C6ID<500)
2.2用户属性修改
usermod 选项 CMD
-u UID: 新UID
-g GID: 新主组
-G :新附加组,原来附加组将会被覆盖;若想保留,则要同时使用-a选项
-s :新的默认SHELL
-d : 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-e: 指明用户账号过期日期 YYYY-MM-DD
-f : 设定非活动期限,即宽限期
2.3删除用户
userdel 选项 CMD
-f 强制
-r 删除用户家目录和邮箱
3.创建密码
4.创建组
4.1创建组
groupadd 选项 CMD
-g:GID
-r:创建系统组(C6ID<500;C7ID:<1000)
4.2修改组
groupmod:组的属性修改
groupmod 选项 CMD
-n:新组名
-g:新的GID
4.3组的删除
groupdel:组的删除
groupdel -f CMD 强制删除组
4.4更改组
gpasswd 选项 CMD
-a user:讲user添加至指定组中
-d user:从指定附加组中移除用户user
-A user use2 :设置有管理员去权限
4.5更改和查看组成员
groupmems:管理附加组的成员关系
groupmems 选项 CMD
-g:更改为指定组
-a:指定用户加入组
-d:从组中删除用户
-l:显示组成员列表
-p:从组中清除所有成员
groups 查看用户组的关系
groups 选项 CMD
5.文件权限管理
注意:
程序访问文件时的权限,取决于此程序的发起者
1>进程的发起者,同文件的属主:则应用文件属主权限
2>进程的发起者,属于文件属组:则应用文件属组权限
3>应用文件“其他”权限
5.1文件所有者和所属组属性操作
5.1.1设置文件的所有者chown
chown既可以修改文件的属主也可以修改文件属组
文件的权限说明
ower 属主, u
group 属组, g
other 其他, o
注意:
1.用户的最终权限,是从左向右进行顺序匹配,即,所有者、所属组、其他人,一旦匹配权限立即生效,不再向右查看其权限
2.r和w权限对root用户无效
3.只要所有者、所属组或other三者之一有x权限,root就可以执行
对文件的权限:
r(4) : 可使用文件查看类工具,比如:cat,可以获取其内容
w(2):可修改其内容
x(1):可以执行或运行此文件(此文件的内容必须是可以执行的)
对目录的权限
r(4): 可以使用ls查看此目录中的文件列表
w(2): 可在此目录中创建文件,也可删除此目录中的文件,而和此文件被删除的文件的权限无关
x(1): 可以cd进入此目录,可以使用ls -l查看此目录中文件的元数据(需配合r的权限),属于目录可访问的最小的权限;只给目录x权限,不给无执行权限的文件x权限
面试题:
执行 cp /etc/issue /data/dir/ 所需要的最小权限
/bin/cp 需要x权限
/etc/ 需要x权限
/etc/issue 需要r权限
/data 需要x权限
/data/dir 需要w,x权限
模式法格式
修改指定一类用户的所有权限
u=;g=;o=;ug=
修改指定一类用户某个或某个权限
u+ u- ;g+ g-;o+ o-
chown的用法
chown 选项 CMD
-R 递归,此选项慎用,非常危险
chgrp的用法
chgrp命令可以只修改文件的属组
chgrp 选项 CMD
chmod用法——修改文件的用法
5.1.2新建文件和目录的默认权限
umask的值可以用来保留在创建文件权限
实现方式:
1)新建文件的默认权限:666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
2)新建目录的默认权限:777-umask
非特权用户umask默认是002
root的umask默认是022
修改umask
umask 002umask u=rw,g=r,o=r
5.1.3Linux文件系统上的特殊权限
(1)SUID:作用于二进制可执行文件上,用户将继承此程序所有者的权限
(2)SGID:作用于二进制可执行文件上,用户将继承此程序所有组的权限作用于目录上,此目录中新建的文件的所属组将自动从此目录继承
(3)STICKY:作用于目录是上,此目录中的文件只能由所有者自己来删除
5.1.3.1SUID
二进制的可执行文件上SUID权限功能:
(1)任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
(2)启动为进程之后,其进程的属主为原程序文件的属主
(3)SUID只对二进制可执行程序有效
(4)SUID设置在目录上无意义
chmod u+s file
chmod 4xxx file
chmod u-s file
5.1.3.2SGID
二进制的可执行文件上的SGID权限功能
(1)任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
(2)启动进程之后,其进程的属组为原程序文件的属组
目录上的SGID权限功能
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
特殊权限SGID
chmod g+s file
chmod g-s file
chmod 2xxx file
5.1.3.3Sticky
具有写权限的目录,用户通常可以删除该目录中的任何文件,无论该文件的权限在目录设置Sticky位,只有文件的所有者或root可以删除该文件
特殊权限Sticky
chmod o+t dir
chmod 1xxx dir
chmod o-t dir
权限位映射
(1)SUID: user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
(2)SGID: group,占据属组的执行权限位
s: group拥有x权限
S:group没有x权限
(3)Sticky: other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限
6.ACL权限功能
6.1ACL相关命令
setfacl:可设置acl权限
getfacl:可查看设置的ACL权限
6.2 备份和还原ACL
1.备份ACL
getfacl -R /tmp/dir > acl.txt
2.消除ACL权限
setfacl -R -b /tmp/dir
3.还原ACL权限
setfacl -R #--set-file=acl.txt /tmp/dir
4.还原ACL权限
setfacl --restore acl.txt
5.查看ACL权限
getfacl -R /tmp/dir