安全3A
Authentication:认证
Authorzation:授权
Accouting|Audition:审计
用户
管理用户:UID:0,不一定是root,root的uid非0时并不是管理用户,主要还是看的uis
普通用户:uid 1-65535
系统用户:1-499(centos6) 1-999(centos7)
系统用户是指那些nologin用户,对守护进程获取资源进行权限分配
登录用户:500- (centos6) 1000- (centos7)
通过账号密码登录的用户,交互式登录
组
管理员组: GID:0
普通组:
系统组:1-499(centos6) 1-999(centos7)
普通组:500- 1000-
安全上下文:
简单的说就是一个进程的权限取决于开启这个进程的用户的权限
linux组的类别
用户的主要组:有且只能有一个组
私有组:简单的说就是在组内只有以为与组同名的用户,这个组就叫做这个用户的私有组
用户的附加组:可以有多个,也可以没有的组
主组的四个重要的配置文件
主:/etc/passwd
/etc/shadow
组:/etc/group
/etc/gshadow
passwd:记录用户账户的一些相关信息的文件
格式:
用户名:x:UID:GID:描述内容:家目录:默认bash
x:6以前的系统是一些加密的密码,6以后加密密码放在shadow,这里改成了x代替
GID:passwd中的GID是显示用户的主组的GID
shadow:记录用户加密密码的文件
格式:
用户名:加密类型:随机字符:加密密码正文:最后一修改密码的时间:密码的最小使用期限:密码的最大使用期限:警告期限:非活动期限:用户账号过期期限:保留字段
随机字符:为了防止密码相同的用户在正文字段的加密密码显示相同,加密时会在密码中加入一些随机的字符
最后:显示的是linux元年到最后一次修改密码经过的天数
警告期限:在密码过期前X天警告你密码还有X天就要过期
非活动期限:密码在过期后并不立即无法使用,会有一个最终期限供你修改密码,当最终期限过后,密码将失效
用户过期期限:一个用户的使用期限,当过期后该用户将无法登陆
当用户没有密码的时候,用户名:!!:~,!!代表无法登录,是系统默认给的,但是将!!删掉后就可以直接不需要密码登录,反过来看,当我们不想某个用户登录时,可以再shadow里给他的那串用户名后边(用户名!:)加一个!就行
组的group和gshadow基本相同
group的最后是组内的用户,这个前边一个是组管理员用户,添加组管理员,组管理员可以添加删除组成员对组进行一些修改
密码的复杂性策略:这还用人教?
4个小命令
vipw和vigr
更改passwd和group的命令,感觉似乎用不太到。。
pwck和grpck
检查passwd和group两个文件的修改是否有什么错误,感觉用到的可能性也不大。。
姑且记住吧
用户管理命令
useradd:添加用户的命令
-u:制定创建用户的uid
-g:制定用户主组的gid
注意:不指定主组的话,将会自动创建用户的私人组
-G:制定用户附加组的GID
-d:制定用户的家目录
注意:当制定的家目录存在的目录的时候,是不会默认添加文件的,可以手动从/etc/skel复制过来
-c:添加描述内容
-r:创建系统用户
-s:制定用户的默认shell
-M:不创建用户的家目录
注意:当用户没有家目录时,仍旧可以登录,但是登录后不再家目录中,在/目录下
-N:不创建用户的私人组,将用户的主组设置为useradd- D中的默认组
-D:一些默认的设置的更改
注意:配置文件存放在:/etc/default/useradd下
注意:一些默认的配置,想修改的话,可以去/etc/login.defs去更改
userdel:删除用户,默认是不删除用户的家目录
-r:连同用户的家目录mail等一同删除
注意:当我们在删除一个用户的时候,不加-r的话用户的家目录等一些创建用户时自动给创建的目录都不会删除,反过来说,加上-r后只是会删除在创建用户时创建的那些目录,用户自行创建的目录文件是不会删除的,但是这些目录和文件的主、组会变成原用户的UID和GID,当这些ID再次被分配到某用户的时候,文件的主、组会变成这个用户
提示:用户的一些目录可以自行删除
家目录:/home
邮箱: /var/spool/mail
usermod:修改用户的属性
-u:修改用户的UID
-g:修改用户的主组
-G:修改用户的附加组
注意:这个修改是指覆盖修改,即原来的附加组会被取消变成新的附加组,想要添加附加组加-a
-aG:给用户添加附加组
-c:修改用户的描述
-d:修改用户的家目录
注意:家目录的内容是不会移动的,想要连同家目录的内容一同移动,加-m
-md:复制家目录的内容,移动到新指定的家目录
-s:修改用户的shell
-L,U:锁定解锁用户
组管理命名
groupadd:创建新的组
-g:指定GID
-r:创建系统组
groupdel:删除组
groupmod:修改组
-g:修改组GID
-n:修改组名称
批量创建组用户
newusers:创建一个文本,在文本里按照passwd的格式来写用户,然后
newusers file
chpasswd:批量修改用户口令
文件内格式
user : 密码
id:查看用户id
-u:查看用户的uid
-g:查看用户的主组的gid
-G:查看用户的所有附加组的id
-n:不以id显示,以name显示
su:切换用户的命令
-:中间加-是指登录式用户切换,不加是非登录式用户切换
却别自己查看一下两种方式切换后的用户的工作目录和家目录就能清楚了
-c
su - name -c command
以name用户的身份运行command命令
passwd:更改密码,不加任何参数为更改自己的密码,可加用户名来更改他人密码
-e:修改最后一次更改密码日期,改成0下一次登录就必须更改密码
-n,x:修改密码的最大最小期限
-w:修改警告期限
-i:修改费活动期限
--stdin:
passwd --stdin name 可以通过重定向或者管道来更改密码
gapsswd:不加参数为修改组密码,组密码的具体作用可以再newgrp看出
-a:在组内添加用户
-d:删除组内某个用户
gpasswd -a name gname
groupmems -a -g:类似gpasswd加参数
-a:添加用户
-d:删除用户
-l:列出组用户
-p:清空组用户
chage -l 列出密码用户的各种期限时间
chsh:更改用户的shell
chfn:更改finger
groups gname:查看某个组的组成员
newgrp:临沭切换到某个组,切换的是主组。。当你不属于那个组的附加组的时候需要输入组密码(gpasswd的用处)
加-选项同su
将系统设置成只允许管理员登录
用touch在/etc先下创建/etc/nologin文件就行,取消的时候将这个文件删掉
权限管理
krwxrwxrwx
k是指文件类型:-,d,c,b,l,s,p
r:read
x:excute
w:write
u:user
g:group
o:other
a:all
对于文件来说
r:代表可以读取文件的内容
w:代表可以给文件内容进行添加修改等操作
x:代表该文件是可执行的
注意:因为对于文件来说,一旦执行,影响的将不是文件本身而是整个系统,这是十分危险的操作,因此,默认的不会给与文件x权限即文件默认能得到的最大权限为
-rw-rw-rw-
对于目录来说
r:代表目录可以通过ls查看目录内的内容,但不能用ll
w:代表可以对目录内的文件进行添加删除
x:代表可以cd至此目录中并且可以通过ll来查看目录内文件的具体属性
注意:对于目录来说一般是要给与r与x 权限的
-rwx rwx rwx
421
u g o
权限相关命令:chmod chown chgrp umask
chmod:修改文件或目录的权限
-R:递归
--reference=file1 file2 :按照file1给file2设置权限
用法:chmod u= ,g= ,o= / a= file
设置具体权限
chmod u+ ,g+ ,o+ / a+ file
添加某个权限
chmod 777 file
设置具体权限
注意:u,g,o可以一起写成ugo,ug,og,等等,分开写之间用逗号隔开
chmod在使用-R的时候为了避免给文件加上x执行权限,可以使用X,这个的意思是只给目录x权限,不给文件
chgrp :设置组
-R:递归
用法: chgrp gname file
chown :设置主,组
-R:递归
用法:chown name : gname file
注意:chown既可以改组也可以改主,只更改组时,gname前边的:一定记得写,不然会被识别成主,但是在只更改主的时候,后边的:一定记得不要写,不然会被识别成主,组是同名字
同时,chmod -R +X dir X对目录没有什么特殊做作,直接给与x权限,但是对于文件,如果文件的权限里,任何位置有一个x权限
那么,X将给与ogu三个位置都给x权限,如果文件一个x权限都没有,那么X将不给于任何的x权限
umask:不知道怎么形容
umask不加参数,显示当前的umask的值
umask ####:更改umask值
注意:通过这个更改的umask值只针对当前shell,umask的值相对全局修改,可以直接重定向到/etc/bashrc,同样的影响单个用户直接
重定向到家目录下的.bashrc即可
Linux的特殊权限
SUID:只针对可执行的二进制程序有效,对目录无效,作用是让用户在运行该程序的时候短暂获得该文件的所有者的权限
典型的就是/usr/bin/passwd这个程序,用户在运行的passwd的时候可以影响到平常不能看的/etc/passwd
用法: chmod u+s/S file s:源文件具有x权限时用
S:源文件不具备x权限时使用
注意:这个权限事实上是一个很危险的权限,所有,我们在对一个程序加上这个权限,再去放在一些移动设备上例如U盘等,再去将U盘挂载到另一台机器或系统上
而又需要手动挂载,需要记得启用noSUID,自动挂载是默认开启的,手动挂载需要自己开启
SGID:可以对文件,也可以对目录使用,对文件使用效果与SUID差不多,是让运行这个程序的用户具有这个程序的组的权限,对目录使用时,对于此目录有w权限的用户在此目录下所创建的目录,其所属组将变成该目录,一般用于协作
用法: chmod g+s/S file/dir 同上
注意:SGID有类似递归行的特性,在SGID目录下创建的子目录同样具有SGID权限
sticky:该权限只针对目录,对文件无任何意义,作用是让用户在目录下创建的文件,只有用户自己和管理员可以删除
用法:chmod o+t/T dir 同上
注意:只是无法删除文件,但是文件的内容数据还是可以影响的,可以通过重定向来影响数据
针对特殊权限,同样可以用数字来进行设定
SUID=4 SGID=2 STICKY=1
chmod X777 file/dir
chmod X666 。。。
ps:该命令是查看当前用户进程的命令
-aux:连别的用户的命令也一并显示出来
文件的隐藏属性
chattr:给文件目录添加隐藏属性的命令
-i:文件不能被修改,包括删除,添加等
-a:文件只能被添加内容,不能修改删除内容
-R:递归,对目录用
-v:显示详细
lsattr:查看文件影藏属性的命令
-R:递归
-a:影藏文件的也显示出来
-d:只查看目录的隐藏属性
本文出自 “博客作业初版” 博客,谢绝转载!
0518 第五节课