(1)用户基本概念
- 用户介绍
系统上的进程都有特定的用户运行 \ps aux | less USER
每个文件都有特定的用户所拥有 \ll /home
文件或目录都受用户的限制
进程访问一个文件是否有权限根据进程所属的用户
- 用户相关的文件
/etc/passwd \用户信息
root:x:0:0:root:/root:/bin/bash
用户:密码占位符:UID:GID:描述:家目录:shell
/etc/shadow \密码信息
root:$6$xKjgS.FxEeCrYdqJ$12312312312::0:99999:7:::
用户:$加密方式:$盐:$密码:密码过期时间控制策略
/etc/group \组信息
- 加密算法
$1 \md5
$5 \SHA-256
$6 \SHA-512
- 系统约定:C6
UID:0 \root
UID:1~499 \系统用户
UID:500+ \普通用户
(2)用户管理
1)用户组
- groupadd:添加组
选项:
-g //指定组的gid
例:
groupadd it //添加it组
groupadd -g 1000 hr //添加gid为1000的hr组
- groupdel:删除组
例:
groupdel net01 //删除组net01
2)用户
- useradd:创建用户
选项:
-u:指定用户的uid
-d:指定用户的家目录
-s:指定用户的shell类型
-G:指定用户的附加组
-g:指定用户的主组
例:
useradd user00 //创建用户user00,未指定任何组,系统会创建一个和用户名相同的组作为用户的主组,同时会给用户创建家目录,shell类型,邮箱目录(/var/spool/mail)
useradd -u 501 user01 //创建用户user01,指定uid为501
useradd -d /aaa user02 //创建用户user02,指定家目录为/aaa,家目录不用事先创建,
useradd -s /sbin/nologin user03 //创建用户user03,指定shell类型为/sbin/nologin
useradd -G hr,it user04 //创建用户user04,指定用户的附加组为hr,it
- userdel:删除用户
选项:
-r :删除用户的同时删除用户的家目录和邮箱目录
例:
userdel user00 //只会删除用户,不会删除用户的家目录和邮箱目录(/var/spool/mail)
userdel -r user01 //同时删除用户的家目录和邮箱目录
- passwd:修改密码
注意:root用户可以给任何用户设置密码,普通用户只能给自己修改密码,而且必须提供原密码
例:
passwd user02 //修改用户user02密码
passwd //修改用户自己的密码
echo "123" | passwd --stdin user02 //给用户user02设置密码为123
- id:查看当前登录用户信息和查看当前系统是否有该指定的用户
例
id //查看当前系统是哪个用户登录
id user01 //查看用户和组信息
uid=0(root) gid=0(root) groups=0(root)
用户 用户主组 用户所有组(包括主组和附加组)
3)组成员管理
- usermod:修改用户属性
-s:修改用户的shell类型
例:
usermod -s /sbin/nologin user03 && grep "user03" /etc/passwd
- gpasswd:修改组属性
选项:
-a:给用户追加附加组
-d:删除用户的附加组
例:
gpasswd -a user04 it //给user04用户添加到it组中
gpasswd -d user04 it //从组it中删除user04
(3)其它知识
1)nologin shell
/sbin/nologin :用户无法登陆系统实现管理,仅作为运行进程的用户,访问FTP的用户,比较安全的设置;grep "bash$" /etc/passwd
/bin/bash :登陆实现的用户实现管理
shell是用户登录后运行的第一个程序
2)useradd创建用户使用的文件
第一个文件:/etc/login.defs 设置密码策略,UID,GID,加密
[root@master ~]# egrep -v "^$|^#" /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999 //密码过期时间,99999表示密码永远不过期
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
chage -l root //查看用户密码的过期时间策略
chage -M 99999 root //设置root密码永远不过期
第二个文件:/etc/default/useradd
SHELL=/sbin/nologin //这样设置以后创建用户的shell种类默认就是/sbin/nologin
3)用户登录加载的几个文件
默认useradd创建用户,会从/etc/skel/这个目录下把默认的这几个环境变量文件放入到用户的家目录中
[root@master ~]# ls /etc/skel/ -a
. .. .bash_logout .bash_profile .bashrc
4)sudo提权
- 两种方式给用户提升执行命令的权限
方式一:su - root 或su - //切换到root,需要输入root密码,不建议
方式二:
创建用户的时候:useradd alex -G wheel //创建用户alex加入到wheel组,应为/etc/sudoers文件中已经定义wheel组有执行root命令的权限
用户存在的时候:gpasswd -a alex wheel //用户存在的时候加入到wheel组
注意:提升权限主要是修改这个文件/etc/sudoers ,其中有这个配置%wheel ALL=(ALL) ALL ,只要用户加入到该组中就有权限,每次用户使用sudo需要输入密码
- 使用sudo方式
sudo useradd jack