Linux运维基础-系统管理之权限管理

用户和组

用户user
Linux用户:username/uid
管理员:root,0
普通用户:1-65535
系统用户:1-499(cetnos6)
1-999(centos7)
组group
Linux组:groupname/gid
管理组:root,0
系统组:1-499(centos6)
1-999(centos7)
普通组:500+(centos6),1000+(centos7)

组的类别
主要组:一个用户只允许一个主组
附加组:一个用户可以属于零个或多个附加组
命令:id 后跟用户名可以查看用户id和组

用户和组的配置文件
/etc/passwd:用户及属性信息,共7个字段,分别是:用户名:X:UID:GID:描述信息:家目录路径:shell类型
/etc/group:组及属性信息
/etc/shadow:用户密码及其相关属性,分别是:用户名:加密后的密码:最后一次更改密码的时间距1970年1月1日的时间:密码最短有效期:最长有效期:过期前提前多少天通知:密码过期后多少天停用账户:账户有效期
/etc/gshadow:组密码
/etc/login.defs:用户和组相关默认参数配置文件
/etc/default/useradd:新增账号默认配置信息
/var/spool/mail用户邮件存放目录
/home/用户默认家目录路径
/etc/skel存放家目录的模板
相关命令
切换用户:su mage;不完全切换,切换后仍在当前目录,su - mage;完全切换,相当于重新登录;
centos后期版本passwd已经不存放密码,如果需要转换之前的版本:pwunconv;恢复:pwconv
显示当前时间距离1970年1月1日的命令:echo date +%s/24/3600 | bc
更改加密算法:authconfig --passalgo=sha256 --updata

用户创建、删除、修改
useradd,userdel,usermod
useradd mage :创建mage的命令,账号刚创建是锁定状态,在shadow对应行密码位置有两个!
useradd:
-u可以指定id(查看用户信息:getent passwd luo),在范围内按最大的ID新增,-o配合u使用,不检查id的唯一性(不推荐重复id)
-g可以指定主组的id -c是用户的描述信息 -d指定家目录路径 -s制定shell类型 -r创建系统用户,不会创建家目录,邮箱也不创建
-m为系统用户强行创建家目录(与-r配合使用), -M为普通用户不创建家目录,(邮箱创建) -G创建用户添加附加组

usermod
usermod -U可以解锁账号,一次减一个!,usermod -L 是账号加锁(注:centos 6 不允许通过命令解锁,需要设置密码解锁)
usermod -G bin wang,将wang添加到bin组,如果wang 有其他附加组,会被bin覆盖掉
usermod -aG bin wang 加-a配合-G添加附加组不会覆盖掉 ,删除附加组:usermod -G " " wang或usermod -G wang wang
-c 新的注释信息,usermod -c “mayongliang” mage,chfn也可以改描述信息;可以用finger mage 查看用户信息
usermod -l oldwang wang,更改用户名:usermod -l mage1 mage;
-s SHELL:更改默认SHELL:usermod -s /sbin/nologin mage;chsh -s也可以改shell类型
-d HOME:新家目录不会自动创建,若要创建新家目录并移动原家数据,同时使用-m选项
-e YYYY-MM-DD:指定用户的过期日期 -f INACTINVE:设定非活动期限

userdel删除用户
userdel -r mage;删除用户家目录及邮箱;

为用户创建magedu密码:echo magedu | passwd --stdin mage
强制用户下次登录修改密码:passwd -e mage;或chage -d 0 mage;
查看用户密码状态:chage -l mage;
批量创建新用户:先按照passwd的格式把用户信息保存到uerlist.txt目录中,然后执行命令newusers userlist.txt完成批量用户创建
批量改用户口令:按照用户名:密码的格式将参数保存到passwd.txt.然后执行命令:cat pass.txt |chpasswd 完成批量修改

组创建、删除、修改
groupadd,groupmod,groupdel,gpasswd,groupmems
groupmod
groupmod -n mage:改马哥组组名;
gpasswd -r 改组口令;
gpasswd -a mage wang:把mage加到wang组;
gpasswd -d mage wang:把mage从wang组删掉;
groupmems -l -g mage:列出mage组成员;groupmems -a wang -g mage:把wang加到mage组
groupmems -d wang -g mage;将wang从mage组删掉; groupmems -p -g mage清理mage组所有成员

权限

权限是基于文件系统之上
目录:r:能不能查看到目录中文件列表;w:能不能创建或者删除,x:能不能打开;
目录的基本权限是r.x,只有x,只能进入文件夹,不能查看文件列表,目录的w权限决定目录下的文件能否删除;
文件:r:能不能查看文件内容,w:能不能修改文件内容,x:能不能执行;

umask
新建文件和目录的权限由umask影响,umask相当于创建文件权限的掩码(0不遮挡,1遮挡)
umask 显示当前的umask的值,umask -p 打印umask和值,umask -S 以rwx的方式显示值
umask的值保存于:~/.bashrc(当前用户),/etc/bashrc(全局)

权限公式:umsk + default =777(dir)|666(file)
文件默认权限:666-umask中遇到奇数加1,偶数不变,得到的值即为文件的权限

特殊权限:suid(4).sgid(2),skicty(1)(粘滞位)
suid:作用于二进制可执行程序,当用户执行此程序时,将会临时继承此程序所有者的权限
sgid:
1、作用于二进制可执行程序,当用户执行此程序时,将会临时继承此程序所属组的权限
2、作用于目录,当用户在此目录下创建新文件时,文件的所属组会自动继承此目录的所属组
stikcy:作用于目录,用户只能删除自已的文件
chmod u+s file或chmod 4644 file
chmod g+s dir 或chmod 2755 dir
chmod 1755 dir,如果O有x权限,执行后最后一位变成t,如果没有x,执行后最后一位变成T

ACL 访问控制列表

ACL为是为了更灵活权限管理,文件权限最后一位有+代表该文件有acl权限
setfacl 设置acl权限:
setfacl -m u:mage:- file设置mage对file的acl权限为无任何权限;或setfacl -m u:mage:0 file;
setfacl -m u:wang:rwx file 设置wang对file的acl权限为rwx;
setfacl -m g:devops:- file设置devops组对file的acl权限为无任何权限;
getfacl file | setfacl --set-file = - file2,复制file的acl权限给file1

getfacl:查看acl权限

setfacl -b 删除所有的acl功能,-R支持文件夹递归

setfacl -m mask::r file 设置fac的mask值,相当于权限的限高杆
mask只影响除所有者和其他人之外的人和组的最大权限
mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限

练习一:删除mage的家目录,怎么恢复到初始状态:
答:1、复制初始化文件:cp -r /etc/skel /home/mage;
2、更改所有者和所属组:chmod -R luo:luo /home/mage;
3、更改文件夹权限:chmod 700 /home/mage;

练习二:cp /etc/fstab /data/dir 所需的最小权限:
答:1、对cp命令要有执行权限;
2、etc目录要有x权限,对fatab要有r权限;
3、data目录要有x权限,dir要有wx权限;

猜你喜欢

转载自blog.51cto.com/14451011/2424360