?
? ? ? ?
? ? ?
Linux 用户及权限管理
? ? ? ?
?
?
?
?
?
?
?
? ? ?
? ? ?
? ? ?
?
?
?
Linux 是一个多用户的操作系统,引入用户,可以更加方便管理 Linux 服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份去运行,用户可以限制某些进程对特定资源的权限控制。
本章向读者介绍 Linux 系统如何管理创建、删除、修改用户角色、用户权限配置、组权限配置及特殊权限深入剖析。
Linux 用户及组
Linux 操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。
Linux 系统用户是根据用户 ID 来识别的,从默认 ID 编号从 0 开始,但是为了和老式系统兼容,用户 ID 限制在 60000 以下, Linux 用户分总共分为三种,分别如下:
q root 用户 ( ID 0 )
q 系统用户 ( ID 1-499 )
q 普通用户 ( ID 500 以上)
Linux 系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用 id 命令可以显示当前用户的信息,使用 passwd 命令可以修改当前用户密码。 Linux 操作系统用户的特点如下:
q 每个用户拥有一个 UserID ,操作系统实际读取的是 UID ,而非用户名;
q 每个用户属于一个主组,属于一个或多个附属组,一个用户最多有 31 个附属组;
q 每个组拥有一个 GroupID ;
q 每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;
q 每个可登陆用户拥有一个指定的 Shell 环境。
Linux 用户管理
Linux 用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:
q /etc/passwd 保存用户信息
q /etc/shdaow 保存用户密码(以加密形式保存)
q /etc/group 保存组信息
q /etc/login.defs 用户属性限制 , 密码过期时间 , 密码最大长度等限制
q /etc/default/useradd 显示或更改默认的 useradd 配置文件
如需创建新用户,可以使用命令 useradd ,执行命令 useradd jfedu1 即可创建 jfedu1 用户,同时会创建一个同名的组 jfedu1 ,默认该用户属于 jfedu1 主组。
Useradd jfedu1 命令默认创建用户 jfedu1 ,会根据如下步骤进行操作:
q 读取 /etc/default/useradd ,根据配置文件执行创建操作;
q 在 /etc/passwd 文件中添加用户信息;
q 如使用 passwd 命令创建密码,密码会被加密保存在 /etc/shdaow 中;
q 为 jfedu1 创建家目录: /home/jfedu1 ;
q 将 /etc/skel 中的 .bash 开头的文件复制至 /home/jfedu1 家目录;
q 创建与用户名相同的 jfedu1 组, jfedu1 用户默认属于 jfeud1 同名组;
q Jfedu1 组信息保存在 /etc/group 配置文件中。
在使用 useradd 命令创建用户时,可以支持如下参数:
用法:useradd [选项] 登录 useradd -D useradd -D [选项] 选项: -b, --base-dir BASE_DIR 指定新账户的家目录; -c, --comment COMMENT 新账户的 GECOS 字段; -d, --home-dir HOME_DIR 新账户的主目录; -D, --defaults 显示或更改默认的 useradd 配置; -e, --expiredate EXPIRE_DATE 新账户的过期日期; -f, --inactive INACTIVE 新账户的密码不活动期; -g, --gid GROUP 新账户主组的名称或ID; -G, --groups GROUPS 新账户的附加组列表; -h, --help 显示此帮助信息并推出; -k, --skel SKEL_DIR 使用此目录作为骨架目录; -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值; -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库; -m, --create-home 创建用户的主目录; -M, --no-create-home 不创建用户的主目录; -N, --no-user-group 不创建同名的组; -o, --non-unique 允许使用重复的 UID 创建用户; -p, --pa