账户和安全

一、创建账户及组

1. useradd 命令

描述:创建新的linux账户
语法:useradd [选项] 用户名称
选项:
-c 设置账户描述信息,一般为账户全称
-d 设置账户家目录,默认为/home/用户名
-e 设置账户的失效日期,格式为 YYYY-MM-DD
-g 设置账户的基本组
-G 设置账户的附加组,多个附加组中间用逗号隔开
-M 不创建账户家目录,一般与-s结合使用
-s 设置账户的登录Shell,默认为bash
-u 指定账户UID
[root@rhcsa ~]# useradd admin -M -s /sbin/nologin -c administrator -G student
[root@rhcsa ~]# useradd xiaolv -u 1005 //指定账户UID

2. groupadd 命令

描述:创建组账户
用法:groupadd [选项] 组名称
选项:
-g 设置组ID号
[root@rhcsa ~]# groupadd tom -g 1004 //创建组账号tom,ID号为1004
[root@rhcsa ~]# useradd jerry -g tom //将账户jerry设置到附加组tom

3. id 命令

描述:显示账户及组信息
语法:id用户名

4. 用户身份切换

(1)su 命令
描述:切换用户身份的命令
语法:su [选项] [-c命令] [username]
选项:
-:单纯使用‘-’如‘su-’,代表使用login-shell的变量文件读取方式来登录系统;若用户名没有写,则代表切换为root用户
-l:与-类似,但后面需要加欲切换的用户账号,也是login-shell的方式
-m:-m与-p是一样的,表示使用目前的环境变量设置,而不读取新用户的配置文件
-c:仅进行一次命令,所以-c后面可以加上命令
(2)sudo命令
sudo:使用超级用户来执行命令一般指的事root用户,使用sudo时在/etc/sudoers中添加该用户,先利用su -进入root用户,接着输入vim sudo命令编写sudoers文件
$ vim /etc/sudoers
root ALL=(ALL) ALL //root代表的用户,ALL代表主机,括号里的ALL代表以什么身份运行,最后一个ALL代表要执行的命令
student ALL=(ALL) /usr/sbin/useradd
xiaohong ALL=(ALL) /usr/sbin/userdel
%student ALL=(ALL) ALL //%用户组 机器=( 授权使用哪个角色的权限) ALL

二、修改账户及组

1. passwd 命令

描述:更新账户认证信息
用法:passwd [选项] [账户名称]
选项:
-l 锁定账户,仅root可以使用此选项
–stdin 从文件或管道读取密码
-u 解锁账户
-d 快速清空账户密码,仅root可以使用此选项
[root@Guoming ~]# passwd -l xiaolan //锁定账户xiaolan
[root@Guoming ~]# passwd -u xiaolan //解锁账户xiaolan
[root@Guoming ~]# echo ‘111111’ | passwd --stdin xiaolv //给xiaolv设置密码

2. gpasswd 命令

描述:修改组密码
用法:gpasswd [选项] [组名]
选项:
-a 添加用户到组
-d 将指定用户移出本组(从附加组移除)
-M 设置组成员列表
-A 指定组管理员为哪个用户
-r 删除组密码
[root@Guoming ~]# gpasswd -a xiaolan tom
Adding user xiaolan to group tom // 添加账户xiaolan到tom组
[root@Guoming ~]# gpasswd -d xiaolan tom
Removing user xiaolan from group tom // 将账户xiaolan移出tom组

3. newgrp 命令

描述:登录一个新组
用法:newgrp [组名]
退出登录的组 exit

4. usermod 命令

描述:修改账户信息
语法:usermod [选项] 账户名称
选项:
-d 修改账户加目录
-e 修改账户失效日期
-g 修改账户所属基本组
-G 修改账户所属附加组
-s 修改账户登录shell
-u 修改账户UID
[root@Guoming ~]# usermod -s /bin/bash admin //修改账户admin登录bash
[root@Guoming ~]# usermod -G tom admin //修改账户所属附加组

5. groupmod 命令

描述:修改组信息
语法:groupmod -n 新组名 -g gid 原组名
选项:
-n 制定新组名
-g 修改gid信息
[root@Guoming ~]# groupmod -n tomcat tom //修改组名称tom为tomcat

三、删除账户及组

1. userdel 命令

描述:删除账户及相关文件
语法:userdel [选项] 账户名称
选项:
-r 删除账户及相关文件
[root@Guoming ~]# userdel -r admin //删除账户admin及相关文件

2. groupdel 命令

描述:删除组帐户
语法:groupdel 组名
[root@Guoming ~]# groupdel jerry 删除组jerry

四、账户与组文件解析

1. 账户信息文件

账户信息被保存在/etc/passwd文件中,通过命令cat /etc/passwd查看文件的内容如下:
root : x:0:0:root:/root:/bin/bash
bin : x:1:1:bin:/bin:/sbin/nologin
daemon : x:2:2:daemon:/sbin:/sbin/nologin
……
文件以冒号为分隔符:
第一列 root 为账户名称,第二列位密码占位符
第二列 x 表示该账户需要密码才可以登录
第三列 0 为账户UID
第四列 0 为GID
第五列 root 为账户附加基本信息,一般存储账户名全称
第六列 /root 为账户家目录位置
第七列 /bin/bash 为账户登录shell,/bin/bash为可登录系统shell,/sbin/nologin表 示账户无法登录系统

2. 账户密码文件

账户密码信息被保存在/etc/shadow文件中,通过命令/etc/shadow查看文件内容如下:
root: 6 6 6uK4jWCaISwAdPmZ0$9m8sTtdYs8UJQ4htxnloUqeSFSfuiFydXTX7CvZiBF.kOULhOReoYjYUb.SGrmiN6lhyG.LVV6GZT1BFjd.hK.:18655:0:99999:7:::
bin::17988:0:99999:7:::
daemon:
:17988:0:99999:7:::
……
文件以冒号为分隔符
第一列 账户名称
第二列 为密码(账户未设置密码时为!!,设置密码后加密显示)
第三列 为上次修改密码的时间1970年1月1日有多少天
第四列 为密码最短有效天数(密码至少使用多少天,0代表无限制)
第五列 位密码最长有效天数(默认99999可以理解为永不过期)
第六列 为过期前的告警天数(默认过期前提前七天警告,但进去告警日期后仍可以使 用旧密码登录系统)
第七列 位密码过期后的宽限天数(密码过期后,预留几天给账户修改密码,此时已经无法使用旧密码登录系统)
第八列 为账户失效日期(从1970年1月1日起多少天后账户失效)
第九列 暂时保留未使用

3. 组账户信息文件

组账户信息被保存在/etc/group文件中,通过命令cat /etc/group查看文件内容如下:
root: x:0:
bin: x:1:
daemon: x:2:
sys: x:3:
adm: x:4:
……
文件以冒号为分隔符
第一列 组账户名称
第二列 为密码占位符
第三列 GID
第四列 为组成员信息

4. 组账户密码文件

组账户密码信息被保存在/e tc/gshadow文件中,通过命令cat /etc/gshadow查看内容如下:
root:::
bin:::
daemon:::
sys:::
……
student:!::
文件以冒号为分隔符:
第一列 为组账户名称
第二列 为组密码(一般为组管理员密码)
第三列 为组管理员
第四列 为组成员(与/etc/group第四列相同)
通过<gpasswd组名>的方式可以为组设置密码,通过<gpasswd -A 账户名称 组账户名称>可以为组添加管理员
[root@Guoming ~]# gpasswd -A jerry tomcat //为组tomcat添加管理员

五、文件及目录权限

1. 概念

a) 普通权限
使用ls -l命令查看文件或目录信息时,系统会显示为r(读取权限)、w(写入权限)、x(执行权限)
drwxr-xr-x. 3 root root 17 Jan 26 17:57 aaa
-rw-------. 1 root root 1388 Jan 12 16:21 anaconda-ks.cfg
第一列 第一个字符为文件类型
第二列 为链接数量或子目录个数
第三列 为文档的所有者
第四列 为文档的所属组
第五列 为容量
第六列 问最近文档被修改的月份
第七列 为文档被修改的日期
第八列 为文档被修改的时间
第九列 为文件或目录名称
b) 特殊权限 SET UID
(1)SUID:u+s,让进程不再属于他的发起者,而是属于程序文件本身。(suid只对二进制文件有效;调用者对该文件有执行权;在执行过程中,调用者会暂时获得所有者权限;该权限只在程序执行的过程中有效)
[root@Guoming ~]# chmod u+s /usr/bin/touch
[root@Guoming ~]# ll /usr/bin/touch
-rwsr-xr-x. 1 root root 109776 Jan 112019/usr/bin/touch
//调用者root暂时获得/usr/bin/touch命令下的所有者权限
(2)SGID:g+s
SGID可以用在两个方面:
 文件:如果GID设置在二进制文件下,无论用户是谁,在执行该程序的时候,它的有效用户组将会变成该程序的用户组所有者;
 目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组
给文件修改权限:
[root@Guoming ~]# chmod g+s /usr/bin/touch
[root@Guoming ~]# ll /usr/bin/touch
-rwxr-sr-x. 1 root root 109776 Jan 11 2019 /usr/bin/touch
//调用者root暂时获得/usr/bin/touch命令下的所属组权限
给目录修改权限:
[root@Guoming ~]# mkdir test
[root@Guoming ~]# chown :tomcat test/
[root@Guoming ~]# chmod g+s test/
// 首先创建一个目录,再修改所属者为tomcat及所属组权限为g+s
drwxr-sr-x. 2 root tomcat 6 Jan 29 18:34 test
[root@Guoming test]# touch file1
[root@Guoming test]# mkdir test1
[root@Guoming test]# ln /root/test/file1 /root/test/file1.bak
[root@Guoming test]# ll
total 0
-rw-r–r--. 2 root tomcat 0 Jan 29 19:02 file1
-rw-r–r--. 2 root tomcat 0 Jan 29 19:02 file1.bak
drwxr-sr-x. 2 root tomcat 6 Jan 29 19:02 test1
//在上边test目录内创建的文件、目录及链接文件均属于test目录的用户组
(3)sticky:o+t,不能够删除其他用户在同目录里创建的文件,可删除自己创建的文件
Sticky对目录的作用:在具有t权限的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权利删除。sticky 可以理解为防删除位。如果希望用户能够添加文件但同时不能让其他人删除文件,则可以对文件使用sticky位,设置该位后,就算用户对该文件的父目录具有写权限,也不能删除文件
[root@Guoming ~]# chmod o+t /test/ //禁止除拥有者和管理员以外的账户删除文件

2. 修改文档权限

a) chmod 命令
描述:改变文件或目录权限
语法:chmod [选项] 权限 文件或目录
选项
-reference=RFILE 根据参考文档设置权限
-R 递归将权限应用于所有的子目录下的所有文件
chmod命令参数中,u代表所有者,g代表所属组,a代表所有人
[root@Guoming ~]# chmod u=r,g=rw,o=w file1
[root@Guoming ~]# ll file1
-r–rw–w-. 1 root root 0 Jan 29 13:55 file1 //修改文件file1的权限
b) chown 命令
描述:修改文件或目录所有者与所属者
语法:chown [选项] [所有者] [:[所属者]] 文件或目录
选项
-R 递归将权限应用于所有的子目录与文件
[root@Guoming ~]# chown admin:admin file1
[root@Guoming ~]# ll //修改文件file1的所有者与所属组
-rw-r–r--. 1 admin admin 0 Jan 29 14:55 file1

[root@Guoming ~]# chown admin file2
[root@Guoming ~]# ll //只改变文件file2的所有者
-rw-r–r--. 1 admin root 0 Jan 29 15:05 file2

[root@Guoming ~]# chown :admin file2
[root@Guoming ~]# ll //只改变文件file2的所有者
-rw-r–r--. 1 root admin 0 Jan 29 15:05 file2

六、ACL访问控制权限

由于系统的基本权限是针对文档所有者、所属组、或者其他账户进行控制的,无法针对某个单独账户进行控制。所以就有了ACL访问控制列表的概念,使用 ACL可以针对单一账户设置文档的访问权限
a) getfacl 命令
描述:查看文档的ACL权限
语法:getfacl 文件/目录
使用命令getfacl输出内容如下
[root@Guoming ~]# getfacl file1
file: file1
owner: root
group: root
user::rw-
group::r–
other::r–
b) setfacl 命令
描述:设置文档访问控制列表
语法:setfacl [选项] [{-m | -x} acl条目] 文件或目录
选项
-b 删除所有附加的acl条目
-k 删除默认的acl
-m 添加acl条目
-x 删除指定的acl条目
-R 递归删除所有的子文件与子目录
[root@Guoming /]# setfacl -m u:admin:rwx file1 //给文件file1所有者添加acl条目
[root@Guoming /]# setfacl -m g:tomcat:rwx //给文件file1所属组添加acl条目
[root@Guoming /]# setfacl -x g:tomcat file1 //删除file1所属组的acl条目
[root@Guoming /]# setfacl -b file1 //删除所有acl条目

七、权限掩码

控制创建⽂件的权限
查看权限掩码: umask (以数字形式显示) umask -S (以字符形式显示)
当前⾯第⼀位为2和4权限就叫强制位, 1的权限就是冒险位, 2代表GID, 4代表的是uid
修改权限掩码: umask 022
普通⽂件的权限属性: 666
⽬录⽂件的权限属性: 777

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值