用户和组的概念
用户:每一个使用Linux的人都必须以一个用户的身份登入,每一个进程也必须以一个用户的身份运行。
说明:
每个用户拥有一个userID,被操作系统识别和使用;
每个用户属于一个主组,可属于最多31个附属组;
每个可登陆的用户拥有一个指定的shell;
组:用来方便组织和管理用户。
说明:
每个组拥有一个groupID;
用户的分类
root用户:userID为0的用户
系统用户:userID通常为1-499,没有指定shell
普通用户:userID通常为500及以上
userID:32位,从0开始,但是为了和老式系统兼容,通常限制在60000以下。
用户和组相关的文件
/etc/passwd:保存用户信息
/ect/shadow:保存用户密码(加密的)
/etc/group:保存组信息
用户相关命令
查看信息类:
id:显示当前用户的信息;
whoami:显当前用户名;
who:显示当前已登录的用户;
w:显示当前已经登录的用户及这些用户正干什么;
last:查看当前登陆和过去登陆的信息,信息来源于/var/log/wtmp,是一个二进制文件;
lastlog:查看所有用户的最后一次登录的信息,信息来源于/var/log/lastlog,是一个二进制文件;
创建用户:
useradd 参数 用户名
参数:
-d:指定家目录
-s:指定登录shell
-u:指定userID
-g:指定登录主族
-G:指定附属组,用“,”分割
命令解析:使用useradd命令后会执行的操作
在/etc/passwd中添加用户信息
为用户创建一个家目录
将/etc/skel中的文件复制到用户的家目录中(通常为隐藏文件)
建议一个与用户名相同的组,是新建用户默认的主组
修改用户信息:
usermod 参数 用户名
参数:
-l:用户名
-u:userID
-d:家目录
-g:主组
-G:附属组
-L:锁定用户不能登录
-U:接触锁定
修改密码:passwd 用户名
删除用户:
userdel 用户名:删除用户,但保留家目录
userdel –r 用户名:删除用户及其家目录
组相关命令
创建组:groupadd 组名
修改组信息:
groupmod –n 新组名 组名:修改组名
groupmod –g 新组id 组id:修改组id
删除组:groupdel 组名
Linux权限机制
权限:系统限制限制用户对资源访问的机制;
UGO
说明:Linux权限基于UGO模型进行控制(U:user,G:group,O:other)
每个文件的权限基于UGO进行设置;
针对每个对象,权限三个一组(rwx);
查看文件和目录的详细权限:ls –l】
文件和目录的权限区别
权限 文件 目录
r 读取文件内容 读取下一级列表
d 修改文件内容 在目录中创建、删除文件
x 作为命令执行 是否可访问目录
权限相关命令
修改文件(目录)所属用户、组:
chown 用户 文件(目录):修改文件(目录)所属用户(-R参数可在修改目录时进行递归修改)
chgrp 组 文件(目录):修改文件(目录)所属组(-R参数可在修改目录时进行递归修改)
修改文件(目录)权限:
命令:chmod 模式 文件(目录)
模式1:
u、g、o代表用户、组、其它(可用a统一指代);
+、-表示增加或删除权限;
r、w、x代表权限;
模式2:
r:4
w:2
x:1
权限=r+w+x
示例:
模式1:chmod ug+rwx 文件(目录)
模式2:chmod 777 文件(目录)
Linux默认、特殊权限
默认权限
umask:每个终端?都拥有一个umask属性,用来确定新建文件和目录的默认权限;
目录默认权限:777-umask
文件默认权限:666-umask
默认umask:普通用户002,root用户022
umask命令:
umask:查看当前uamsk值
umask 数字:设置当前umask
ACL权限
ACL权限:当文件或目录的UGO权限不能满足要求时使用。
查看分区的ACL权限是否开启:dunpe2fs –h partition,然后查看default mount options中是否有acl,如果没有则需重新挂载并启用acl
ACL相关命令:
查看acl权限:getfacl file
设定acl权限:setfacl option file
-m:设定acl权限,setfacl –m u/g/:username/groupname:aclpermission file
-x:删除指定用户或组的acl权限,setfacl –x u/g:user/group file
-b:删除所有用户和组的acl权限,setfacl –b file
d:设定默认的acl权限,针对目录生效,setfacl –m d:u/g:user/group:aclpermission file
-k:删除目录所有的默认acl权限
-R:递归设定acl权限
mask权限:最大有效权限,查看acl权限会显示,mask与acl权限相与才是真正的acl权限,set –m m:aclpermission file
sudo权限(使用时需小心,防止赋予权限过大)
sduo权限:可以把root才能执行的命令赋予普通用户执行权限。
设置sudo:visudo:实际是编辑/etc/sudoers,添加记录
普通用户使用sufo命令:
查看可用的sufo命令:sudo –l
执行sudo命令:sudo command(建议使用绝对路径)
特殊权限
权限 文件 目录
Suid 以文件所属用户的身份执行,前提是命令执行者有执行权限 无
Guid 以文件是所属组的身份执行,前提是命令执行者有执行权限 普通用户在此组中的有有效组会变成目录的属组,前提是命令执行者有r和x权限
在该目录下创建新的文件或目录时,所属组与当前目录相同,前提是命令执行者有w权限
Sticky 无 对目录拥有写入权限的用户,只能删除所属用户是自己的文件或目录
特殊权限的设置:
模式1:
chmod u+s 文件:设置suid
chmod g+s 文件(目录):设置guid
chmod o+t 目录:设备sticky
模式2:chmod 4位数权限(十进制) 文件(目录)
suid=4
guid=2
sticky=1
chattr权限
略