目录
Linux基于用户身份对资源访问进行控制
用户身份有用户账号和组账号,我们使用UID和GID作为用户账号和组账号的唯一标识,即用户账号ID和组账号ID
(一)用户账号
在Linux系统中,拥有一个用户账号是必须的,用户账号可以用于登录系统并执行各种操作。
-
超级用户
root用户,即管理员用户,拥有最高管理权限,是默认的管理员账号
-
普通用户
由root或其他管理员创建的用户,权限受到限制,只拥有部分权限,默认为低权限
-
程序用户
给应用程序运行的低权限用户,一般情况下不允许登录系统
(二)组账号
在Linux中,组账号是用来管理一个组用户的集合。每个用户都可以属于一个或多个组账号。组账号允许管理员对用户进行更细粒度的权限控制和管理。
-
基本组
用户加入的第一个组
-
附加组
用户除了基本组之外加入的组
(三)用户账号的UID和GID的值
UID(User Identifier)和GID(Group Identifier)是用于标识用户和组的唯一标识符。
root:UID和GID的固定值都为0
普通用户:默认的UID和GID的值范围1000-60000(CentOS7以后版本)
500-6000(CentOS7以前版本)
程序用户:默认的UID和GID的值范围1-999(CentOS7以后版本)
1-499(CentOS7以前版本)
账号文件及相关命令操作
(一)账号文件分类
(1)用户账号文件 /etc/passwd
用户账号文件所有用户都可以访问 passwd 文件中的内容,但是只有root有权限去修改passwd
用户账号文件共有7个字段
提示:登录Shell信息(/bin/bash为可以登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
(2)用户密码文件 /etc/shadow
用户密码文件默认情况下只有 root 能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容
用户密码文件共有9个字段
(3)组账号文件 /etc/group
用户密码文件共有4个字段
(二)用户账号文件的命令操作
(1)创建用户
useradd或者adduser 用户名 #创建用户
-u 用户名 #指定UID
-g 用户名 #指定基本组名或GID
-G 用户名 #指定附加组名或GID
-d 用户名 #指定家目录
-s 用户名 #指定登录Shell
-M 用户名 #指定不建立家目录
-e 用户名 #指定用户失效时间(YYYY-MM-DD)
(2)修改用户密码
方法一:
passwd 用户名 #修改用户新密码
-d #清空用户密码
-l #锁定用户账户
-S #查看用户状态
-u #解锁用户账户
方法二:
echo "新密码" | passwd --stdin 用户名
方法三:
echo 用户名:密码 | chpasswd
(3)修改已经存在的用户
usermod 用户名 -l 新用户名 #修改用户名
用户名 -L #锁定用户账户
用户名 -U #解锁用户账户
用户名 -g #指定基本组名或GID
用户名 -G #指定附加组名或GID
用户名 -d #指定家目录
用户名 -s #指定登录Shell
用户名 -e #指定用户失效时间(YYYY-MM-DD)
(4)删除用户
userdel [-r] 用户名 #删除用户;-r表示删除用户时,连带家目录一起删除
(三)组账号文件的命令操作
(1)增加组账号
groupadd [-g GID] 组名 #增加组账号;-g GID表示指定GID号添加组账号
(2)管理组账号的成员
gpasswd 组名 -a 用户名 #往组内增加一个用户(一次只能加一个)
-d 用户名 #从组内删除一个用户
-M 用户名 #重新定义组成员,逗号隔开
(3)删除组账号
groupdel 组名 #删除组账号
(4)查询用户组的信息
groups 用户名 #查询用户所属的组
id 用户名 #查询用户身份标识
(四)其他相关常用账号文件的命令操作
(1)查询登录系统的用户
w
who
users
(2)设置权限
r | w | x | - |
读 | 写 | 执行文件/切换目录 | 无权限 |
4 | 2 | 1 | 0 |
chmod [-R] nnn 文件/目录 #设置文件的权限;-R代表递归修改目录及其子目录和文件 的权限 (n表示权限的数字)
chmod ugo+rwx 文件/目录 # +代表增加权限,u代表文件属主,g代表文件属组内的用 户,o代表其他任何用户,a代表所有用户
- # -代表删除权限
= # =代表重新定义权限
(3)设置归属
chown [-R] 属主 文件/目录 #设置文件/目录属主
:属组 文件/目录 #设置文件/目录属组
属主:属组 文件/目录 #设置文件/目录属主和属组
属主.属组 文件/目录 #设置文件/目录属主和属组
(4)默认权限
umask nnn #设置默认权限
umask #查询mask的值
注:文件的最大默认权限为6 目录的最大默认权限为7
(新建的文件/目录的默认权限=最大默认权限-umask的值)