Linux系统加固之Centos7用户和组权限设置
Linux_Centos7用户和组简介
Linux操作系统是多用户多任务操作系统,包括:用户账户和组账户两种;
- 用户账户可分为:超级用户、普通用户、虚拟用户
超级用户:root用户,具有管理员权限的用户;
普通用户:可以登录系统,操作那些有权限的文件,这类用户由系统管理员手动添加;普通用户属性有:用户名、口令、用户UID、用户主目录、登录shell;
虚拟用户:又称伪用户,这类用户是系统默认创建或由某些应用程序安装后创建,它们不具有登录系统的条件,这类用户的存在只是方便系统的管理。 - 组账户:用户账户的集合
组账户分为标准组和私有组。
一、查看用户和用户组
-
用户列表文件:/etc/passwd
-
用户组列表文件:/etc/group
-
查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
-
查看可以登录系统的用户:
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
-
查看用户操作:w命令(需要root权限)
-
查看某一用户:w 用户名
-
查看登录用户:who
-
查看用户登录历史记录:last
-
显示用户信息
id user
cat /etc/passwd -
显示最新的n条 user或者group
tail -n2 /etc/passwd
tail -n3 /etc/group
二、创建用户和用户组
- 新建用户并设置密码
adduser testuser //新建testuser 用户
passwd testuser //给testuser 用户设置密码 - 建工作组
groupadd testgroup //新建test工作组 - 新建用户同时增加工作组
useradd -g testgroup testuser //新建testuser用户并增加到testgroup工作组
//注::-g 所属组 -d 家目录 -s 所用的SHELL - 给已有的用户增加工作组
usermod -G groupname username - 临时关闭
在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上就可以了。想恢复该用户,去掉即可
//或者使用如下命令关闭用户账号:
passwd testuser –l
//重新释放:
passwd testuser –u
三、删除用户和用户组
- userdel testuser //删除用户
- groupdel testgroup //删除组
- usermod –G testgroup testuser
强制删除该用户的主目录和主目录下的所有文件和子目录
四、用户和用户组配置文件
- 用户配置文件介绍
用户配置相关文件有两个:/etc/passwd /etc/shadow
这两个文件是互补的,shadow是passwd的影子文件,主要用来保证用户密码的安全性
1.1、/etc/passwd 说明
说明:每行对应相应用户的配置,共7个字段,用冒号分隔,各字段详情 用户名:加密口令:UID(用户标识号):GID(组标识号):个人信息描述(注释说明):用户主目录:默认登录的shell
1.2、 /etc/shadow说明
每行对应一个对一个用户配置,每行共9个字段,以冒号分隔,详情如下:
用户名:加密后的用户口令:上次修改口令时间 :两次修改口令最少间隔天数:两次修改口令最大间隔天数:在口令过期前多少天警告用户:口令过期后多少天禁用用户:用户过期日期:作为保留(无意义)
- 用户组管理
用户组配置文件主要有两个:/etc/group /etc/gshadow
配置文件详解
2.1、/etc/group 说明
文件中的一行对应一个用户组的配置信息,共4个字段,同样以 : 分隔
用户组名称:用户组口令:GID :组成员列表
2.2、/etc/gshadow 说明
每一行对应一个组的配置信息,共4个字段,同样以冒号分隔
用户组名称:用户组口令:用户组管理者:用户组成员列表
- 详细介绍
3.1 、用户和密码
-u 指定uid或者属用户名字
-g 指定gid或者属组名字
-d 指定用户家目录
-s 指定shell
-M 不创建家目录
-G 添加扩展组,可以一次性添加多个组,使用“,”分开
3.2、增加uid为2000,test为1000的用户sgh
useradd -u 2000 -g 1000 test
3.3、指定家目录、shell
useradd -d /home/test -s /sbin/nologin test
3.4、创建用户同时不创建用户家目录
useradd -M test
3.5、删除用户同时删除目录
userdel -r test
3.6、usermod更改用户属性
chmod -R ug+w /data/code # 将目录添加用户组可写 - sudo命令
配置文件vim /etc/sudoers
4.1 添加授权用户
Allow root to run any commands anywhere
root ALL=(ALL) ALL
sgh ALL=(root) NOPASSWD:/usr/bin/ls,/user/bin/mv,/usr/bin/cp
第一部分是用户名,指定哪个用户将拥有sudo的权利
第二部分右边的ALL其实是一个用户名,即,sgh用户可以切换到哪个用户的身份,如果是ALL就表示所有用户。 sgh 可以切换到root身份;
第三部分ALL,用来指定sgh用户可以使用的命令都有哪些,如果是多个命令,用英文逗号隔开。可以在前面添加NOPASSWD 不使用密码。
4.2 添加授权用户组
%wheel ALL=(ALL) ALL 以组的形式添加。
Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%dev ALL=(root) NOPASSWD: ALL - acl权限:
5.1. 查看:
getfacl a.txt #查看名称为a.txt的文件的acl权限
getfacl /root #查看root目录下的acl权限
5.2. 操作:
5.2.1 添加
setfacl -m user:lee:wrx a.txt #使用户lee对文件a.txt的权限为wrx
setfacl -m group:wang:wrx a.txt #使组对文件a.txt的权限为wrx
setfacl -d -m user:lee:wrx /root #使lee对/root文件夹里面的所有文件都有wrx权限
setfacl -R user:lee:wrx /root #使lee在/root文件夹下所有的文件的权限为wrx
5.2.2 修改:
setfacl -x user:lee:w a.txt #修改lee对文件a.txt的权限为w
5.2.3 删除:
setfacl -k #删除附加的权限
当创建一个新用户时,若没有指定他所属的组,centos就建立以个和该用户相同的私有组,此私有组中只包括用户自己。
标准组可以容纳多个用户,如果要使用标准组,那创建一个新的用户时就应该指定他所属于的组,从另外一方面讲,同一个用户可以属于多个组。当一个用户属于多个组时,其登录后所属的组是主组,其它组为附加组。