linux用户及权限管理

感情迁移 提交于 2019-12-04 00:59:38

linux用户,组管理介绍

linux操作系统对多用户管理是非常繁琐的,所以用组的概念来管理用户就变得简单了,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户,Linux系统用户时根据用户ID来识别的,默认ID长度为32位,默认ID编号从0开始(其实就是root),但是为了和老式系统兼容,用户ID限制在60000以下,linux用户总共分为3种:

  • root用户(ID 0)
  • 系统用户(ID 1~499)
  • 普通用户(ID 500以上)

linux系统中的每个文件或者文件夹都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。

linux操作系统用户的特点如下:

  • 每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名
  • 每个用户属于一个主组,属于一个或者多个附属组,一个用户最多有31个附属组
  • 每个拥有一个GroupID
  • 每个进程以一个用户身份运行,该用户可对进程拥有资源控制的权限
  • 每个可登陆用户拥有一个指定的shell环境

linux用户在操作系统中可以进行日常管理和维护,涉及的相关配置文件如下:

  • /etc/passwd:保存用户信息
  • /etc/shadow:保存用户密码(以加密形式保存)
  • /etc/group:保存组信息
  • /etc/login.defs:用户属性,密码过期时间,密码最大长度等限制
  • /etc/default/useradd:显示或更改默认的useradd配置文件

 

 

linux用户管理

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

执行useradd fengzi7314会根据以下操作步骤进行:

  1. 在/etc/passwd文件中添加用户信息
  2. 如使用passwd命令创建密码,密码会被保存在/etc/shadow中
  3. 为fengzi7314创建一个家目录/home/fengzi7314
  4. 将/etc/skel中的.bash开头的文件复制到/home/fengzi7314家目录
  5. fengzi7314组信息保存在/etc/group配置文件中

在使用useradd命令时,可以添加如下参数

-d:新账户的主目录
-e:新账户的过期日期
-f:新账户的密码不活动期
-g:新账户属组的名称或ID
-m:创建用户的主目录
-M:不创建用户的主目录
-N:不创建同名的组
-p:加密后的新账户密码
-r:创建一个系统账户
-s:新账户的登录shell
-u:新账户的UID
-U:创建与用户同名的组-G:新建账户的附加组

useradd案例

  • 新建fengzi7314用户,并添加到group1和group2附属组
[root@localhost var]# useradd -G group1,group2 fengzi7314[root@localhost var]# id fengzi7314uid=1000(fengzi7314) gid=1002(fengzi7314) 组=1002(fengzi7314),1000(group1),1001(group2)
  • 新建fengzi1234账户,并制定新的家目录,同时指定其登录的shell
[root@localhost var]# useradd -d /tmp/fengzi1234 -s /bin/sh fengzi1234

[root@localhost var]# su - fengzi1234
-sh-4.2$ pwd
/tmp/fengzi1234
-sh-4.2$ whoami
fengzi1234
-sh-4.2$ 

linux组管理

linux组管理有如下特点

  • 每个组有一个组ID
  • 组信息保存在/etc/group中
  • 每个用户至少拥有一个主组,同事还可以拥有31个附属组
  • 通过命令groupadd,groupdel,groupmod来对组进行管理

groupadd用法如下:

-h:帮助信息
-g:为新组使用GID
-r:创建一个系统账户

案例:

  • 创建名字为group1的组
[root@localhost var]# groupadd group1
  • 创建group2并且制定GID为2000
[root@localhost var]# groupadd group2 -g 2000
  • 创建一个系统组(system)名为group3
[root@localhost var]# groupadd -r group3

groupmod用法如下:

-g:将组ID改为GID
-h:帮助信息
-n:将旧组名改为新组名
-p:将密码更改为(加密过的)PASSWORD

案例:

  • 把组名group1修改成为group250
[root@localhost var]# groupmod -n group250 group1
  • 把group250的GID号修改成为4000
[root@localhost var]# groupmod -g 4000 group250

 

 

linux用户及组案例

useradd主要用于新建用户,而用户创建完毕,可以使用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 用户映射

 

案例:

  • 将fengzi7314用户的付家组修改为group1,group2
[root@localhost var]# usermod -G group1,group2 fengzi7314

 

  • 锁定fengzi7314用户和解锁fengzi7314用户
[root@localhost var]# usermod -L fengzi7314;usermod -U fengzi7314

 

  • 将fengzi7314用户名修改为fengzi1234
[root@localhost var]# usermod -l fengzi1234 fengzi7314

userdel

主要是用来删除用户的

  • userdel fengzi7314:保留用户的家目录
  • userdel -r fengzi7314:删除用户及用户家目录,用户login系统无法删除
  • userdel -rf fengzi7314:强制删除用户及该目录的家目录,无论是否登录

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!