Linux用户和组管理
基础知识
Linux用户
管理员:root 0
普通用户:1-65535
系统用户:1-499,1-999
登录用户:500+,1000+
Linux组
管理员组:root 0
普通组:1-65535
系统组:1-499,1-999
登录组:500+,1000+
组类别
基本组
当创建一个用户时,会自动产生一个与用户名相同的组名,且仅包含当前用户
附加组
一个用户可以属于多个附加组
Linux安全上下文
运行中的程序叫做进程
进程能够访问的所有资源的权限取决于进程发起者的身份
用户和组的相关配置文件
/etc/passwd:用户及其属性信息(用户名、uid等等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性信息
/etc/gshadow:组密码及其相关属性信息
配置文件详解
[root@localhost ~]# cat /etc/passwd | head -n 1
root:x:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:用户注释信息:用户家目录:登录shell
[root@localhost ~]# cat /etc/group
组名称:密码:组id:用户列表
[root@localhost ~]# cat /etc/shadow
登录名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间:
密码禁用使用:账户过期日期:保留字段
user相关
useradd命令
-u:指定uid
-g:指定gid
-c:指定用户注释信息
-d:指定用户家目录
-s:指定登录shell
-G:指定附加组
-r:创建系统用户
userdel命令
-r:连同用户家目录一起删除
usermod命令
-aG:将用户添加到附加组
-dm:移动用户新登录家目录
-d:单独使用时,只是把保存在/etc/passwd这个配置文件当中的源目录名改成指定的新目录名,并不会把源目录下的内容移动到新目录下,如果要把源目录下的内容移动新目录下,则要和-m选项一起使用,才会把源目录下的内容移动到新目录下。
-m:与-d一起使用时会将原有的家目录移动要指定目录并根据需要改名
————————————————
-L:锁定用户
-U:解锁用户
passwd命令
-
-k:保持身份验证令牌不过期
-
-d:删除已命名帐号的密码(只有根用户才能进行此操作)
-
-l:锁定指名帐户的密码(仅限 root 用户)
-
-u:解锁指名账户的密码(仅限 root 用户)
-
-x:密码的最长有效时限(只有根用户才能进行此操作),设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段
-
-n:密码的最短有效时限(只有根用户才能进行此操作),在此时间内不能修改密码
-
-w:在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-
-i:当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-
-S:报告已命名帐号的密码状态(只有根用户才能进行此操作)
-
–stdin:从标准输入读取令牌(只有根用户才能进行此操作)
[root@localhost ~]# echo "1" | passwd --stdin lisi
案例
创建用户gentoo、附加组尾distro、linux,默认shell为/bin/csh,注释信息为“GENTOO”
[root@localhost ~]# useradd -G distro,linux -s /bin/bash -c "GENTOO" gentoo
组管理
groupadd [选项] 组
选项
-
-g:指定新建工作组的 id
-
-r:创建系统工作组,系统工作组的组ID小于 500;
-
-K:覆盖配置文件 /etc/login.defs
-
-o:允许添加组 ID 号不唯一的工作组。
-
-f:如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
groupdel
groupmod
gpasswd
相关命令
id:可以查看到用户及其组的信息
-g:输出gid
-G:输出附加组
-u:输出uid
-n:输出name替代id
su:可以切换用户环境
su username:切换用户,不读取用户配置信息
su - username:切换用户,完全切换
su - userame -c command:切换用户执行命令
sudo:用户提权root权限
用户权限管理
文件的权限管理主要针对三类对象定义
属主;u
属组:g
其他:o
每个文件针对每类对象都有三种权限
r:可读,4
w:棵写,2
x:可以执行,1
对于普通文件
r:可以使用文件查看类工具获取其内容,比如ls
w:可以修改类工具
x:可以把此文件启动为一个进程
对于目录来说
r:可以使用ls命令查看此文件列表
w:可以在此目录中创建文件,也可以在此目录中删除文件
x:可以使用cd命令进入到此目录中
举例
[root@localhost ~]# ll
-rw-r–r–. 1 root root 1162 8月 22 11:09 eagle
属主的权限是:rw-,拥有可读可写不可执行的权限
属组的权限是:r–,拥有可读不可写不可执行的权限
其他的权限是:r–,拥有可读不可写不可执行的权限
权限值644
相关管理命令
chmod命令
-R:递归修改
修改方式
u=
g=
o=
421
chown命令
-R:递归修改
chgrp命令
umask命令
在当前文件夹下创建文件时的默认权限遮掩码
特殊权限
SUID:4
SGID:2
SBIT:1
SUID:4
SUID权限仅仅对二进制程序是有效
执行者必须有x权限
仅在本程序拥有权限
借出属主的权限
当属主有x权限时,suid设置为s
当属主没有x权限时,suid设置为S
典型例子passwd工具
SGID:2
二进制程序有效
执行者需要拥有x权限
当属组有x权限时,sgid设置为s
当属组没有x权限时,sgid设置为S
SBIT:1
共享目录
针对目录
只有属主和root用户可以修改删除该文件
其他用户不可以删除别人的文件
典型例子/tmp
ACL权限
原文链接:https://www.cnblogs.com/MLibra/p/6240209.html
主要目的是针对传统的属主属组其他权限控制不够的地方,进行细节权限补充
ACL可以针对单一使用者,单一文件或目录来进行rwx的权限规范,对于需要特殊权限的使用有帮助
setfacl命令
-m:添加acl参数,只针对目录有效
-x:删除acl参数
-b:移除所有acl的相关的参数
-R:递归添加acl设定参数
-d:添加默认的acl参数
删除用户权限
setfacl -x u:username filename
删除组权限
setfacl -x g:groupname filename
删除整个acl权限
setfacl -b filename
添加参数
getfacl
[root@localhost ~]# getfacl test1
#file: test1
#owner: root
#group: root
user::rw-
group::r–
mask::r–
other::r–