linux用户组及权限管理

1、linux用户和组特性

root 用户 (ID 0)

系统用户 (ID 1-499)

普通用户 (ID 500 以上)

每个用户拥有一个 UserID,操作系统实际读取的是 UID,而非用户名;

每个用户属于一个主组,属于一个或多个附属组,一个用户最多有 31 个附属组;

每个组拥有一个 GroupID;

每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;

每个可登陆用户拥有一个指定的 Shell 环境。

2、linux用户管理

/etc/passwd 保存用户信息

/etc/shdaow 保存用户密码(以加密形式保存)

/etc/group 保存组信息

/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制

/etc/default/useradd 显示或更改默认的 useradd 配置文件

如需创建新用户,可以使用命令 useradd,执行命令 useradd test1 即可创建 test1 用户,同时会创建一个同名的组 test1,默认该用户属于 test1 主组。

Useradd test1 命令默认创建用户 test1,会根据如下步骤进行操作:

在/etc/passwd 文件中添加用户信息;

如使用 passwd 命令创建密码,密码会被加密保存在/etc/shdaow 中;

为 test1 创建家目录:/home/test1;

将/etc/skel 中的.bash 开头的文件复制至/home/test1 家目录;

创建与用户名相同的 wxj1组,test1 用户默认属于 wxj1 同名组;

wxj1 组信息保存在/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, --password PASSWORD 加密后的新账户密码;

-r, --system 创建一个系统账户;

-R, --root CHROOT_DIR chroot 到的目录;

-s, --shell SHELL 新账户的登录 shell;

-u, --uid UID 新账户的用户 ID;

-U, --user-group 创建与用户同名的组;

-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER。

案例演示:

(1)新建test1用户,并加入到wxj1,wxj2附属组:

[root@wxjtest ~]# useradd -G wxj1,wxj2 test1

(2)新建test2用户,并指定新的家目录,同事指定其登陆的shell:

[root@wxjtest ~]# useradd test2 -d /tmp/ -s /bin/bash

3、linux用户组管理

特点

每个组有一个组 ID;

组信息保存在/etc/group 中;

每个用户至少拥有一个主组,同时还可以拥有 31 个附属组。

通过命令 groupadd、groupdel、groupmod 来对组进行管理,详细参数使用如下:

groupadd 用法

-f, --force 如果组已经存在则成功退出;

并且如果 GID 已经存在则取消 –g;

-g, --gid GID 为新组使用 GID;

-h, --help 显示此帮助信息并推出;

-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值;

-o, --non-unique 允许创建有重复 GID 的组;

-p, --password PASSWORD 为新组使用此加密过的密码;

-r, --system 创建一个系统账户;

groupmod 用法

-g, --gid GID 将组 ID 改为 GID;

-h, --help 显示此帮助信息并推出;

-n, --new-name NEW_GROUP 改名为 NEW_GROUP;

-o, --non-unique 允许使用重复的 GID;

-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD;

groupadd案例演示:

(1)创建test1组

[root@wxjtest ~]# groupadd test1

(2)创建test2组,并指定GID为1000

[root@wxjtest ~]# groupadd -g 1000 test2

(3)创建一个system组,名为test3组

[root@wxjtest ~]# groupadd -r test3

groupmod案例演示:

(1)groupmod修改组名称,将test1组名改为mode3

[root@wxjtest ~]# groupmod -n mode3 test1

(2)groupmod修改组GID号,将原来mode3组gid改为2000

[root@wxjtest ~]# groupmod -g 2000 mode3

2、linux用户及组

Useradd 主要用于新建用户,而用户新建完毕,可以使用 usermod 来修改用户及组的属性,如下为 usermod 详细参数

用法:usermod [选项] 登录

选项:

-c, --comment 注释 GECOS 字段的新值;

-d, --home HOME_DIR 用户的新主目录;

-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE;

-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态;

-g, --gid GROUP 强制使用 GROUP 为新主组;

-G, --groups GROUPS 新的附加组列表 GROUPS;

-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,

并不从其它组中删除此用户;

-h, --help 显示此帮助信息并推出;

-l, --login LOGIN 新的登录名称;

-L, --lock 锁定用户帐号;

-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用);

-o, --non-unique 允许使用重复的(非唯一的) UID;

-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码;

-R, --root CHROOT_DIR chroot 到的目录;

-s, --shell SHELL 该用户帐号的新登录 shell 环境;

-u, --uid UID 用户帐号的新 UID;

-U, --unlock 解锁用户帐号;

-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射。

usermod案例演示

(1) 将 test 用户属组修改为 test1,test2 附属组;

usermod -G test1,test2 test

(2) 将 test 用户加入到 test3,test4 附属组,-a 为添加新组,原组保留;

usermod –a -G test3,test4 test

(3) 修改 test 用户,并指定新的家目录,同时指定其登陆的 SHELL;

usermod -d /tmp/ -s /bin/sh test

(4) 将 test 用户名修改为 test1;

usermod -l test1 test

(5) 锁定 test1 用户及解锁 test1 用户方法;

usermod –L test1;usermod -U test1

Userdel 案例演示:

使用 userdel 可以删除指定用户及其用户的邮箱目录或者 Selinux 映射环境:

userdel test1 保留用户的家目录;

userdel –r test1 删除用户及用户家目录,用户 login 系统无法删除;

userdel –rf test1 强制删除用户及该用户家目录,不论是否 login 系统。

发表评论

后才能评论