Linux_Systemlinux

linux基础3(属主属组权限管理)

2018-11-13  本文已影响72人  heiguu

chmod:修改权限

chown:写改属主,属组

umask:改创建文件时的默认权限,权限掩码

set位:

        对文件或目录进行访问控制时,“读取”、“写入”、“执行”是最基本的三种权限类型。除此之外,在linux中还存在着SET位权限(SUID、SGID)、粘滞位(Sticky Bit)等为为文件或目录提供额外的控制方式。

SET位权限:

         位权限多用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内的用户增加SET位权限。执行未见被设置了SUID、SGID权限后,任何用户在执行该文件时,将获得该文件属主、属组账号对应的身份。 

         为执行文件添加SET位权限一般使用chmod命令实现: 

         如使用“chmod u+s”设置SUID权限,使用“chmod +gs”设置SGID权限。 

         也可以使用数字形式,SUID对应八进制数字“4”、SGID对应八进制数字“2”: 

         如使用“chmod 4755”设置SUID权限,使用“chmod 2755”设置SGID权限,使用“chmod 6755”同时设置SUID和SGID权限 

合理利用SUID、SGID设置SET位权限,可以在确保安全性的同时为linux系统的管理和使用带来方便。例如,linux系统中passwd命令的程序文件就被设置了SUID权限,正因为如此,尽管普通用户无法直接修改“/etc/shadow”文件,但仍然可以通过passwd命令修改自己的登录密码,从而以root用户的身份间接更新shadow文件中的密码信息。 

另一方面,若没有确切的应用需要,不要轻易为可执行文件设置SET位权限,特别是那些属主、属组是root的执行程序,使用SET位权限时更应该谨慎。例如,若为vim编辑器程序设置SUID权限,将导致普通用户也可以使用vim编辑器修改系统中的任何配置文件。 需要去除SUID、SGID权限时,只需要使用“u-s”、“g-s”的权限模式即可。 

粘滞位权限 :

        粘滞位主要用于为目录设置特殊的附加权限,当目录被设置粘滞位权限后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”。 使用chmod命令设置目录权限时,“chmod +t”、“chmod -t”权限模式可分别用于添加、移除粘滞位权限。将数字权限模式“nnnn”中 的第1位数字改为“1”、“0”,也可以实现添加移除粘滞位权限。

umask命令:

        用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

用户权限管理 -ACL(访问控制管理):

setfacl

          功能 : 修改本地文件 / 目录的 ACL权限

getfacl

          功能 : 查看本地文件 / 目录的 ACL权限

文件属性:

chattr

         功能 : 更改文件 / 目录的属性

lsattr

         功能 : 显示文件 / 目录的权限

su:切换用户

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明foobar可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了。例如,我们想让foobar用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件:

foobar    ALL=(jimmy,rene)     ALL

 

用户管理

分散式管理

集中式管理

用户信息保存文件及位置  /etc/passwd

用户密码保护文件及位置/etc/shadow

linux组的信息保存位置   /etc/group    

两个建立用户的自定义配置文件

/etc/default/useradd

/etc/login.defs 

vim /etc/passwd

第一列 账号名

第二列 密码

第三列 UID

第四列 GID 

第五列 备注信息

第六列 账户目录位置

第七列 账号使用的shell

vim /etc/shadow

第一列 账号名

第二列 密码

第三列 密码自新纪元 (1970-1-1) 起到用户前一次 修 改密码的天数

第四列 密码前次与下一次修改的时间间隔 , 一般为“ 0”位不设定,可随时修改      

第五列 密码最大有效其时间 ( 天 ), 默认为 99999 天

第六列 密码失效前 , 提前 N( 天 ) 通知警告用户

第七列 密码失效后 , 宽限期天数 . 此段设置可以确 保 密码失效后延长 N 天在将密码失效

第八列 账号有效期

第九列 保留

属主属组管理

useradd (adduser)  名字     添加账户

-u 指定账户UID

-g: 指定账户初始化 ( 起始 ) 组 (passwd 区域 4)   

-d: 指定账户的主目录 (passwd 区域 6)

-s: 指定新建账户所使用的 shell(passwd 区域 7)   

useradd -g root -d /admin -s /bin/bash -u 614 test

账户名为test 初始组为root 账户主目录为/admin 所使用的shell为bash uid为614 

usermod 修改用户

usermod -aG root test 把账户test添加到root组

usermod -G game zhangsan  添加附加组

useramod -g vfast tom  tom的主要组为vfast

usermod -u 2000 harry

useradd -G game zhangsan  把zhangsan添加到game组(zhangsan是之前不存在用户)

useradd -d /home/body cjk  把cjk的家目录设为body

usermod -s /sbin/nologin tom       tom用户的登陆shell为非交互式

                    /bin/bash

userdel 账户  删除用户

groupadd 组名  创建组

groupmod -n qqq test 把组名test改为qqq

gpasswd test  设定密码

gpasswd -A aa -M aa,bb,cc test   组为test。aa为管理员 bbcc账户为组员

gpasswd -d aa admin  将aa从admin组中移除

gpasswd -a aa admin  将aa添加到admin组中

修改密码

passwd name  设定修改密码(密码不可见)

passwd --stdin name  设定修改密码(密码可见)

echo “123” | passwd --stdin name  直接给用户设定密码

-l 锁定指定账号

-u 解锁指定账号    

-d 清空指定账号口令

id 账户   查看当前用户UID GID  组名  

-un: 显示账户名                      

 -gn: 显示初始组组名 

-Gn: 显示附加组组名

who  查看当前所有登录信息

whoami   显示账户

last  显示账户最后登录时间

lastlog 显示最近所有账户最后登录时间

权限管理

chmod  改变文件目录的权限

chmod u+rw,g+rw,o+r test      u属主 g属组 o其他人  加权限

chmod u-rw,,g=x,o-rw  test       减权限

chmod o-rwx /var/tmp/fstab  其他用户无权限

chmod 666 test  

chmod 4644 test   让其他用户以属主身份执行可执行程序(suid)

chmod 2644 test       sgid

chmod 1777 test       黏贴位 确保用户仅可以删除自己的文件

chmod u-s test  (g) 

chmod u+s 

Set 位 

suid: 让其他用户以属主身份执行可执行程序  

sgid: 让其他用户以属组身份执行可执行程序

sticky: 黏贴位 , 确保用户仅可以删除自己的文件

umask 改创建文件时的默认权限,权限掩码

 默认权限:0022  文件666  目录777

chown改变属主属组

chown test config 改变config的属主位test账户

chown .test config --------------组---------

chown -RV aa.aa config  改变config目录及子目录的属主组权限

chown root:root /var/tmp/fstab  把文件的属主属组都改为root

chgrp game test   把test文件的属组改为game组

-R 递归

-v 显示详细信息

getfacl config 查看本地文件ACL权限(不同角色分配不同权限)

setfacl -m u:aa:rw,g:aa:rw config    给aa对文件config文件用有rw权限

setfacl -R -m u:aa:rwx test     目录及子目录

setfacl -x u:aa test   去掉aa对test中的ACL权限

setfacl -b test 去掉test中所有ACL权限

chattr +i test     给test增加i只读属性

lsattr test   显示目录/文件权限

su test  root切换到test 继续使用root的shell环境

su - test  用test的shell环境

sudo赋予普通用户特殊权限

配置文件位于/etc/sudoers

上一篇 下一篇

猜你喜欢

热点阅读