1,用户与用户组
1.1,用户分类
超级用户(UID=0):root,它具有一切权限,只有进行系统维护(例如建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
系统用户(UID=1~999):系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录,如bin、daemon、adm、lp等用户。
普通用户(UID=1000~60000):是为了让使用者能够使用Linux系统资源而建立的;每个用户都有一个数值,称为UID;
1.2,用户
与用户(user)相关的配置文件:
- /etc/passwd :用户(user)的配置文件;
- /etc/shadow :用户(user)影子口令文件;
登录过程:
- 先查找/etc/passwd里面是否有你输入的账号?如果没有则退出,如果有的话则将该账号对应的UID与GID(在/etc/group中)读出来,另外,该账号的家目录与shell设置也一并读出。
- 再来则是核对密码表。这时Linux会进入/etc/shadow里面找出对应的账号与UID,然后核对一下你刚刚输入的密码与里面的密码是否相符。
- 如果一切都OK的话,就进入shell管理阶段。
/etc/passwd文件结构:
root x 0 0 root /root /bin/bash 账号名称 密码,因为密码放到了/etc/shadow中了,所以你会看到x UID GID 用户信息说明栏 家目录 Shell /etc/shadow文件结构:
root 一对奇怪的东西 18596 0 99999 7 空 空 空 账号名称 密码 最近修改密码日期 密码不可被修改的天数 密码需要重新修改的天数 密码需要修改期限前的警告天数 密码过期后的账号宽限时间 账号失效日期 保留 密码字段,密码经过编码过的,虽然很难激活成功教程,但是不是不能,所以这个文件的默认权限是【-rw-------】或【-----------】 时间:1970年1月1日为开始,1971年1月1日就是366 在密码过期的几天后,如果用户还没有登录,则账号将不在使用 通常存在于收费服务中 修改密码那天的值 如果是0表示随时可以修改密码;如果是20表示20天后才能修改密码 表示多少天后需要修改密码,99999表示273年,对密码修改没有强制要求。
Ubuntu下修改root密码:
sudo passwd root
1.3,用户组
与用户组(group)相关的配置文件:
- /etc/group:用户组(group)的配置文件;
- /etc/gshadow:用户组(group)影子口令文件;
/etc/group文件结构
root x 0 空 组名 用户组密码,同样是x GID 此用户支持的账号名称 用户组ID 用户组下用户的成员 有效用户组和初始用户组
初始组:用户创建时默认生成的群组,记录在/etc/passwd的第四栏中,无需记录在/etc/group的第四栏。
有效用户组:使用groups可以查看用户当前所属群组,第一个群组为该用户的有效群组。使用newgrp groupname可以将用户的有效群组切换为groupname。
gshadow文件中记录了群组账号、群组密码(开头为!表示无法登陆)、群组管理员密码和群组成员列表。
2,账号管理
2.1,新增、删除和修改用户
查看我是谁
whoami
新增用户
useradd -u uid -g gid -G gid -mM -c 说明 -d 目录 -s 目录 UID 初始用户组GID 次要用户组GID -m:强制要建立使用者家目录
-M:不要建立使用者家目录(默认)
用户说明 指定某个目录为家目录 后接shell,若没有指定则默认是/bin/bash 直接指定一个数字为UID 初始用户组 还可以加入的用户组 useradd shao 通过passwd 账号设置密码后,完成用户创建 系统默处理(useradd -D查看默认): 1、在/etc/passwd里面建立一行与账号相关的数据,包括建立UID/GID/家目录等; 2、在/etc/shadow里面将此账号的密码相关参数写入,但是尚未有密码; 3、在/etc/group里面加入一个与账号名称一模一样的组名; 4、在/home下面建立一个与账号名称一模一样的组名;
useradd -u 1500 -g users shao //创建UID为1500,用户组为users,名为shao的账号 useradd -r shao //创建一个名为shao的系统账号,系统自动分配uid,一般小于1000 //系统账号主要是用来执行系统所需服务的权限设置,所以系统账号默认不会主动建立家目录
修改密码
passwd 用户名 //用户名不填,默认为当前用户
修改账号日期相关
chage 账号名 //修改账号信息
修改账号信息
usermod 参数 用户名
删除用户
userdel -r username //-r 删除用户home //删除内容:用户账号密码参数;用户组参数;用户个人文件数据;
2.2,新增,删除和修改用户组
新增用户组
groupadd -g gid -r 用户组名称 GID 建立系统用户组 修改用户组
groupmod -g gid -n group name 用户组名称 修改GID 修改用户组名称 删除用户组
groupdel 用户组名
3,ACL使用
ACL:访问控制列表,提供传统的属主、所属群组、其他人的读、写、执行权限之外的详细权限设置。ACL针对单一用户、单一文件或目录进行r、w、x的权限设置,对于特殊权限的设置非常有帮助。
getfacl:获取某个文件/目录的ACL设置选项。
setfacl:设置某个目录/文件的ACL规范。
3.1、setfacl&getfacl
setfacl getfact |
-b:删除所有的ACL设置参数 | -m:设置后续的ACL参数给文件使用,与x不兼容。 | 目标文件名 |
-k:删除默认的ACL参数 | |||
-R:递归设置ACL,包括子目录 | -x:删除后续的ACL参数,与m不兼容。 | ||
-d:设置默认ACL参数,只对目录有效 |
3.2,针对特定使用者的方式
设置规范:【u:[使用者账号列表]:[rwx]】
touch shao ls -ll setfacl -m u:shao:rx shao ls -ll
多了一个x和一个+。
getfacl shao
file:shao | 文件名 |
owner:root | 文件的拥有者 |
group:root | 文件的属主 |
user::rw- | 文件拥有者的权限 |
user:shao:r-x | 针对shao用户的权限设置rx,与拥有者root的不同 |
group::r-- | 文件用户组权限仅有r |
mask::r-x | 默认的有效权限 |
other::r-- | 其他人拥有的权限 |
3.3,特定的单一用户组的权限设置
设置规范:【g:[用户组列表]:[rwx]】
setfacl -m g:shao:rx acl shao getfacl shao
多了一个group:shao:r-x,就是表示对shao整个用户组的权限。
3.4,针对有效权限设置
设置规范:【m:[rwx]】
setfacl -m m:r shao getfacl shao
mask表示一种限制,shao用户和shao用户组的权限与mask权限取交集,才表示用户和用户组真正的权限。
4,身份转换
避免无心之失对系统造成的损害;用低权限启动系统,减小入侵损害;软件的限制;
4.1,转换身份指令
su:将user转成root,需要root密码
su -:将当前用户转换为root,且使用root的环境设置 -l:将当前用户转换为username,同时使用其相关环境变量。 username -m:使用当前用户的环境设置值 -c:将后接指令执行一次 sudo:不需要root密码,仅以当前普通用户密码执行一次root权限指令
sudo -u username(将用户身份转换为username) command
4.2,系统用户查询
今天的文章 Linux:用户,用户组,ACL,身份转换分享到此就结束了,感谢您的阅读。who:查询已登录用户
last:查询一个月来用户的登录信息
lastlog:查询用户登录终端和最后登录时间
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/104361.html