一、用户管理
(一)、用户和组的基本概念
Users and groups:
. Every process (running program) on the system runs as a particular user.
系统上的每个进程(运行的程序)都是作为特定用户运行的
. Every file is owned by a particular user.
每个文件是由一个特定的用户拥有
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制
. The user associated with a running process determines the files and directories accessible to that process.
与正在运行的进程相关联的用户确定该进程可访问的文件和目录
(二)、示例
查看当前登录用户信息:
[root@linux ~]# id
uid=0(root) gid=0(root) 组=0(root)
查看进程:
[root@linux ~]# yum -y install vsftpd
[root@linux ~]# ps aux | grep vsftp
root 1143 0.0 0.0 53212 96 ? Ss 07:57 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
nobody 11965 0.0 0.0 55336 1128 ? Ss 19:43 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
ftp 11967 0.0 0.0 57444 1120 ? S 19:43 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 11978 0.0 0.0 112680 984 pts/4 S+ 19:43 0:00 grep --color=auto vsftp
(三)、与用户组相关的文件
/etc/passwd root:x:0:0:root:/root:/bin/bash 用户信息
用户名:x:uid:gid:描述:HOME:shell x密码占位符
/etc/shadow root:$1$MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: : 密码信息
$id$salt$encrypted
/etc/group root:x:0: 组信息
(四)、扩展
加密算法$id:
$1: MD5
$5: SHA-256
$6: SHA-512
(五)、系统约定
CentOS 6:
uid: 0 特权用户
uid: 1~499 系统用户
uid: 500+ 普通用户
CentOS 7:
uid: 0 特权用户
uid: 1~999 系统用户
uid: 1000+ 普通用户
The root user
. uid is 0
UID是0
. all power
所有权力
. This user has the power to override normal privileges on the file system
该用户有权力覆盖文件系统上的普通权限
. installing or removing software and to manage system files and directorie
安装或删除软件并管理系统文件和目录
. Most devices can only be controlled by root
大多数设备只能由root控制
二、用户
创建用户:
# useradd user02 -u 503 //创建用户usr02,指定uid
# useradd user03 -d /aaa //创建用户user03 指定家目录
# useradd user05 -s /sbin/nologin //创建用户并指定shell
# useradd user07 -G hr,it,fd //创建用户,指定附加组
# useradd user10 -u 4000 -s /sbin/nologin //指定UID 指定登录shell
删除用户:
# userdel user10 //删除用户user10,但不删除用户家目录和mail spool
# ll -d /home/user10/
drwx------ 3 506 510 4096 09-01 21:14 /home/user10/
# ll /var/spool/mail/user10
-rw-rw---- 1 506 mail 0 09-01 21:14 /var/spool/mail/user10
# userdel -r user2 //删除用户user2,同时删除用户家目录和mail spool
用户密码:
# passwd alice //root可以给任何用户设置密码
$ passwd //普通用户只能给自己修改密码,而且必须提供原密码
三、组成员管理
(一)组成员管理:
只针对已从在的用户:
# usermod -G hr niuniu2 //覆盖原有的附加组
# usermod -G fd,it niuniu2
# usermod -aG hr niuniu2 //增加新的附加组
# gpasswd -a jack wheel //usermod -aG hr zhuzhu
# gpasswd -M zhuzhu,maomao100 hr
# gpasswd -d zhuzhu hr
(二)、其他管理:
# usermod -s /sbin/nologin niuniu2 //设置这个账户的登录shell
四、no Shell
/sbin/nologin //用户无法登录系统,实现管理。仅作为运行进程的用户,访问FTP的用户。
//安全的用户
# useradd www -s /sbin/nologin
# grep 'bash$' /etc/passwd
/bin/bash //登录系统,实现管理
shell是用户登录后运行的第一个程序
/usr/sbin/poweroff
/usr/sbin/reboot
# setenforce 0
策略示例:
# useradd maomao100
# echo 123456 |passwd --stdin maomao100 //给大家的一个初始密码
# chage -d 0 maomao100 //强制用户在下一次登录时修改密码
五、用户提权
$ useradd u1
-bash: /usr/sbin/useradd: 权限不够
$ su - root
password:
# useradd u1
必须在Root用户下提权:
# useradd user1 -G wheel
# id yangyang
uid=504(user1) gid=504(user1) 组=504(user1),10(wheel)
修改visudo
# visudo
## Allows people in group wheel to run all commands
#%wheel ALL=(ALL) ALL //注释这一行
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL //打开这一行
//保存退出即可
测试提权:
# su - user1 //切换用户
$ sudo useradd user2 //使用sudo提权创建一个用户,
$ id user2 //查看刚刚创建的用户
uid=1001(user2) gid=1001(user2) groups=1001(user2)
//提权成功