基础
每个进程都得作为特定的用户发起运行
与该进程相关的用户的权限确定该进程可访问的文件和目录
每个文件有由一个特定的用户所拥有
用户的权限决定了他能访问哪些文件和目录
uid:
0:root
1-999:系统用户
1000+:普通用户
查看
id
查看当前用户/某用户的信息
[root@server1 ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@server1 ~]# id root
uid=0(root) gid=0(root) 组=0(root)
查看文件属主属组
[root@server1 ~]# ll test
-rw-r--r--. 1 root root 0 1月 13 10:13 test
查看进程的运行者
ps aux
用户信息相关文件
passwd:用户名:密码占位符:uid:gid:秒数:home:shell
shadow:密码相关
group:组相关
用户管理
groupadd,groupdel,gpassword
useradd,usermod,userdel
passwd,chage
用户组
[root@server1 ~]# groupadd t1
[root@server1 ~]# groupadd t2
[root@server1 ~]# groupadd -g 2000 t3 #指定gid
[root@server1 ~]# tail -n3 /etc/group
t1:x:1000:
t2:x:1001:
t3:x:2000:
[root@server1 ~]# groupdel t1
[root@server1 ~]# groupdel t2
[root@server1 ~]# tail -n3 /etc/group
chrony:x:996:
slocate:x:21:
t3:x:2000:
gpassword:将用户从组中添加或者删除
-a:添加
-d:删除
-r:删除密码
[root@server1 ~]# gpasswd -a u2 ttt
正在将用户“u2”加入到“ttt”组中
[root@server1 ~]# id u2
uid=1001(u2) gid=2000(t3) 组=2000(t3),2001(ttt)
用户
useradd:添加用户
-u:指定uid
-g:指定gid,该组必须已存在
-s:shell
-G:附加组,该组必须已存在
-r:创建系统用户
-c:注释
-d:家目录
默认添加的shell为/bin/bash,不同的shell有不同的功能和特点。如果想要创建一个安全的仅作运行进程用的用户,可以把shell指定为/sbin/nologin,该用户将无法使用登录功能,较为安全
[root@server1 ~]# useradd u1
[root@server1 ~]# useradd u2 -g 2000
[root@server1 ~]# useradd -G 2000 u3
[root@server1 ~]# id u1
uid=1000(u1) gid=1000(u1) 组=1000(u1)
[root@server1 ~]# id u2
uid=1001(u2) gid=2000(t3) 组=2000(t3)
[root@server1 ~]# id u3
uid=1002(u3) gid=1002(u3) 组=1002(u3),2000(t3)
userdel:删除用户
-r:删除用户的同时删除家目录和mail
[root@server1 ~]# userdel -r u1
[root@server1 ~]# id u1
id: u1: no such user
passwd:修改密码
root可以直接、强制修改
普通用户必须提供原密码,且得设置一个安全的密码
-n:指定最短使用期限
-x:指定最大使用期限
-w:提前多少天开始警告
--stdin:从标准输入接收用户密码,无需重复输入
[root@server1 ~]# passwd u2
更改用户 u2 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@server1 ~]# echo '123' | passwd --stdin u3
更改用户 u3 的密码 。
passwd:所有的身份验证令牌已经成功更新。
chage
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并推出 -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
chage -d 0 username #强制用户在下次登录的时候修改密码
usermod:修改用户组
-G:覆盖原有附加组
-aG:添加新的附加组
[root@server1 ~]# id u3
uid=1002(u3) gid=1002(u3) 组=1002(u3),2000(t3)
[root@server1 ~]# groupadd ttt
[root@server1 ~]# usermod -G ttt u3
[root@server1 ~]# id u3
uid=1002(u3) gid=1002(u3) 组=1002(u3),2001(ttt)
login.defs
创建用户时参照的文件,此文件对root无效,当文件中的配置与passwd和shadow发生冲突时,以后两者为准
MAIL_DIR /var/spool/mail 创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱,比如 lamp 用户的邮箱是 /var/spool/mail/lamp。
PASS_MAX_DAYS 99999 密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数,相当于 273 年,可理解为密码始终有效。
PASS_MIN_DAYS 0 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
PASS_MIN_LEN 5 指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。
PASS_WARN_AGE 7 指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。
UID_MIN 500 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。
UID_MAX 60000 指定用户最大的 UID 为 60000。
GID_MIN 500 指定最小 GID 为 500,也就是在添加组时,组的 GID 从 500 开始。
GID_MAX 60000 用户 GID 最大为 60000。
CREATE_HOME yes 指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。
UMASK 077权限掩码为 077。
USERGROUPS_ENAB yes 指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes。
ENCRYPT_METHOD SHA512
新建用户的家目录下的bash开头的文件是从/etc/skel/复制过去的
.bashrc:主要保存别名、系统路径,提示符
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
如果想修改环境变量,如下
PATH=/usr/bin:/usr/local/bin:/bin
如果想修改别名,如下
alias xx='xx'
su与sudo
sudo提权
必须要先授权才能提权,未经授权使用sudo效果如下
提权方式参照/etc/sudoers,将该用户加入到wheel组里面
[root@server1 u2]# gpasswd -a u3 wheel
正在将用户“u3”加入到“wheel”组中
[u3@server1 home]$ useradd u4
-bash: /usr/sbin/useradd: 权限不够
[u3@server1 home]$ sudo useradd u4
[u3@server1 home]$ sudo useradd u5
[root@server1 u2]# tail -n4 /etc/passwd
u2:x:1001:2000::/home/u2:/bin/bash
u3:x:1002:1002::/home/u3:/bin/bash
u4:x:1003:1003::/home/u4:/bin/bash
u5:x:1004:1004::/home/u5:/bin/bash
su切换用户
su只切换身份,su -连身份和shell一起切换