Linux常用命令(第五部分:用户管理)
# 用户信息文件
vim /etc/passswd
root:x:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
Tom:x:1000:1000:Tom:/home/Tom:/bin/bash
三类用户
root用户id是0,超级管理员用户;
系统用户,id 1~999,用于程序目录的权限管理,或执行某些特殊命令;
普通用户,id 1000+,可以登录系统,日常操作;
# 通过命令或直接修改/etc/passwd来创建用户
Tom:x:1000:1000:Tom:/home/Tom:/bin/bash
1.用户名
2.x占位,早期用于密码存储,现在以密文形式存放在/etc/shadow
3.uid,用户id
4.gid,组id
5.简介,可以写入用户全名、邮箱、电话等信息,也可以省略
6.用户家目录,root用户是/root,普通用户是/home/用户名
7.用户的shell或是用户登录时执行的命令
45.useradd/adduser:添加用户
用法:sudo adduser 用户名
<pre>选项:
-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 中的默认值
-m, --create-home 创建用户的主目录
-r, --system 创建一个系统账户
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID、设置uid
</pre>
eg:useradd -u 6666 -s /bin/sh -d /tmp -G root lisi
#usermod 修改用户信息
usermod -aG root -u 5678 -s /sbin/nologin 用户名
-c 修改注释信息”简介”
-u 修改uid
-s 修改shell
-d 修改家目录
-G 修改附加组
-a 追加到组中,多个用户用,隔开
#相关文件
/etc/passwd
用户账户信息。
/etc/shadow
安全用户账户信息。
/etc/group
组账户信息。
/etc/gshadow
安全组账户信息。
/etc/default/useradd
账户创建的默认值。
/etc/skel/
包含默认文件的目录。
/etc/subgid
Per user subordinate group IDs.
/etc/subuid
Per user subordinate user IDs.
/etc/login.defs
Shadow 密码套件配置。
46.userdel:删除用户
用法:userdel 用户名
# -r 可以在删除用户的同时,删除他的家目录和邮件池
userdel -r 用户名
# 查看组设置
cat /etc/group
root:x:o:Tom,zj
1.组名
2.组密码占位
3.Gid
4.附加用户可以添加多个,以“,”分开
# 创建组:一般作为附加组。
groupadd python
useradd -aG python Tom
# 修改组,gid
groupmod -g 1111 python
# 删除组
groupdel python
# 设置组名密码
gpasswd
#主组和附加组
创建用户时,同时创建的同名组。或者/etc/passwd文件中和用户绑定的组(创建目录或文件时会同时创建一同名的组)
一个主组可以绑定很多个用户,但一个用户只能有一个主组。(一对多)
root:x:0:0:root:/root:/bin/bash
用户创建文件或目录时默认的组,就是主组。
附加组:为了方便访问共享文件,协同办公,将多个用户添加到一个组中,可以使用组权限。
一个附加组可以有多个用户,一个用户也可以加入多个附加组。(多对多)
47.passwd:修改密码
用法:sudo passwd 用户名
敲两遍密码
8位+,数字字母下划线,复杂性高一些的
#密钥登录(非对称加密)公钥与私钥
ssh 密钥登录
passwd -l 锁定密码
passwd -u 解锁密码
passwd -stdin 修改密码
可以# echo “123456” |passwd --stdin abc
用法: passwd [选项...] <帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock 锁定指名帐户的密码(仅限 root 用户)
-u, --unlock 解锁指名账户的密码(仅限 root 用户)
-e, --expire 终止指名帐户的密码(仅限 root 用户)
-f, --force 强制执行操作
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)
48.id:谁的权限最大
第一种:id 查看当前用户是UID(用户 ID)、GID(组 ID)以及所属的组。
第二种:id username 查看指定用户的信息。
root的id:uid=0(root) gid=0(root) 组=0(root)
49.whoami、who 和 w:谁在线?
“看看都有哪些人登录了系统。”
whoami: 简单显示登录用户。
who:显示所有登录到系统的用户 。
w:不仅显示用户,还显示他们在做什么。