13-. Linux Accounts and ACL Permissions

13-. Linux 账号 与 ACL 权限

1. Linux 账号

UID: User ID

  • UID 只有 0 与非为 0 两种,非为 0 则为一般账号。一般账号又分为系统账号 (1~999) 及可登入者账号 (大于 1000)

GID: Group ID

注意区分:User Name != UID,User Name 是方便人类记忆而抽象出来的 ASCII 文字,而 Linux 内部识别用户的唯一方法就是 UID。

使用者的账号/群组与 UID/GID 的对应,参考 /etc/passwd 及 /etc/group 两个文件

2. Linux 账号密码

root 可以在未知初始密码的情况下修改 user 的密码。

以往会加入 finger 指纹 来对密码进行进行加密

/etc/passwd 文件结构以冒号隔开,共分为七个字段,分别是『账号名称、密码、UID、GID、全名、家目录、 shell』

3. ACL 的使用

Access Control List 控制权限

  • 使用者 (user):可以针对使用者来设定权限;

  • 群组 (group):针对群组为对象来设定其权限;

  • 默认属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;

ACL 可进行单一个人或群组的权限管理,但 ACL 的启动需要有文件系统的支持

4. 使用者身份切换

su指令。

sudo指令。

4.1. sudo

由于一开始系统默认仅有 root 可以执行 sudo ,因此底下的范例我们先以 root 的身份来执行,等到 谈到 visudo 时,再以一般使用者来讨论其他 sudo 的用法吧! sudo 的语法如下:

sudo [-b] [-u 新使用者账号] 选项与参数:

  • -b :将后续的指令放到背景中让系统自行执行,而不与目前的 shell 产生影响

  • -u :后面可以接欲切换的使用者,若无此项则代表切换身份为 root。

sudo执行流程:

  1. 当用户执行 sudo 时,系统于 /etc/sudoers 文件中搜寻该使用者是否有执行 sudo 的权限;

  2. 若使用者具有可执行 sudo 的权限后,便让使用者『输入用户自己的密码』来确认;

  3. 若密码输入成功,便开始进行 sudo 后续接的指令(但 root 执行 sudo 时,不需要输入密码);

  4. 若欲切换的身份与执行者身份相同,那也不需要输入密码。

5. PAM 模块

PAM 模块可进行某些程序的验证程序!与 PAM 模块有关的配置文件位于 /etc/pam.d/* 及 /etc/security/*

5.1. PAM 模块

Pluggable Authentication Modules,嵌入式模块

PAM 可以说是一套应用程序编程接口 (Application Programming Interface, API),他提供了一连串的验证机制,只要使用者将验证阶段的需求告知 PAM 后, PAM 就能够回报使用者验证的结果 (成功或失败)

6. Linux 主机上的用户

  • 系统上面账号登入情况的查询,可使用 w, who, last, lastlog 等;

  • 在线与使用者交谈可使用 write, wall,脱机状态下可使用 mail 传送邮件!

Last updated