linux用户管理

linux用户管理

linux中的用户一般分为两类:系统管理员和一般用户,系统管理员名称为root,具有对系统完全的控制权,可以对系统做任何设置以及修改,其主目录为/root;而对于一般用户,默认的主目录为/home/用户名称,仅能对于具有相应权限的文件/目录进行读取/修改/执行

用户管理

用户信息文件

在linux中的/etc/passwd文件中保存着linux的所有用户信息

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

以冒号分隔分为七个字段

第一个字段为用户名
第二个字段为密码标志 x表示有密码,密码存在/etc/shadow文件中
第三个字段为用户ID 0是超级用户 1-499是系统用户 500-65535是普通用户
第四个字段为组id 对应着/etc/group文件中的记录
第五个字段为用户说明
第六个字段为用户家目录
第七个字段为登录shell

密码文件

用户的密码存在/etc/shadow文件中

bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::

以冒号分隔分为九个字段

第一个字段 用户名
第二个字段 加密后的密码
第三个字段 密码最近修改时间 (距离1970年1月1日的天数)
第四个字段 两次密码的修改间隔时间
第五个字段 密码有效期
第六个字段 密码到期前多少天进行警告
第七个字段 密码到期后的宽限天数
第八个字段 密码失效时间
第九个字段 保留字段

用户命令

添加用户

添加用户使用useradd命令

useradd [option] 用户名

  -c, --comment COMMENT      说明
  -d, --home-dir HOME_DIR     指定用户的家目录
  -m  自动创建家目录,同时把/etc/skel中的文件复制一份到用户的家目录中
  -g, --gid   指定用户组,初始组id或组名,默认是与用户名相同
  -G, --groups GROUPS      指定用户的附加组,多个组,用逗号分隔
  -p, --password PASSWORD     用户密码
  -r, --system       创建一个系统用户
  -s, --shell SHELL    登录shell,默认是bin/bash
  -u, --uid UID    指定用户的 UID 值
  -M  不建立家目录
修改用户信息
usermod [options] 用户名

-c, --comment COMMENT      说明
  -d, --home-dir HOME_DIR       home directory of the new account  家目录
  -g, --gid GROUP     初始组id或组名,默认是与用户名相同
  -G, --groups GROUPS     附加组
  -p, --password PASSWORD       encrypted password of the new account  密码
  -r, --system                  create a system account   创建一个系统用户
  -s, --shell SHELL             login shell of the new account  登录shell,默认是bin/bash
  -u, --uid UID                 user ID of the new account   用户id
删除用户
userdel [-r] 用户名

-r 表示删除用户的同时删除家目录
切换用户
# 直接使用su,不指定用户名,默认会切换到root用户
su - 用户名

-m  保留环境变量不变
-c  执行完该次命令后用户切换回来

由于su的权限是没有限制的,所以此时用到了sudo命令,通过 sudo,我们能把某些 root 有针对性的下放,并且无需普通用户知道 root 密码,所以 sudo 相对于权限无限制性的 su 来说,还是比较安全的,所以 sudo 也能被称为受限制的 su ;另外 sudo 是需要授 权许可的,所以也被称为授权许可的 su;

sudo 执行命令的流程是当前用户转换到 root(或其他指定转换到的用户),然后以 root(或其他指定的转换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过 sudo 的 配置文档/etc/sudoers 来进行授权;

sudo 命令

# 列出用户在主机上可用的和被禁止的命令
sudo -l 
# 以便经常的实行一些只能非常用户才可以实行的权限,而无需每一次键入密码,能够应用该命令。提醒键入密码时该密码为当今帐户的密码
sudo -i
查看当前用户
#显示当前用户
whoami
#当前系统所登陆的用户,以及所登录的控制台
who
#当前系统所登陆的用户,以及所登录的控制台的详细信息
w
密码设置修改
#密码设置
passwd 用户名

#对于普通用户来说,只可以修改当前用户密码,不需要指定用户名
passwd
--------------------
-l  使密码失效,停止账号使用
-u  用户解锁,与-l相对
-d  删除密码
-f  强制执行下次登陆时更改密码
-S  显示密码信息
查看用户信息
id

uid=501(zhanghe) gid=20(staff) groups=20(staff),12(everyone)

组管理

组信息文件

组信息存在/etc/group文件中

root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon

以冒号分隔分为四个字段

第一个字段 组名
第二个字段 组密码
第三个字段 组ID
第四个字段 用户列表,每个用户之间用,号分割

组密码文件

groupname:password:admin,admin,...:member,member,...

第 1 字段:用户组
第 2 字段:用户组密码,这个段可以是空的或!,如果是空的或!,表示没有密码
第 3 字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
第 4 字段:组成员,如果有多个成员,用,号分割;

组命令

添加组
groupadd 组名

-g 指定 GID,0~499留给系统使用,从500开始,如果省略该参数,系统会自动指定GID
-o 一般和 g 选项同时使用,可以与已有组的 GID 相同
删除组

再删除组前,要执行find / -group 组名称来检查系统中隶属于改组的目录及文件,并利用chown命令改变所属组

groupdel 组名
修改组
groupmod [options] 组名


-g 指定新的 GID
-o 与-g 配合使用同 groupadd 的-o
-n 修改组名
把用户加入组或者删除组
gpasswd [options] 组名

-a, --add USER                add USER to GROUP 把用户加入组
-d, --delete USER             remove USER from GROUP 把用户移出组
 
切换用户组
newgrp 组名
https://zhhll.icu/2021/linux/基础/用户管理/

本文由mdnice多平台发布

你可能感兴趣的:(程序员)