文章目录
Linux:用户&组及文件权限
一、管理本地用户和组
1.1、用户
1.用户是什么
用户使用username标识并使其更易于使用。在内部,系统通过分配给它们的唯一标识号,用户ID或UID来区分用户帐户。 如果用户使用用户帐户,则通常会为其分配一个密码,用户在登录时将使用该密码来证明他们是实际的授权用户。
用户帐户是系统安全的基础。
-
每个文件都有一个特定用户作为其所有者。
-
文件所有权有助于系统对文件用户实施访问控制。
-
系统上的每个进程(运行程序)都以特定用户身份运行。
-
正在运行的进程关联的用户确定该进程可访问的文件和目录
用户帐户主要有三种类型:
-
superuser:用于管理系统,用户名称为root,UID为0,对系统具有完全访问权限。
-
system users:系统具有系统用户帐户,由提供支持服务的进程使用。 这些进程或守护进程通常不需要以超级用户身份运行。 它们是非特权帐户,用户保护自己文件和其他资源。
系统用户帐户不用于交互方式登录系统。
-
regular users:大多数用户拥有常规用户帐户,用于日常工作。
2.文件/etc/passwd
/etc/passwd文件保存操作系统登录用户信息。每行包含一个登录用户信息,以冒号分隔七个域。
格式:name:password:UID:GID:GECOS:directory:shell
name:用户登录名
password:用户密码,以x表示
UID:用户ID
GID:用户主组ID
GECOS:用户描述信息,通常为用户的真实姓名
directory:用户主目录,启动shell时的工作目录,默认位于/home/username
shell:用户打开终端时运行的程序,默认是shell
1.2、组
1.组是什么
组是用户的集合,组中用户集成组权限。
与用户一样,组具有组名称以使其更易于使用。系统通过分配给它们的唯一标识号,组ID或GID来区分组。
2.主要组和补充组
主要组:每个用户只有一个主要组,/etc/passwd文件中的GID编号定义。 默认情况下,用户创建的新文件组所有者为用户的主要组。通常,在创建新的常规用户时,会创建一个与该用户同名的新组。该组用作新用户的主要,该用户是此用户专用组的唯一成员,有助于简化文件权限管理
补充组:用户还可以拥有补充组。 补充组的成员资格由/etc/group文件确定。 根据用户的任何组是否具有访问权限,授予用户访问权限的权限。例如,如果用户user01具有主要组user01和补充组wheel和webadmin,则该用户可以读取这三个组中任何一个组可读的文件。
3.文件/etc/group
/etc/group文件保存操作系统组信息。每行包含一个组信息,以冒号分隔4个域。
格式:group_name:password:GID:user_list
group_name:组名称
password:组密码,用x表示
GID:组ID,唯一表示组
user_list:作为补充的成员
1.3、管理命令
1.用户管理
命令 | 用途 |
---|---|
useradd/adduser | 添加用户账号 |
passwd | 为用户账号设置密码 |
usermod | 修改用户账号属性 |
userdel | 删除用户账号 |
-
useradd
常用参数useradd -u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。 useradd -d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录 useradd -e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 useradd -g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。 useradd -G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。 useradd -M:不建立宿主目录。 useradd -s:指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
-
passwd
常用参数passwd -d:清空指定用户的密码,仅使用用户名即可登录系统。 passwd -l:锁定用户账户,锁定的用户账号将无法再登录系统。 passwd -S:查看用户账户的状态(是否被锁定)。 passwd -u:解锁用户账户。
passwd用法
-
usermod
常用参数usermod -u:修改用户的 UID 号。 usermod -d:修改用户的宿主目录位置。 usermod -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 usermod -g:修改用户的基本组名(或使用 GID 号)。 usermod -G:修改用户的附加组名(或使用 GID 号)。 usermod -s:指定用户的登录 Shell。 usermod -l:更改用户账号的登录名称。 usermod -L:锁定用户账户。 usermod -U:解锁用户账户。
- userdel
常用参数
userdel [-r] <username>
2.组管理
命令 | 用途 |
---|---|
groupadd | 添加组账号 |
gpasswd | 添加删除组成员 |
groupdel | 删除组账号 |
groups | 查询用户所属的组 |
-
groupadd
常用参数-g:指定 GID 号
-
gpasswd
常用参数[组名] -a:向组内添加一个用户 [组名] -d:从组内删除一个用户成员 [组名] -M:定义组成员列表,以逗号分隔
-
groupdel
常用参数groupdel [组名]
-
groups
常用参数groups [用户名]
二、文件权限
2.1、文件权限
Linux文件权限简单灵活,易于理解和应用,能够处理大多数权限使用情况。
文件有三个适用权限的用户类别。
-
单个用户拥有者,通常是创建该文件的用户。
-
单个组拥有者,通常是创建该文件的用户的主要组。
-
除了用户拥有者和组拥有者之外的其他用户。
2.2、chmod语法
-
语法1:chmod WhoHowWhat file|directory
- Who u(user) g(group) o(other) a(all)
- How +(添加) -(减去) =(精确设置)
- What r(read) w(write) x(excute) -(不具有权限)
X,用于递归给目录和子目录添加x权限,不影响文件。
-
语法2: chmod ### file|directory
-
第1个# 代表user权限
-
第2个# 代表group权限
-
第3个# 代表other权限
#是r=4 w=2 x=1的和,范围是0(- - -)到7(r w x)
-
权限 | 八进制数 | 对文件的影响 | 对目录的影响 |
---|---|---|---|
r(读取) | 4 | 可以读取文件内容 | 可以列出目录的内容(文件名)。 |
w(写入) | 2 | 可以更改文件内容 | 可以创建或删除目录中的任一文件。 |
x(执行 | 1 | 可以作为命令执行文件 | 目录可以成为当前的工作目录。(您可以cd它) |
2.3、管理命令
命令 | 用途 |
---|---|
chmod | 设置权限 |
chown | 设置归属 |
umask | 设置默认权限 |
chgrp | 更改文件组拥有者 |
-
chmod
常用参数chmod ### [file]/[directory] ##修改目录和文件权限 chmod -R ### [directory] ##-R表示递归修改目录及其所有子目录和文件权限
-
chown
常用参数chown <user> [file]/[directory] ##更改文件拥有者 chown :<group> [file]/[directory] ##更改文件拥有组 chown <user>:<group> [file]/[directory] ##更改文件拥有者和拥有组
-
umask
常用参数umask nnn
文件的最大默认权限为 6 目录的最大默认为 7
新建的文件/目录的默认权限 = 最大默认权限 - umask值